Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

His arguments about the existing functional languages can be roughly split into two categories: 1.) Languages refuse to make compromises and therefore are obscure (Haskell, Erlang) 2.) Languages are crippled by making too many compromises (F#, Scala).

He presents good arguments about why both types of languages can't currently break into the mainstream, but it unfortunately seems like these options form a partition of the possibilities (i.e. a functional language must fall into one of the two). If this assumption is correct, then by his analysis no functional language can break into the mainstream.

I'd love to see a discussion over whether or not that assumption is valid, but for now let's assume it's true. I don't think the languages are the problem. Instead, I think it's the general momentum and consensus of the community. Without books like Learn You a Haskell (http://learnyouahaskell.com/), Haskell would be an order of magnitude more difficult to begin learning. I'm still trying to figure it out, and there are a lot of examples of topics where a similarly good tutorial would ease my learning. Eventually, as the language gains popularity, more and more such work will exist. Furthermore, if popular companies demonstrates that it's a great choice, more people will want to pick it up. If all this stuff happens, our intuitions will grow and adapt to make such a language a natural choice. In summary, the future of functional languages depends more on our understanding and promoting them as a community, as opposed to the languages themselves.



You make an excellent point about the primacy of the community. I can't remember where I first came across the idea that languages are communities, possibly Richard Gabriel's Patterns of Software.

As someone about to embark on the Standard ML learning curve (motivated primarily by Ur/Web - Ur is a ML-like language), it is striking that the SML community is fragmented to the point of non-existence (not even a Planet SML, the sml-list is dead, & the SML subreddit is pretty lifeless).

Looking at Alice ML which has significant advancements over both Objective and Standard ML, it has great features, but no momentum which isn't helped by the fact that there hasn't been a release since 2007.


I learned a lot of SML in college, and it is really a great language. In my opinion it has the best syntax and REPL of any language I've used.

But Haskell has a much better chance of becoming main stream. The type classes allow things like drop-in, easy-to-use hash maps and a simple, type-safe print statement (SML's requires explicit string conversions). Furthermore, GHC consistently pushes modern features; my current favorites are the extremely performant userspace threads (managed by epoll). From what I can tell, the SML folks are more focused on PL research projects than trying to implement a standard library, which is completely fine.

If everything goes well and we as a community build intuitions for strong, static typing, one of these good languages (IMO probably Haskell) could end up as the next Python.

BTW, if you're looking for resources on learning SML, I'd look at Bob Harper's books (http://www.cs.cmu.edu/~rwh/)


Thanks, I had already downloaded the latest version of Harper's Programming in Standard ML.

I think you're right about the SML folks' focus on PL research.


Looking at Alice ML which has significantly more features than ...

FTFY

My favorite thing about SML is that it only has known-good features.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: