10 ms·
Two non-surprises here: > We currently have exactly two backend engineers. A single Haskell engineer can support a 2:3+:1 data:FE:BE developer ratio and still
by pphysch 5y ago
Two non-surprises here:
> We currently have exactly two backend engineers. A single Haskell engineer can support a 2:3+:1 data:FE:BE developer ratio and still have free BE time.
1) That they have 1-2 Haskell developers.
2) That backend is very straightforward once you separate it from data engineering and frontend, because you don't have to deal with hardware or wetware (pesky "side effects") like those other poor sods. This applies to virtually any popular backend language.
Yet another confirmation that pure functional langs work great when its just one or two buddies working on a "pure programming" project, but evidence remains scant of their real world utility beyond that.
- mjh2539 5y ago> Yet another confirmation that pure functional langs work great when its just one or two buddies working on a "pure programming" project, but evidence remains scant of their utility beyond that. Evidence is abundant if you look for it. FB, Microsoft, and Standard Chartered all have active internal haskell projects.
- pphysch 5y agoDo any of these projects have more than 1-2 active maintainers?
- bidirectional 5y agoNone of them are individual projects, all of those companies have several projects in Haskell. Standard Chartered, for one, have their own custom implementation of Haskell and it is used by dozens of developers across different projects.
- taeric 5y agoLike all evidence, it is actually easy to find both sides. Notably, I have yet to come across a project in clojure, Haskel, or scala that wasn't abandoned as soon as the major advocate for that language left the group. Sad in the cases where it was a well done project. Frustrating when it was bursting at the seams.
- whateveracct 5y agoThe main reason for that phenomenon is it's more personally advantageous to rewrite than to learn Haskell and extend what's there. Haskell advocate quits? Blame them for selfishly using a toy language (they're gone anyways - who is gonna disagree?), and save the day by spending a long time reimplementing an MVP subset of what they already did. Congrats - you're a hero! The end product has less functionality, but at least you didn't have to do something actually hard like learn Haskell and work with Someone Else's Code. I've seen this happen multiple times. For shame - and yes people did get promotions for it. Pathetic.
- taeric 5y agoThat would be the sad case. I have also seen the case where the code was impenetrable and did not at all lend itself to extension.
- whateveracct 5y agoI've worked on a Haskell project supposedly like that. Took me a couple weeks of not complaining to improve it significantly. The trick was not closing my eyes at the sight of ugly bad code.
- taeric 5y agoMy problem with this, is you can replace "Haskell" with any other language in that sentence, and it still works.
- 5y ago
- hota_mazi 5y agoI've always been fascinated by the fact that these claims are always completely unfalsifiable. "A lot of companies use this <non mainstream language> in internal projects but since it's internal, we can't show you". It reminds me of "I have a girlfriend but she goes to another school".
- mjh2539 5y agohttps://engineering.fb.com/2015/06/26/security/fighting-spam-with-haskell/ https://engineering.fb.com/2015/06/26/security/fighting-spam... https://www.reddit.com/r/haskell/comments/phooqo/haskell_roles_in_warsaw_shanghai_or_london_with/ https://www.reddit.com/r/haskell/comments/phooqo/haskell_rol... https://www.reddit.com/r/haskell/comments/oee437/job_ad_senior_haskell_dev_in_london_with_standard/ https://www.reddit.com/r/haskell/comments/oee437/job_ad_seni... https://www.reddit.com/r/haskell/comments/nug8mw/haskell_job_in_sg_or_hk_with_standard_chartered/ https://www.reddit.com/r/haskell/comments/nug8mw/haskell_job... https://www.reddit.com/r/haskell/comments/nn11sm/haskell_job_in_the_uk_with_standard_chartered/ https://www.reddit.com/r/haskell/comments/nn11sm/haskell_job... https://www.reddit.com/r/haskell/comments/n642ve/haskell_developer_position_at_standard_chartered/ https://www.reddit.com/r/haskell/comments/n642ve/haskell_dev... https://www.reddit.com/r/haskell/comments/8io3uk/job_work_on_ghc_at_facebook_london/ https://www.reddit.com/r/haskell/comments/8io3uk/job_work_on...
- bojo 5y agoI mean, what are those of us in this category supposed to do? For the last 5 years I have 7 developers that have been working on internal applications in Haskell for an enterprise company that I am not able to show you due to legal reasons. We have a small open source library or two out there, but they are not even remotely representative of how deep our development iceberg really is.
- named-user 5y agoI think it's generational. I believe we are limited by our own experience, a lot of software is built upon the idea that problems are solved through procedural steps rather than a series of transformations. This does not lend itself to thinking in a way that aligns nicely with functional programming. Future generations will naturally think in ways unfathomable to you and I, and this will cause a shift in the fundamental approaches to software development.
- pphysch 5y agoLast time I checked, everything is still running on von Neumann/Harvard CPUs. Did I miss a major revolution in computing?
- tadfisher 5y ago> Yet another confirmation that pure functional langs work great when its just one or two buddies working on a "pure programming" project, but evidence remains scant of their real world utility beyond that. We (Mercury) have 60 backend engineers working on a monolithic Haskell backend. So at least there is one counterpoint to your hypothesis.
- pphysch 5y agoWhat does your onboarding process look like for Haskell engineers? Ballpark time-to-first-master-commit for new hires?
- DesertVarnish 5y agoI'm another Mercury employee. When I joined there wasn't much of a specific onboarding process at all, beyond being given a few simple tickets to work on and pointed to some documentation. I had written a very small amount of Haskell before, but IIRC correctly I think I made my first commit only a few weeks after joining. In general even people without an existing strong FP background seemed to become productive pretty quickly.
- whateveracct 5y agoEvidence does not remain scant. For instance - ever used Starbucks Rewards? Congrats, you used Haskell software built by more than "two buddies." Ever shop at Target? Congrats, the inventory was likely in the store to fulfill your demand in part thanks to Haskell software built by a team. However, a large engineer org that brings in senior non-Haskeller engineers/managers/leadership is bound to run into political troubles imo. Those types tend to blame Haskell and use it as an excuse for rewriting and re-orging - hence giving them newfound power. This isn't FUD or a strawman. This is observed behavior of many "respected" "old heads" I've had to work with/for. That's just my experience from 3 different companies lol :) You can build software at any scale with Haskell - you just have to actually like and want to use Haskell for its cultural and technical benefits. Sadly, a complainer at the top of the org chart who can't even read Haskell code can easily come in and force Haskell out. That's just facts.
- WastingMyTime89 5y ago> Sadly, a complainer at the top of the org chart who can't even read Haskell code can easily come in and force Haskell out. It’s a lazy language so estimating real world performance is hard. It has a slow compiler and a very shallow pool of talents. You don’t really need to be a complainer to think that removing it from your organisation code base is a step in the right direction if you are not an Haskell shop. I would do the same with Ocaml despite liking Ocaml.
- DonaldPShimoda 5y ago> I would do the same with Ocaml despite liking Ocaml. Ah yes, the language that's so famously bad at performance that its only noteworthy usage in industry is... a trading firm that needs to be able to handle data in microseconds to make money. If only they had chosen better.
- WastingMyTime89 5y agoThe key point is the shallow pool of talents. JaneStreet definitely qualify as an Ocaml shop if you didn’t notice. It is an awesome language but I would never use it in a company which is not purely banking on it.
- avgcorrection 5y agoFirst they said that functional programming is only used for toy/proof of concept/academic things. And that’s fine, to the extent that that is true. There is a sort of real world/academenia dichotomy. But now you’re deriding functional programming because it is used on... a regular old boring backend. Used to power a non-FP-related domain (to dismiss the “I used FP to implement another FP language” critique...). On an ostensibly real-world application. And you contrast this backend with “real world utility”... This is quite confusing.
- alexfrydl 5y agoHonestly my first thought when I saw the title “why we use Haskell” was “because you have one engineer and they like Haskell?” I suppose I was wrong. It was two.
- crvdgc 5y agoHaskell is used in one "not real world" project doesn't mean it can't be used in "real world" projects. Here is an article titled 7 Useful Tools Written in Haskell: https://typeable.io/blog/2021-10-18-haskell-tools https://typeable.io/blog/2021-10-18-haskell-tools