Today I held a lightning talk at the Karlsruhe Functional Programmer’s Group, where I presented “Real World Haskell” applications, i.e. programs that are written in Haskell, are somewhat mature and well-known and have non-programmers as their target group. Here is the (surely subjective) list that I have come up (also see the slides):
- darcs (since 2002, 35 000 loc): Distributed version control system with an innovative focus on changes instead of states.
- xmonad (since 2007, 30000 loc): Well known tiling window manager with a huge library of layout and other plugins. Made it into the list despite its configuration file being a Haskell file.
- hledger (since 2007, 9000 loc): Text-file based double-ledger accounting tool, a clone of ledger.
- Raincat (since 2008, 2000 loc): Platform game with a cat that does not want to get wet.
- arbtt (since 2009, 2000 loc): My automatic rule-based time tracker. Made it into the list as a shameless plug; probably not that popular. It has now a proper web page contributed by Waldir Pimenta.
- detexify (since 2010, 500 loc): The back end of the very useful LaTeX character command finder is written in Haskell.
- git-annex (since 2010, 28 000 loc): Manages your files and their location, a mixture of dropbox and git. Written by famous Joey Hess, who made a living from it via kickstarter He is currently running a second round of funding!
- Nikki and the Robots (since 2010, 18 000 loc): Platform game with Nikki and, well, his robots. It was produced as a commercial independent game and sold via a pay-what-you-like scheme, but the company unfortunately closed down.
- hoodle (since 2011, 13 000 loc): A note-taking and PDF annotation software like xournal.
- Chordify (since 2012, ? loc): Analyses music, e.g. from a YouTube video, and calculates the corresponding guitar chords. Closed software, but supposedly written in Haskell.
There is also an impressive list of industrial users that use Haskell without talking about it much, but that does not work well to show off that you can do any kind of application in Haskell.
If I missed anything important, let me know!