5 ms·
Actually a good testing suite fixes that issue. It's probably the most bogus "issue" strong type addicts bring up.
by pjonesdotca 11y ago
Actually a good testing suite fixes that issue.
It's probably the most bogus "issue" strong type addicts bring up.
- jallmann 11y agoThe only thing better than having tests is not needing tests. That's what a robust type system gives you. Type systems don't eliminate all testing, but they do eliminate a large swath of possible errors that need to be tested for, like the one that has (had?) been afflicting Sinatra.
- erokar 11y agoYou might want to watch this talk for some data on this subject: https://vimeo.com/74354480 https://vimeo.com/74354480 "Some programming language theorists would have us believe that the one true path to working systems lies in powerful and expressive type systems which allow us to encode rich constraints into programs at the time they are created. If these academic computer scientists would get out more, they would soon discover an increasing incidence of software developed in languages such a Python, Ruby and Clojure which use dynamic, albeit strong, type systems. They would probably be surprised to find that much of this software—in spite of their well-founded type-theoretic hubris—actually works, and is indeed reliable out of all proportion to their expectations."
- counterplex 11y agoThe politest put down ever?
- ssmoot 11y agoAs someone who worked with Ruby since ~1.8.1, has written a ridiculous amount of OSS Ruby and now works mostly in Scala, this is the exact opposite of my experience. YMMV, but I've never seen the Ruby project that didn't suffer from stupid bugs even the most basic type system would have caught. One of the biggest advantage of type-systems for me is that they don't suffer from No True Scotsman. If you don't have a test that covered this bug, people are happy to tell you you're doing it wrong. The type-system doesn't have that problem. It doesn't "rot". It expresses only what you tell it to. It enforces maintenance and rigor in a way that tests, as non-integral code, fundamentally can't. But that's just my opinion man.
- grandalf 11y agoWhat's your thought on something like contracts or facebook's flow (for js) ?
- jallmann 11y agoI can't watch because no subtitles, but man that intro is condescending. Not saying that academics are completely innocent either, but maybe if the description focused more on the substance of the data, it wouldn't seem like the smugness was a cover-up for trying to rationalize their choice of language. Anyway, I'm no PL theorist, only a schlub that's a better programmer because of ML. Yeah yeah, sample size of one...
- sanderjd 11y agoI'm not a programming language theorist or in any sort of functional-programming-static-type-system ivory tower – I just want to catch more bugs prior to runtime without needing to write tedious mechanical tests of method contracts. I find good type checking insanely refreshing. I find that I need fewer tests, they are easier to write, and they test more essential attributes of the program. I've written lots of useful stuff in Python and Ruby, but I've also sunk lots of time into tests that I would have preferred not to need to write.