Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How do you think the future of Haskell looks? #56

Closed
robbbz opened this issue Aug 12, 2015 · 1 comment
Closed

How do you think the future of Haskell looks? #56

robbbz opened this issue Aug 12, 2015 · 1 comment

Comments

@robbbz
Copy link

robbbz commented Aug 12, 2015

No description provided.

@passy
Copy link
Owner

passy commented Sep 14, 2015

Great question.

I think there are two layers to the question. There is the more narrow question about Haskell as a language, and then there is Haskell as (I'm trying to avoid the term "ideology") a broader idea.

The language is in a great state and despite its age is evolving rapidly. Even though the old days of "avoid success at all cost" seem to be over there are still drastic changes to the language coming. With GHC 8.0 types and kinds are going to be merged which is incredibly exciting because it opens up dependently typed programming along the lines of Agda and Idris which wasn't possible to that degree before. But as @puffnfresh pointed out this doesn't mean that we no longer need those other languages. Gabriel Gonzalez has also surveyed the state of the language ecosystem and found corners that are awesome (compilers) and weak (user interfaces). It's a great read: http://www.haskellforall.com/2015/08/state-of-haskell-ecosystem-august-2015.html

I think Haskell as a language will continue to evolve and continue to gain momentum, but I doubt that it will ever reach the level of "mainstreamness" that Java, JavaScript, C++, Objective C and co have reached. It's just too different from what the majority of people start to learn programming with. However, it will help to have big players like Facebook serving millions of requests per second through a Haskell backend to make people consider it for more problem domains.

I'm way more bullish on the second part: Haskell as an idea. It's actually an umbrella for a lot of concepts that are influencing a lot of other languages:

  • Types
  • Immutability
  • Explicit Effects
  • Laziness(*)

None of these things are unique to Haskell, but that's precisely the point. Rust and Swift have outspokenly been inspired by Haskell (and other ML-type languages). PureScript and Elm look almost exactly the same as Haskell from a superficial level (Elm is actually more like a traditional ML than Haskell, but for an untrained eye they might as well be the same) and are at least to me some of the most interesting developments in the web world at the moment.

TypeScript is more popular than ES6/2015:

screenshot 2015-09-14 18 36 44

Facebook's Flow is also gaining momentum by gradually adding types to JavaScript. (In addition, it's written in OCaml.)

I don't think I've seen a single JavaScript conference in the past two years or so without a talk about immutability on their schedule.

Explicit effects are still a bit more exotic, but if you look at Scala.js for example (here's a cool PR against TodoMVC with a React app, you can see some major efforts to retrofit the concept into existing languages.

Laziness is the most controversial point on the list. I don't see myself equipped with the knowledge to make the call whether it's a good or a bad idea to be lazy by default, but it is a very powerful concept that has made it into at least Scala (lazy val) and Kotlin (lazy delegates) as opt-in mechanism. I personally think that it's a great way to achieve modularity in your code, especially for libraries.

Haskell appears the greatest common denominator when you look at the development of new and existing languages. That's why I think that learning Haskell is a brilliant use of anyone's time. Even if you never get to use Haskell for a real-world project, you will almost certainly be able to apply a lot of the concepts you pick up you've learned.

@passy passy closed this as completed Sep 14, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants