4 ms·
Only on HN will you read someone unironically suggest writing LOB software in Haskell.
by gavinray 2y ago
Only on HN will you read someone unironically suggest writing LOB software in Haskell.
- tome 2y agoWhy not? Many of us do it every day.
- gavinray 2y agoLet's suppose that you and I are non-technical founders of some medium-size software product. If we were to rank the most important factors in choosing how to build our product, I think we may be able to agree that they're likely: - The talent pool and availability of the language - The ecosystem of libraries and ancillary tools like monitoring/debugging/observability - The speed-of-development vs cost-of-maintenance tradeoff of the language I will give Haskell that it can be rapidly written by those proficient, and tends to have less bugs if it compiles than many languages. But for "what language is easy to employ and has an expansive ecosystem + tooling", I feel like you have to hand it to Java, .NET, Python, TypeScript, Go, etc...
- tome 2y agoThat's shifting the goalposts somewhat! Can Haskell be used for LOB software. Yes! In fact it's the one I am most effective in for that purpose. If I was starting a startup, it would be in Haskell, no question. "Let's suppose that you and I are non-technical founders of some medium-size software product ..." Well, that's something else entirely.
- mchaver 2y agoI am unironically being paid to do it! My experience is Haskell is one of those ecosystems that has a greater talent pool than there are available positions. I feel like cost of maintenance is pretty nice because you have less bugs. You may have to roll up your sleeves and get your hands dirty to update open source libraries or make stuff that is missing, but code reliability seems to be worth it.
- deleted 2y ago[deleted]
- rebeccaskinner 2y agoI think you're taking a particular view of things that can work, but it's not the only correct view. > The talent pool and availability of the language There are certainly more Javascript or Python developers out there than Haskell developers, but I think it's wrong to imply that Haskell is a hard language to hire for. There are more people out there who want to work with Haskell than there are Haskell jobs, and picking Haskell can be a really great way to recruit high quality talent. It's also quite possible to train developers on Haskell. A lot of companies hire people who don't have experience with their particular language. The learning curve for Haskell may be a bit steeper, but it's certainly tractable if you are hiring people who are eager to learn. > The ecosystem of libraries and ancillary tools like monitoring/debugging/observability Other languages have _more_ of these, but it's not like Haskell is missing basic ecosystem things. I actually find that Haskell is pretty nice with this stuff overall. It's not quite as automatic as what you might get with running something in the JVM, but it's not that big of a lift, and for a lot of teams the marginal extra effort here is more than worth it because of the other benefits you get from Haskell. > The speed-of-development vs cost-of-maintenance tradeoff of the language Haskell is really excellent here in my experience. You can write unmaintainable code in any language, but Haskell gives you a lot of choice in how you build your application, and it makes refactoring a lot nicer than in any other language I've used. You don't get some of the nice IDE features to rename things or move code around automatically, but working in a large Haskell codebase you really do start to see ways that the language makes structural and architectural refactoring a lot easier. > But for "what language is easy to employ and has an expansive ecosystem + tooling", I feel like you have to hand it to Java, .NET, Python, TypeScript, Go, etc... Those are all perfectly good choices. I think what people tend to overlook is that Haskell is _also_ a perfectly good choice. Everything has tradeoffs, but Haskell isn't some terrible esoteric choice that forces you to leave everything practical on the table. It really is useful day to day as a general purpose language.
- spopejoy 2y agoHaskell is a nightmare if you need truly seasoned industrial programmers. Which supports the argument that "it's good for startups" which generally want to exploit young cheap talent. But as soon as your business starts needing industrial wizards you're out of luck. The reasons/requirements to choose haskell are: 1. You already have a confident haskeller or two on your team, ideally senior 2. Your tech needs are vanilla and back-end heavy -- writing UIs in haskell is a nonstarter, and heaven help you if you're not doing vanilla web apis + postgres etc 3. You want primarily junior- to mid- talent (great for keeping burn low) There are niche examples like compiler tech or provers where haskell is in fact dominant. It's also fantastic for threading and parallelism. Otherwise the claim that it's a good choice requires all three of the above to be true.
- bunderbunder 2y agoI am not prepared to hunt down the citation, but several years back I stumbled across a paper that was trying to compare the effectiveness of various languages for grinding out "domain logic-y" code. Among the ones they evaluated, Haskell came out on top in terms of both time to get the work done and correctness of the implementation. IIRC this was testing with students, which would be both a strength and a weakness of the experimental design.
- jose_zap 2y agoWe do that at our company, it's been great
- __MatrixMan__ 2y agoNot just HN, Cardano's smart contract language, Plutus, is based on Haskell.
- simonmic 2y agoNot just that; the whole Cardano blockchain is running on Haskell, with 100% uptime and high trust. It’s a hugely impressive system, well worth studying.