Hacker News new | ask | show | jobs
by hrvbr 4153 days ago
Just yesterday there was this article illustrating how C# fundamentally can't catch-up with F# on some important characteristics:

http://fsharpforfunandprofit.com/posts/is-your-language-unre...

3 comments

> Comparing objects of different types is a compile-time error.

Then use C. In OOP comparing objects of different types is key to inheritance. The reason their example works is because everything in C# inherits from object, so you'll always find some commonality to compare.

You could have the compiler generate a warning when object.equals is used (rather than overridden) but getting rid of comparisons between different object types completely is backwards and will reduce efficiency.

What a poor article.. let me just cherry pick a number of benefits of functional languages and call them requirements for a 'reasonable' language.
That article could be summed up as: "Look at all of the ways that the language doesn't protect you from yourself (or the creator of the library you're using)!"

It's possible to write shitty code in every programming language. Of course, the specific methods of doing so differ, but I've yet to see a Turing-complete language that makes it impossible to write buggy code.