5 ms·
Our industry has not yet even scratched the surface of what types can offer: Types for enforcing architectures and controlling effects, types for checking corre
by willtim 9y ago
Our industry has not yet even scratched the surface of what types can offer: Types for enforcing architectures and controlling effects, types for checking correct use/free of scarce resources, types for verifying protocol implementations etc etc. Currently, half the industry is using schema-less json and dynamic languages; so really it is far too early to generally talk about any diminishing returns.
- 14113 9y agoWell said. This article is essentially dismissing a technique that is barely used, with the argument that the technique is not the entire solution. Of course it isn't, but that doesn't change the benefits that it can bring.
- agumonkey 9y agoThe industry has other issues, the constant cruft, tech debt and turnover. Lots of people make money through this, they won't accept making better software if it make them appear smaller and too cheap.
- hwayne 9y agoThere's a lot of great things our industry doesn't use: contracts, proper fuzz testing, cleanroom, formal specification, constraint solvers, _checklists_. We might (not necessarily, but _might_) be in a place where types are diminishing returns with respect to other low-hanging fruit.
- willtim 9y agoYes it's true that retrofitting better type systems into existing languages may not be low-hanging fruit. But developers have shown a willingness to adopt new languages when they see clear benefits.
- hellofunk 9y agoWhen you speak of contracts, are you referring to run-time contracts i.e. Racket?
- fulafel 9y agoFor data, schemas ala clojure.spec are a competing idea - it makes the "type system" much easier to metaprogram and apply selectively.
- willtim 9y agoI'd argue that any schema is a type system of sorts.
- hellofunk 9y agoIn fact, the decades-old CSP model, upon with Go and Clojure's core.async are based, outlined compile-time assurance that there are no race conditions in your multi-threading. You are correct that these two modern implementations of CSP do not go there.
- nhumrich 9y agoIts so funny how people argue for types everywhere, then use nosql databases and lack type checking on data validation.
- tormeh 9y agoI used to agree, but after seeing how easily versioning of schemas, procedures etc in conventional databases can turn into a clusterfuck I have changed my mind. I have begun to like the idea of putting all the schema info into compiled applications that can't easily be changed on the server. MySQL et al is the worst of all worlds.