4 ms·
I'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,
by bunderbunder 12y ago
I'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.