Is there a list of what Haskell still lacks?
In talking with a C++ programmer about Haskell, he remarked that Haskell isn’t a language, it’s a “meta-language”, which is appropriate given that Haskell is a ML dialect.
In reality, despite the reputation of Haskell as being pure, the anti-thesis of OOP, and so on, Haskell in fact has virtually every language feature in either a library or a language extension. For instance, if the question is purity, Haskell has unsafe functions as well as IORef to enable mutability. Dynamic types? There’s a Dynamic library out there. OOP? Check out the Objective library.
However, there are still a few notable features that this particular meta-language still lacks. Here’s a list off the top of my head, are there any more features that are lacking?
-Multiple assignment. Sometimes, when dealing with records, multiple assignment can make life easier. Haskell has multiple assignment when it comes to type signatures, but it doesn’t have it when it comes to records or names. Multiple assignment, when it comes to records, would at least be useful in creating default config records.
-Dependent Types. This is well-known and is something being worked on.
-JIT / Multiple Dispatch Paradigm. We’ve described Julia’s JIT / MDP system within another thread, but Haskell, to the best of my knowledge, lacks JIT / MDP.
-Prototyping via Data record declarations. Within record syntax, sometimes building a prototype then mutating the prototype as needed is useful, but right now, you have to do a Data declaration for the record first, then create a prototype separately, resulting in boilerplate.
Anything else Haskell is missing right now?