4 ms·
One big problem is programmers tend not to write programs from scratch, rather they work in existing systems. And even though I'm a static-typing proponent, I
by davidgrenier 12y ago
One big problem is programmers tend not to write programs from scratch, rather they work in existing systems.
And even though I'm a static-typing proponent, I will concede that developer productivity is likely to correlate a lot more with the state of your existing systems.
- bunderbunder 12y agoI'm also starting to believe that the devils is very much in the details. Personal testimonials: Objective-C is an uncouth mishmash of strong, weak, dynamic, static, and duck typing, with different rules applying to different corners of the language. In theory this should be a train wreck. In practice I found it to be one of the most productive languages I've ever worked on - provided I was very principled in how I built my code. Whenever I let myself slip into hack mode, the result was indeed a train wreck. F# has a mostly-fantastic type system that still manages to fall apart in a couple of key areas: First, its type inference mechanism doesn't have any clue what to do with calls to non-curried ("C#-style") methods, so any code that interacts with the .NET API ends up littered with type annotations or convenience functions whose only purpose is to wrap a .NET API call up in a curried function that the type inferencer can understand. Second, no type classes. This is particularly painful because .NET's original designers didn't have the foresight to create a base abstraction that numeric types can conform to.