Hacker News new | past | comments | ask | show | jobs | submit login

Definitely Haskell, with GHCJS and reflex-frp for the frontend.

I've been using Haskell for most of my personal projects for a while and, over the last year or so, I've been using it at work. The overall experience is incredible. It's hard to isolate exactly why it's so great, and there are certainly some concrete annoyances (tooling and compile times, mostly), but the end result is still unquestionably the best programming experience I've had with any system.

It did take more effort up-front than other languages I'd used. There's still a lot of incidental complexity with bad error messages and tooling that's hard to setup and understand—although it's definitely improved over the last few years. And it did take significant effort to learn, largely because it's so different from every other language I know. But once I got over the initial hump it's been smooth sailing, and I'm always happy to spend some up-front O(1) effort for a long-term reward!

The codebase at work—written by a small team with different backgrounds and levels of software engineering experience, sometimes under tight deadlines—is still largely a pleasure to read and refactor. I consistently leave code in a better state than I found it, not because I am particularly disciplined but because it is so easy.

I also tend to work on my personal projects on a very on-and-off basis—more off than on, most of the time. I've found my Haskell projects to be much easier to pick up months or even years later as compared to my projects in other languages (largely JavaScript as well as Java, Python, elisp and who knows what else).




I've been trying to do the same; what type of personal projects have you been able to use Haskell?, any recommendations on getting started?


I've been working on whatever interests me, which tends to relate to programming languages. My biggest on-and-off project, for example, is a tool that compares source code based on parse trees.

My main advice is just to jump into it, and to distinguish problems that you should try to solve on your own to learn faster from purely incidental problems that aren't worth your time. (Conceptual questions and understanding abstractions falls into the first camp; dependency issues and bad error messages in the second.) Especially with the second sort of problem, you can always get help on #haskell IRC, /r/haskell or StackOverflow.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: