Statically typed languages are like having a spell checker AND a grammar checker up front. Dynamic languages mean I won’t know if I spelled anything wrong until I get my paper back from the teacher.
-
-
Replying to @shanselman @sarahmei
Unless, of course, you practice TDD. Then you know immediately because you are writing a very specific purpose spelling and grammar checker.
18 replies 14 retweets 77 likes -
Tests are not proofs.
1 reply 2 retweets 12 likes -
Neither are types.
5 replies 0 retweets 6 likes -
Replying to @unclebobmartin @jonharrop and
Um. That’s exactly what they are. Perhaps you meant to say “types are only able to prove some things about your code, and I find that less useful than others do, but I see where you’re coming from”
1 reply 0 retweets 19 likes -
Replying to @sebastiangood @jonharrop and
The type is not the proof, it is the statement to be proven by a program. In any case, expressing all necessary behaviors as types is impractical; but as tests is trivial.
3 replies 0 retweets 3 likes -
Replying to @unclebobmartin @sebastiangood and
Further, using types appropriately, has the same practical outcome as writing infinity tests, but with zero effort and zero hindrance. Where is that trade-off exactly?
2 replies 0 retweets 10 likes -
Replying to @dibblego @sebastiangood and
No, not even close. I can completely replace static types with tests. I cannot completely replace tests with static types.
2 replies 1 retweet 5 likes -
Replying to @unclebobmartin @sebastiangood and
That's definitively not true. Want me to write the code for which you will never be able to write tests?
2 replies 1 retweet 6 likes -
Replying to @dibblego @sebastiangood and
I’ve seen lots of code for which writing tests is nearly impossible. We call that legacy code. There are also behaviors that are not practically testable. E.g. fully testing the multiply operator.
2 replies 0 retweets 1 like
You mean *side effecting code*, not legacy code.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.