Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Presumably this is newsworthy because building Tetris in Haskell is harder than in an imperative/OO language? Why is that a good thing?


Presumably this is newsworthy because everyone assumes building Tetris in Haskell is harder than in an imperative/OO language. This is a good thing because it proves that it's not.


He says its taken him a week to do it and has had to ask lots of people for help. So I'd say its much harder than in a language like C#. I could (and so could most other people here) make tetris in 1-2 days without help.


FWIW, I would need a week and lots of help to do it in C, but I could probably do it in a few days with Haskell.

This says nothing about Haskell or C, but it does say something about me.


This is a blog about functional languages, so this man obviously knows a lot about Haskell but still required help for a game that would be prettymuch a hello world for someone in almost any other language.

I know nothing of your abilities, even so, if haskell is the only language you know well, I'd be impressed if you could make the game as fast as me or most ppl here.


The first paragraph of the post explains, "it’s my first, real foray into Haskell."

If your first real program in any language was a Tetris game, you'd probably need some help getting started too.

As shown by the various games posted elsewhere in this thread, there are perfectly trivial and straightforward ways to write games in Haskell. If nothing else, Haskell's "do notation" makes it easy to safely mix imperative programming with pure functional programming.

When people do post about writing a game in a new language as a notable achievement, it's usually because they did it in part to learn a new language (as in this case) or a new concept (like using FRP or Erlang-style message passing, instead of imperative programming with mutable state).


Sorry, I missed that sentence, yes you're right. I read the bit to the right of the blog and the blog title which give the impression that he was experienced with Haskell.


But the thing is, functional game development techniques are nowhere near as developed or established as those of OO game development. The solutions to the problems at hand aren't as immediately obvious.

This comes to mind: http://prog21.dadgum.com/23.html


All this hinges on the fact that functional languages are only now being appreciated: functional languages seem to be popping up like daisies now either via stand-alone languages such as F#, multiparadigm languages or even in OOP languages (I believe I read somewhere that C# is integrating ideas from the functional paradigm). Still I can't pretend that any functional language has so far become as remotely popular as say Java or C++. Due to this the work done on functional programming and games is quite a niche area which is often explored to do a fun project while learning a language.


You don't need to do anything non-trivial for imperative/OO game programming.

If something non-trivial is required for functional programming, then it is more difficult.


As far as I know there is nothing non-trivial that I had to use apart from introducing state when it was needed by the game via monads and muteable variables. At first they were tricky because I was used to taking such things for granted.

What I can tell you is that the backend (which really needs no state) is much more easier to write in Haskell IMHO.


Actually I never said it took me a week :P And I did ask for help because I was learning Haskell as I was implementing the game.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: