8 ms·
Has anyone seen a big - multi year system done in FP? Lots of people love FP, it seems great for your own side project, but I'm not convinced it works in those
by x87678r 6y ago
Has anyone seen a big - multi year system done in FP? Lots of people love FP, it seems great for your own side project, but I'm not convinced it works in those typical big corporate systems where devs turn over every few years as the code base grows.
- JackMorgan 6y agoI've worked in big F# projects in banking. It's absolutely superior to C# or Java in many ways. One notable drawback is "how much code can new hires write in their first month" which is not a metric I consider that important for big enough projects. The month or so needed to skill up a C# or Java programmer in F# is a drop in the bucket compared to the benefits it brought us.
- gidan 6y agoPitch (from Berlin) is using Clojure as well as Reagent with React. From what I saw it's quite a moderately sized app (not a gigantic one, but not a side-project sized either, in between that's what I mean).
- beders 6y agoIt's working fine for us and we just hired 6 new clojure devs. Code base is quite significant yet easy to make meaningful changes to. Most reasoning is local to your changes thanks to the focus on small, pure fns dealing with immutable data.
- adamkl 6y agoNubank seems to be doing just fine: “From [its] start in 2013, Nubank has grown to 600 Clojure developers, running 2.5 million lines of Clojure code in 500 microservices”[0] [0] https://www.fintechfutures.com/2020/07/brazilian-challenger-nubank-acquires-firm-behind-clojure-and-datomic/ https://www.fintechfutures.com/2020/07/brazilian-challenger-...
- Scarbutt 6y agoTo be fair, they had to buy Cognitect to cope with the technical debt of Clojure and Datomic.
- raspasov 6y agoTechnical debt can exist in any product and for a variety of reasons: inexperience, frequent employee churn, lack of leadership, frequent change of product direction, etc. Your comment implies that the technical debt is with Clojure the language or because of it. Beware of single-cause explanations of inherently complex problems. I've designed and worked on systems with both OOP and functional-style code. Clojure is a tool that very much helps minimize technical debt. I think the minimal use of managed state in Clojure plays a crucial part. Having done a good amount of looking through the Clojure language code itself, there's very little (if any) technical debt there.
- puredanger 6y agoThat would be a good story if it were true, except it's not.
- sodapopcan 6y agoCircleCI is a clojure shop.