Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haskell projects to study and learn from? [closed]

Tags:

As a developer who is new to Haskell, I am looking for open-source Haskell applications that I could study and learn from.

In particular, I am looking for open-source projects that show:

  • How to write network servers that scale well, with low response latencies and high throughput.
    The Warp webserver would perhaps be an example here, are there any others?
  • Applications showing techniques for keeping memory use low, or showing examples of GC-friendly design.
  • Projects that showcase techniques for testing Haskell applications (related question: haskell-testing-workflow).
  • Programs designed for running well on multi-core systems.

What open-source projects would you recommend as exemplars of modern Haskell programming?

Related SO question: good-haskell-source-to-read-and-learn-from.

like image 564
jkoshy Avatar asked Jan 02 '12 16:01

jkoshy


People also ask

Should you learn Haskell in 2022?

Yes, Haskell is worth learning in 2022 because functional languages like it are getting more popular among big companies like Facebook. Functional languages are typically ideal for big data and machine learning.

What projects use Haskell?

As you can see, Haskell can be used to build all kinds of projects: CLI applications, web applications, parsers and compilers, frameworks and engines. It can even be compiled to mobile and JavaScript if necessary.

Can a beginner learn Haskell?

So, yes, you can use Haskell, but you should focus on elementary, general techniques and essential concepts, rather than functional programming per se.


1 Answers

As far as network servers go, I suggest reading Mighttpd – a High Performance Web Server in Haskell by Kazu Yamamoto, from issue 19 of the Monad.Reader; it uses Warp under the hood and can achieve speeds exceeding that of nginx(!). That same issue also has an article about Haskell-MPI, so it's relevant for multi-core programming too.

The xmonad source code is frequently recommended (e.g. in the related question you linked), as it is a widely-used, stable piece of "real-world" software with an unusual amount of care and attention paid to good Haskell design.

like image 112
ehird Avatar answered Oct 02 '22 13:10

ehird