At last I can start blabbing about it. The School of Haskell went beta. We’ve been working on it for the last half a year with a team of top-notch Haskell programmers.

Our main effort is to create an online Haskell IDE, but the technology we’ve been developing for it was just aching to be used for teaching Haskell. Imagine an online tutorial where snippets of code can be compiled and run on the spot. You can play with them: edit, compile, and run with your changes. You can pull instant documentation for any library function used in the snippet. Yup! And there’s more. Read the blog I linked to above and sign up for beta. It’s a great opportunity to fulfill you New Year’s resolution to finally learn Haskell or to create some Haskell content yourself. Enjoy!

A web programmer must be fluent in at least four languages: HTML, CSS, JavaScript, and a fourth language for writing server code. There’s nothing wrong with having specialized domain-specific languages — the problem is, they don’t fit together nicely. This is why a web developer has to learn the fifth language — the language of the application he or she uses to put together a web site. There are many such applications and each comes with a large set of rules and conventions. These applications are as flexible as their designers made them. They make common patterns easy to implement, but they don’t help with general programmability. For that you need a programming language, not an environment.

The idea behind the Yesod framework is to use an existing language, Haskell, to unify all aspects of web programming. There are many reasons why a functional language is a great fit for web programming — for instance, the way it deals with state and mutation matches very well the RESTful principles of client/server interaction.

I realize that most web programmers are not familiar with Haskell, so I decided to create a series of tutorials introducing Yesod for non-Haskellers. You’ll learn Haskell as you go, in small increments. Here’s the first installment of this tutorial. Enjoy!