4 ms·
There are a lot of smart, experienced, thoughtful developers who know from experience that they are more productive using types. And there are smart, experience
by mbrodersen 9y ago
There are a lot of smart, experienced, thoughtful developers who know from experience that they are more productive using types. And there are smart, experienced, thoughtful developers who know from experience that they are more productive not using types. So something interesting is going on here. Obviously this is not a situation where one of those choices is "objectively correct". It is very likely that both groups are right. So what can we learn from this? Perhaps that it depends on the developer and/or the kind of software they develop whether types make sense or not. It might also depend on how well the developer understands type systems and the kind of exposure they have had to them. I think THAT is a much more interesting conversation to have than the usual "my way is better than yours" typical conversation we have had SOOOOOOO many times.
- _RPM 9y agoThe only type we need is char pointer. We can then hard code the offsets in a macro to reference members of a strict.
- carlmr 9y agoI'm a huge strong static typing fan. I find that I get in both situations though. For a quick script in Python, types might be a hindrance. If I write something more complex, strong types can be used to build a lot of the logic into the types, avoiding costly errors and raising maintainability in the long term.
- victorNicollet 9y agoGiven enough time in a programming environment (language + libraries + tools) a smart engineer will learn or invent techniques to write correct code faster. Given enough engineers, each environment evolves a mix of techniques (unit tests, static types, correctness-by-design, defensive programming, etc) that becomes typical of that environment. The difference between Haskell and JavaScript might be the usual cliché, but there is an entire spectrum and even within a single language the mix of techniques might change depending on the application (financial software, video games, web sites). Moving to a different environment where those techniques are no longer as effective will result in lower productivity for a while. Moving to an environment where those techniques can no longer be used (no type-checking, no ability to unit test) results in frustration, bargaining and hopefully acceptance, but the end result is that everyone stays on their side of the fence depending on whether they identify as "relies on type-checking to ensure correctness". By the way, funny how sometimes, we get something out of bargaining (TypeScript because there is no type-checking in JavaScript, Selenium because there is no unit-testing in graphical user interfaces).
- kod 9y agoI have yet to see reliable commentary from developers who used a good static type system for an extended period of time and still willingly prefer dynamic types. For instance, Rich Hickey makes fun of how long it takes to learn Haskell. I'm not aware of him having done significant work in anything better than Java.
- tome 9y agoI think Rich Hickey has significant experience with Haskell and there's at least one former Haskell user on HN who has transitioned to Clojure. I still don't quite get their point but I don't think they're speaking from ignorance.