Hacker News new | ask | show | jobs
by retrac 1221 days ago
No one language does everything equally well. Haskell is probably one of the most flexible in that regard, in that you can create domain-specific langages as needed and use just about any programming model. There's even a joke monad that nicely implements C-style state, for loops, etc. You can manipulate raw pointers, if you really want to. But even most ardent Haskell zealots will tell you it's not really the right language to write hardware drivers in. (Same applies to Lisp.)

The we have history. C is 50 years old. There's been some new ideas since, but grafting many of them on to C would make C a whole other language. Like C++. C++ is built around a particular programming model (native code and C interoperability). Are we going to move to a virtual machine platform? Then why not tweak the language to work best with that and the libraries of that environment? And so Java and C#.

Inventing a language is also just a hobby for some. And sometimes they catch on. Same with small languages intended for a bespoke role but which grow beyond it.