Hacker News new | ask | show | jobs
by harry8 4074 days ago
I don't think I have ever used a haskell program written by someone else that wasn't ghc. Is that usual? Are there now a bunch of .debs for useful things other than writing haskell that are actually written in Haskell? I'm not trolling, it's just a good test of what something is useful for when it's been around a while is to ask "Well, what has it actually been used for?"
15 comments

The Haskell wiki has a page called "Haskell in industry" [0] which lists all the people using Haskell in the real-world.

Some notable ones include:

* Facebook Haxl, an abstraction around remote data access [1]

* Microsoft Bond, a cross-platform framework for working with schematized data [2]

* Google Ganeti, a cluster virtual server management tool [3]

* Intel Haskell research compiler, a custom Haskell compiler used internally at Intel Labs [4]

---

[0]: https://wiki.haskell.org/Haskell_in_industry

[1]: https://code.facebook.com/projects/854888367872565/haxl/

[2]: https://github.com/Microsoft/bond

[3]: https://code.google.com/p/ganeti/

[4]: http://www.leafpetersen.com/leaf/publications/hs2013/hrc-pap...

Anytime a technology needs to publish a list of "who's actually using this in the real world" the answer is not all that many (relative to other peer technologies). Most projects in those lists fall into the following categories:

1. It is just a small team or even one person using it and they're doing it because they really want to use that technology badly.

2. The project is some side research thing or trivially small that it could have been done using any technology.

3. It is actually just a tool or sub-system of the main system that was low risk enough.

4. The project is no longer operational, if it ever made it to that stage.

While your point isn't invalid it is important to keep in mind that popularity is not a valid proxy for quality.

Also he is focusing on large companies who have huge reasons they can't use Haskell, mostly related to internal resources. If you have several hundred Java engineers (for example) you literally cannot just switch to Haskell, it wouldn't work.

Completely agreed about quality. Popularity is highly correlated to actual utility though.

Lisp falls into the same category. High quality and very interesting but it will never, ever gain widespread use. Don't believe me? A half century of proof exists. Haskell is already at a quarter century.

Both are very cool and everyone should learn them to some degree because they will make you a better programmer but neither will ever be used widely. They just aren't appropriate for most general purpose programming tasks.

I would be wary of painting Haskell and Lisp with the same brush. Yes, on first glance they both appear to be "difficult" languages that are over the heads of the average programmer. However they take very different approaches.

Lisp gives the programmer maximum raw expressive power. This appeals to lone wolves and autodidacts, but it completely punts on the issues of standards, teamwork and maintainability.

Haskell on the other hand, promises a direct solution to a huge swath of problems that are experienced across the board in software development today. The pitch is essentially an extension of what Sun used to sell Java in the 90s: it makes your code safer and more maintainable. Except Java only really did that for memory management in a C-dominated world, the type system gives you barely anything in that regard, so you still have just as many NullPointerExceptions as you suffer from lack of types in languages like Ruby. Haskell type system gives you infinitely more meaningful safety, but with suitable state-of-the-art functional abstractions to minimize the pain of acquiring it.

The only catch is the learning curve is steep, but as more and more programmers scale that wall, the benefits to performance and maintainability will become apparent to the pointy hairs. Lisp never really had an equivalent value proposition, except in a few narrow fields where its expressiveness and plasticity were key.

But beware lag time.

That is: Some languages aren't suitable for general use. Some aren't... and then they are. But popularity probably correlates with how suitable the language was at least two years ago, and maybe more like 10. (Call it 5 as a compromise.)

So popularity doesn't tell you that the language is unsuitable now. But I agree, there is a correlation. Programmers for the most part aren't stupid sheep, afraid to use something new.

Pandoc - lets you convert documents from/to many different formats - http://pandoc.org
There's git-annex, which is a relatively complex software, runs on multiple platforms (Linux, OS X, Windows and Android) and is definitively useful.
This is a standard that Haskell is held to a lot, but I'm not sure how robust a test it is. I never use programs written in Java, for example, and I use a program written in Scheme every week. That doesn't say much about their relative popularity, let alone their quality as programming languages.

Presumably I use server-side applications written in Java, but I've no way of telling. If server-side counts then most people with computers indirectly use Haskell via Facebook's Haxl project.

There is also postgrest, providing a REST API for postgresql databases.

https://github.com/begriffs/postgrest

I daily use Xmonad, hledger and sometimes pandoc.
pandoc is probably the one I see discussed the most without people knowing it's written in haskell.
ShellCheck [0] is actually a pretty useful tool.

[0] http://www.shellcheck.net/

Shellcheck is excellent, especially since syntastic will use it without any configuration.
I've used Xmonad as my window manager for years. Recently I used pandoc to convert some Markdown files to LaTeX.
darcs version control (http://darcs.net/) (what most people should use instead of git).
The bank Standard Chartered[1] uses it, and instead of GHC they use their own compiler. There's some more info in this job posting[2].

[1] http://en.wikipedia.org/wiki/Standard_Chartered [2] https://donsbot.wordpress.com/2014/08/17/haskell-development...

For what we have learnt from the history of mathematics, you might have to give it some hundred years before people realize usefulness.

As a practical note, the fact that educated people use it is an indicator that it is useful.

> As a practical note, the fact that educated people use it is an indicator that it is useful.

Possibly. It could also be that they use it because it's interesting and informative rather than useful per se.

It could also be that it's useful in particular contexts in the same way that Feynman diagrams are useful.

I've mentioned this before, but there's a lot of music stuff written in Haskell - tidal[0] (DSL for live-coding electronic music, not the 'save Jay Z from penury for $20/month' initiative that has just clobbered its google results) and Euterpea[1] spring to mind.

[0] http://yaxu.org/tidal/ [1] http://haskell.cs.yale.edu/euterpea/

The Elm compiler is written in Haskell, and as others have mentioned, I use xmonad and pandoc.
A few of those will likely be server-side and not on your personal machine, but they're out there.
protoype for sel4 is written in .hs