4 ms·
What constraints do you have? How important is scalability for this project? Do you need lots of parallelism, fast single-core execution, low memory usage, etc?
by actsasbuffoon 9y ago
What constraints do you have? How important is scalability for this project? Do you need lots of parallelism, fast single-core execution, low memory usage, etc?
You mention long-term support. I'd have to give Haskell high marks on that one. You can use Stack to get highly repeatable builds with LTS releases of Haskell and the packages you rely on. More so than any other language I'm familiar with, Haskell does a great job with long term support and builds that should be 100% reproducible in 5 years.
As far as bugginess, Haskell obviously wins here again. If you're getting runtime exceptions in Haskell then you're doing something wrong. If rock-solid stability is important to you (and you list it as #2 on your list, so I assume it is), then Haskell is hard to beat.
Availability of developers is a tough one. Python clearly has the advantage here, despite being markedly worse on the first two sections. I don't know many Haskell developers, but the Haskellers I've met have all been exceptional software developers in general.
I find it unlikely that you're going to be able to hire 20 people who already know Haskell, unless you're willing to hire remotely. However, if you're willing to teach, I think it could work out. For example, the Elm language would be a fantastic gateway to Haskell. Build your front end with Elm and make new developers work on the front end for a few weeks. Once they're comfortable with it, switch them to the back end.
- jstimpfle 9y ago> More so than any other language I'm familiar with, Haskell does a great job with long term support and builds that should be 100% reproducible in 5 years. Really? I've never used Stack, but the experience of building dependencies from Hackage has always been awful in my experience. Even if Stack did change the game (I think it pins down the exact versions of package dependencies, I would figure using third party Haskell libraries is still a major pain: The reason is that the types in the APIs are very elaborate (elaborate types of course is generally a Haskell thing), which means very often they are not super stable. So upgrading libraries will be no fun. And you will want to upgrade, whether you use Stack or not. (Note, I haven't used Haskell seriously in a long time. Maybe someone with more up-to-date experience can validate these thoughts).
- actsasbuffoon 9y agoStack has helped things a lot. I recommend giving it a try. I've been very impressed.