5 ms·
He's spot-on about Java being a safe-haven for "data modeling" geeks who are afraid of doing real work. Writing a whole bunch of getters and setters in a fresh
by jluxenberg 17y ago
He's spot-on about Java being a safe-haven for "data modeling" geeks who are afraid of doing real work. Writing a whole bunch of getters and setters in a freshly minted Java class certainly feels like work. However, I think he gets it wrong when he puts OCaml on the extreme "for you to model everything" end of the spectrum:
And Haskell, OCaml and their ilk are part of a 45-year-old static-typing movement within academia to try to force people to model everything. Programmers hate that. These languages will never, ever enjoy any substantial commercial success
Hold on a minute...last time I checked OCaml was a dialect of ML. ML does not ask you to "statically" type everything, in fact it does the opposite. It infers all the types. Sure, it allows you to hint types to the compiler, but this is not necessary. You get all the benefits of "static" type checking through ML's concept of type inference. It's designed specifically to make it less work for the programmer to enjoy the benefits of a sound, correct type system.
If you want to learn more about type inference in ML, check out this short introduction: http://bit.ly/8WEhD8 http://bit.ly/8WEhD8
- Rusky 17y agoHaskell also uses type inference. It does have a lot of type system stuff, but because of how the language works the types are not just metadata. The types are often just as important as the rest of your code.
- samdk 17y agoOCaml does type checking at compile-time and therefore is statically typed. It often can infer what those types are, but it doesn't wait until runtime to do so.