Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why are there so few useful programs written in Haskell?
29 points by harry8 on June 15, 2016 | hide | past | favorite | 19 comments
A pretty large number of programmers have learned some Haskell (for great good or otherwise) over the past decade. I don't see very many Free software programs I can install that are useful for something beyond writing code.

xmonad, pandoc, git-annex are what come to mind and very little else. I use none of those three but they clearly do have some significant number of users who don't care what language they were written in.

Is this because I'm ignorant? Most other languages that have been around for a while I seem to use a much larger number of programs that happen to be written in those languages. Including languages I dislike a lot more than Haskell. It seems Haskell lacks programs. It's a useful data point to interpret if it is fair. So firstly is it fair (the haskell wiki suggests it's not far off) and if it is, why is it the case?

Note not libraries, programs.



Programming languages are not just languages anymore, they are ecosystems and ecosystems takes time to evolve and it is really really hard for a new ecosystem to evolve when there are already established ecosystems.

The languages ecosystems feeds on themselves. Example: My OS is written in C hence the best way to write my program would be to use C or some other language that can easily interoperate with C.


It doesn't always take time. The javascript/npm ecosystem has grown very rapidly. Probably because the language is simple to learn and use and there were already many developers who knew some javascript.


That and you have to program JavaScript for some applications.


Haskell isn't new. It's quite the vintage language now.


I assume that this is the same issue that plagues the (mostly younger portion of the) dev community these days: there is a LOT of code out there that is simply not visible to us in the way that an NPM module is visible.

There is so much app code and systems code that none of us will ever see, and that is absolutely by design. It is not intended to be seen, and it is the majority of code written to date. It is fire-walled and private and intended only for those who paid for it.

I am FAR from fancy, nor am I an expert in anything, so don't mistake my tone, but I have never shown any of my programmer friends and acquaintances anything that I work on every day: they are all about Rails and JavaScript, and I work on enterprise .NET apps, diving deep into SQL every day. What I do is completely hidden from them, both because they can't imagine anything outside of their precious Ruby Gems and NPM dependencies, and because I have signed NDA's that could ruin my career if I broke the rules. My point is, I've worked as a professional app dev for 2.5 years and I have never built anything that was intended for general consumption, and I know for a fact that many of us, maybe the majority of us, do the same sort of thing.

None of this is to say that there are vast, massive, infrastructure-critical Haskell code bases out there in the rarified upper echelons of coding society. But of there were, most of us would probably never know about it, at least not first-hand.


I'm a .net developer too but I think we would hear something if a lot of companies (like 25% or omore) around use switched to haskell. I know what language almost all of my developer friends are using regardless if they are doing enterprise development or not. It is usually not a secret if they use .net, java, ruby or python. Their exact code is of course secret and hidden but that is another thing. I also work as a consultant and that means I get to see code from different companies but of course it's mostly companies using .net (or javascript) that hires me.


My experience has been that dealing with Haskell library dependencies is very inconvenient, which makes maintaining applications painful. You can make the dependencies work at one point in time, but upgrading them later is a painful process. Because of strong typing, the dependencies tend to be very strict and if you upgrade one thing, you have to upgrade everything else, too, to be compatible.

At least for me, this was one big reason why I didn't want to continue developing apps with Haskell, after learning the basics.


Stack/Stackage now solves this problem.


Because financial tech companies keep hiring all the Haskell programmers to write their internal proprietary trading code.


I thought c++ would still be most popular for trading code?

For hft isn't ability to reason about performance and control memory allocation and deallocation easier in a lower level language?


C++ and Java for the most part.

However, I'm not sure that finance hoovering up all the Haskell programmers (even if that were true) would have any impact on that. The number of Haskell programmers, in total, is small compared to the number of C++ and Java programmers in finance.

It also may be worth pointing out that finance companies, especially larger ones, are rarely homogeneous in their development environments. For example, the Haskell wiki's industry page has the names of a large number of banks that use Haskell. I have worked at a few of them and know a fair number of people at others and I don't know anyone that does any production Haskell. Plenty of Java, C++, Python, C# and Scala though.


I think the op is trying to make the point that bright coders(who else will invest time in Haskell) are hired by cash cow companies and get them to work on other languages.


nothing stopping them from hiring haskell programmers and putting them to work writing C++ all day.


I think it's the learning curve that puts people off. There is a fair learning curve to get productive to write a useful program. It is also tricky to create ui apps from what I can tell.

P.s. There is also hledger.


This question seems to be loaded with the implication that haskell isn't useful because there aren't many applications written with it.

I don't think this is a fair judgememt. For example, how many apps are written in Cobol? I can't think of a single one, but Cobol code is running much of the world.


I also think that the whole question starts with the wrong supposition. Java does not have a huge amount of open source programs, is less "cool" than JS or Python, but it has probably immensly huge "invisible code" that runs our lives. But then - the question changes to why C++ or JS with all its frameworks are so popular despite having an army of haters who despise them. I think most answers in this thread answer the latter question.


> xmonad, pandoc, git-annex are what come to mind and very little else.

There's also PostgREST: http://postgrest.com/


I use Xmonad. I find it useful. Of course one example fits into the "few" bucket. Not sure if a tiling window manager counts as a program either.

Good luck.

http://xmonad.org/


"Avoid success at all costs!"




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

Search: