5 ms·
We use Haskell for "rapid application development" in the front office at Standard Chartered bank. We have excellent typed APIs over most of the banks systems a
by willtim 10y ago
We use Haskell for "rapid application development" in the front office at Standard Chartered bank. We have excellent typed APIs over most of the banks systems and can assemble applications in hours or days, rather than weeks or months as is typical. The language is as succinct as python, but thanks to types, purity and many standardised abstractions, we get better code reuse and maintenance.
- pron 10y agoHave you written a well-researched case study? If not, please do. It's very hard to assess such statements otherwise. After at least six years of Haskell at SC, is it spreading to larger software in the bank? If so, how fast? If not, why not? Are other banks really spending orders of magnitude more on that kind of software? I've heard that SC adopted Haskell when Lennart Augustsson -- who wrote the first Haskell compiler -- moved to SC from Credit Suisse. When he left CS, they stopped using Haskell. If Haskell gives an order-of-magnitude difference in productivity as you claim, why did CS drop it after Augustsson had left?
- willtim 10y agoAFAIK, Credit Suisse only used Haskell for one particular project and that project came to a natural end. CS did end up adopting functional programming and F# became their strategic choice. I never claimed "orders of magnitude" productivity from a language alone. Haskell has every weakly-typed mainstream imperative language as a valid subset. You need good people, teams and processes to get the best out of the language. This means it is difficult to do case studies without getting dismissed as anecdotal. Most other banks have settled on Python for similar use cases. I hear on the grapevine that they have significant maintenance problems (unsurprisingly). Haskell is spreading to larger software in the bank and we are currently hiring.
- sheepmullet 10y ago> and can assemble applications in hours or days, rather than weeks or months as is typical. So you are building in hours and days applications that other banks are spending weeks and months on. I'd love to see a few case studies!!
- willtim 10y agoIt does takes significant investment to get to this point though. SCB have been building APIs and components in Haskell for 8 years. We can now glue these parts together very easily and can be confident it will work, thanks to strong types. With less disciplined languages and/or teams, 8 years of development can yield a codebase that most will want to throw away and start again.
- pron 10y agoFirst, anecdotal case studies are much harder to dismiss than the nothing we have now, and as case studies accumulate they become harder and harder to dismiss. Also, dismissal is not the point. People and organizations are free to make their own considerations and choose their tools. I'm not talking about a marketing campaign. It's about information. If I don't have information, choosing Haskell would be far less rational than not choosing it (in the absence of information, it is more rational to stick with what you have rather than pay heavily for something that may have a positive, neutral or even negative effect). Second, that Haskell "has every weakly typed mainstream imperative language as a valid subset" (which I don't think is accurate, because projects are not built from scratch, and libraries match a certain programming style) does not mean that Haskell is worth it. For the sake of argument, suppose Haskell has a 5% improvement in maintenance cost over Python but a 10% higher cost of adoption, then it's not worth it. > CS did end up adopting functional programming and F# became their strategic choice. That's great, but doesn't have much to do with Haskell. The investment required for a pure-FP language like Haskell seems to be much greater than the investment in an imperative functional language like F# (or Clojure). It seems like CS, after having evaluated Haskell, decided that it may not be worth it.
- willtim 10y ago> People and organizations are free to make their own considerations and choose their tools. Not true. If enough FUD is spread about Haskell, for example it being a failure at CS, then it becomes difficult to convince management. > If I don't have information, choosing Haskell would be far less rational than not choosing it No one is suggesting choices be made blindly. Managers should hire good people and then delegate those decisions to those people. If they want to use Haskell, don't stop them due to lack of case studies. > For the sake of argument, suppose Haskell has a 5% improvement in maintenance cost over Python but a 10% higher cost of adoption, then it's not worth it. I don't subscribe to nineteenth-century management science. My point was that software development is more about people than technologies. You will never be able to compare Haskell and Python like that, without comparing the people behind the code. What we can say for sure, is that many good developers are asking to develop in Haskell. The best way for other developers to understand why, is to try it. > That's great, but doesn't have much to do with Haskell. You were implying that Haskell had failed somehow because SC had stopped using it. Decisions within large organisations are rarely made on purely technical grounds. I can assure you there are many Haskell advocates still there.