[HN Gopher] Companies That Use Haskell in Production
       ___________________________________________________________________
        
       Companies That Use Haskell in Production
        
       Author : aroccoli
       Score  : 173 points
       Date   : 2022-05-03 11:47 UTC (11 hours ago)
        
 (HTM) web link (serokell.io)
 (TXT) w3m dump (serokell.io)
        
       | 0xbadcafebee wrote:
       | It's really weird that we all don't just use one language. Can
       | you imagine if different contractors building houses in the same
       | neighborhood all spoke 7 different languages?
       | 
       | Sorry, the bathroom's gonna be later than we thought, we're
       | having trouble finding a plumber who speaks Esperanto. And the
       | deck's actually slanted because the framing team spoke a
       | different language than the deck-building team so their
       | interfaces weren't designed together. The roof is also porous now
       | because the roofers' language didn't easily support water-
       | tightness. Also, we need a crane to lift our toolbox since we
       | need a duplicate tool for every language and now it weighs
       | 5,000lbs.
        
         | aranchelk wrote:
         | > Can you imagine if different contractors building houses in
         | the same neighborhood all spoke 7 different languages?
         | 
         | I don't know about 7, but depending on where you live there
         | certainly may be 3 or more.
         | 
         | > It's really weird that we all don't just use one language.
         | 
         | I'm so glad we don't. I love my preferred stack and I know
         | there are others who'd never ever want to use it; someone would
         | be very unhappy.
        
         | infogulch wrote:
         | But... builders _do_ speak different languages. Plumbing,
         | electrical, framing, drywall, painting, flooring, finishing,
         | foundation pouring, hvac, landscaping, ... these are all very
         | different fields with people that specialize in a narrow
         | subset. And sometimes they _do_ have miscommunications that
         | screw things up because they don 't all understand what
         | everyone else needs.
        
         | xboxnolifes wrote:
         | I think it's really weird that we use different languages when
         | building a house. Sorry, the basements gonna take longer than
         | we thought. There's wiring issues and we don't have anyone
         | available who speaks electrical. And the bathroom's gonna be
         | another 2 weeks since we need to call in someone who speaks
         | plumbing. Not sure why there are so many different kinds of
         | plumbing pipes, if they were all PVC i'd be able to do it
         | myself.
        
         | goto11 wrote:
         | Programming languages are more like tools. It would be weird if
         | a plumber and an architect needed exactly the same tools.
        
         | brezelgoring wrote:
         | Its more like "Our pipes will be _at least_ 2 weeks late,
         | because we can't find a guy that knows how to use a MIG welding
         | machine, and we won't fork for a TIG one".
         | 
         | Programming Languages are known, not carried, they weigh
         | nothing.
         | 
         | Using a single language for everything would be terrible, like
         | using a Chinese Army Survival Shovel-fork-axe-spoon-saw-pan-
         | ruler-hoe-hammer to build a house, it'd do everything, and do
         | everything terribly.
        
         | kabdib wrote:
         | Not all screwdrivers, drills, saws, or computer languages serve
         | equally well for all purposes.
        
         | [deleted]
        
         | bcrosby95 wrote:
         | Languages are more like tools or materials than spoken
         | language.
         | 
         | It's also literally impossible to pick just one - you would
         | fail at the JavaScript vs C problem.
         | 
         | But maybe if we always had this philosophy, we would all be
         | coding everything in cobol.
        
           | 0xbadcafebee wrote:
           | > It's also literally impossible to pick just one - you would
           | fail at the JavaScript vs C problem.
           | 
           | We could just make one language that had the features of both
           | javascript and C. We literally can invent anything we want.
           | _A n y t h i n g_. We have to throw away all our preconcieved
           | notions about what 's possible and just make the world the
           | way we want it to be / a way that's better than we have now
        
             | djur wrote:
             | In the same sense we could invent a single appliance that
             | performs all kitchen tasks, rather than having a separate
             | refrigerator, food processor, stove, oven, etc.
        
               | [deleted]
        
             | amazd wrote:
             | relevant: https://brython.info/ Brython is designed to
             | replace Javascript as the scripting language for the Web.
             | As such, it is a Python 3 implementation
        
             | [deleted]
        
         | __MatrixMan__ wrote:
         | I don't think spoken language is the equivalent metaphor here.
         | There's a grammar and toolchain for plumbing problems, and a
         | different grammar and toolchain for framing problems. The fact
         | that you can't use a nail where a machine screw is supposed to
         | go is a language incompatibility.
        
           | giraffe_lady wrote:
           | Yeah and even then they have different goals, histories, and
           | incompatibilities. Pipefitting and residential plumbing are
           | completely different domains despite the abstract
           | similarities.
           | 
           | Our tools are relatively cheap to build and test compared to
           | other fields, so we have a lot more of them.
        
         | eckza wrote:
         | It's really weird that we keep using construction metaphors
         | when we're talking about software engineering.
        
           | mistrial9 wrote:
           | when working on a large code base, I found it productive to
           | take a slow walk outdoors to some urban construction site,
           | with all of the action that involves. Also I have done
           | serious construction myself in the past. Construction terms,
           | analogies and tooling names make a lot of sense to me when
           | thinking about software systems some days.
        
       | whateveracct wrote:
       | I've only worked at (several) places not on that list, but I will
       | say that despite everyone's snide remarks here about how nobody
       | uses Haskell..I have been able to immediately get multiple
       | Haskell interviews whenever I've wanted. Ping some recruiters &
       | former coworkers on LinkedIn and it's done. Niche languages have
       | their advantages. And despite "there only being dozens of us,"
       | there's plenty of money in Haskell out there to make a good
       | living (no passion paycuts). Gotta know Haskell first tho ;)
        
         | jkeuhlen wrote:
         | We have an entire team dedicated to training up new engineers
         | at Mercury! No Haskell knowledge required.
        
           | busterarm wrote:
           | What about reforming existing engineers? Especially ones that
           | have gone down the operations path for several years and want
           | to get back to contributing with code?
           | 
           | Edit: I was asking kind of flippantly, but actually upon
           | reading your team and product seems quite interesting. Would
           | you be up for a chat?
        
           | tatoalo wrote:
           | Would you welcome/help in relocating from Europe?
        
       | alexmingoia wrote:
       | While I'm just a small one-man shop, I use Haskell for
       | https://sumi.news
       | 
       | Anyone else using Haskell to run a SaaS?
        
         | _query wrote:
         | Yes, check out https://twitter.com/haskellpreneur He's doing 12
         | startups in 12 months using Haskell. There's also
         | https://twitter.com/tonialaribe building in public with Haskell
         | :)
        
       | kevingadd wrote:
       | As mentioned on https://github.com/erkmos/haskell-companies, IMVU
       | uses Haskell pretty extensively. Originally the server-side
       | portion of the product was almost entirely PHP3 (with some bits
       | of perl on the backend for things like Memcached) and then over
       | time large portions were rewritten in Haskell (one service is/was
       | Erlang, I think.) Part of the motivation for this was the
       | incredible pain of the forced transition to newer PHP due to all
       | the compatibility breaks.
        
       | [deleted]
        
       | JJMcJ wrote:
       | Is there a book for Haskell comparable to Practical Common Lisp?
       | 
       | Teaching the language while showing examples of using it for day
       | to day tasks, like file management
        
         | WorldMaker wrote:
         | It's quite dated at this point (14 years since the first/only
         | edition) but Real World Haskell was written to be such a book
         | and a lot of it still mostly holds up despite being dated:
         | http://book.realworldhaskell.org/
        
         | tkdc926 wrote:
         | Available as a book and also read online. It's pretty good.
         | http://learnyouahaskell.com/
        
         | weavie wrote:
         | Possibly https://www.manning.com/books/haskell-in-depth
        
       | cobaltoxide wrote:
       | https://kittyhawk.aero/ used to use Haskell to develop their
       | flight control software. The strong type system of Haskell is
       | touted as ensuring that entire classes of bugs can't occur (like
       | accidentally adding different kinds of quantities together or
       | getting the units wrong).
        
         | protomikron wrote:
         | Why "used to", though? There current open positions seem to
         | look for classic C, C++ and Python:
         | https://jobs.lever.co/kittyhawk.aero?department=Heaviside&te...
        
       | langitbiru wrote:
       | Don't forget Co-Star.
       | 
       | https://www.costarastrology.com/why-haskell
        
       | weatherlite wrote:
        
         | MaxGabriel wrote:
         | Fwiw, we (mercury.com) use Haskell exclusively for our backend,
         | and employ something like 75 engineers. Haskell isn't
         | widespread for sure, but this list is by no means exhaustive.
        
           | sodapopcan wrote:
           | That's awesome! It's really nice working in more niche
           | languages and awesome when companies can be successful with
           | them.
        
           | New_California wrote:
           | The missing twelfth company. Good to hear from you! Now we're
           | complete.
        
       | zeckalpha wrote:
       | These are case studies, but if you want a longer (but still
       | incomplete) list, there is
       | https://wiki.haskell.org/Haskell_in_industry
        
       | _query wrote:
       | Haskell is famous for it's quite an academic nature. But the
       | ecosystem has drastically improved in recent years, so that that
       | image is really outdated by now.
       | 
       | E.g. with Haskell Language Server we have nice autocompletion.
       | Recently dot-notation has been added, so you can now write
       | `someValue.someField` as in other languages. And the
       | documentation is improving as well.
       | 
       | If you're doing web development, a good starting point is IHP
       | (https://ihp.digitallyinduced.com/
       | https://github.com/digitallyinduced/ihp). IHP is Haskell's
       | version of Laravel/Rails/Django. It's really a superpower to have
       | Haskell's type system combined with the rapid development
       | approach of Rails :) (Disclaimer: I'm founder of the company that
       | makes IHP)
        
         | oconnore wrote:
         | I think of Haskell along with other languages that allow for
         | shipping small, single-file binaries with a garbage collected,
         | high level language. The straightforward alternatives I'm aware
         | of include Nim, OCaml, Crystal, and Go.
         | 
         | Go is the most popular of this set, but to me seems like it
         | barely qualifies as "high level". On Tiobe, the next most
         | popular language from this set after Go is Haskell.
         | 
         | I like Haskell just fine, but what I really care about is "a
         | more high level GC'd language than Go that ships binaries".
        
           | leonidasv wrote:
           | Why do you think Go "barely qualifies as high level"?
        
         | grumpyprole wrote:
         | Security must be big selling point versus these other
         | solutions?
        
           | whateveracct wrote:
           | Security in Haskell isn't especially better than any other
           | general purpose language. You do have a lot more tools to
           | help though. For instance, you can make your web app fail to
           | compile if you accidentally try to serialize sensitive
           | information to JSON or plaintext. GHC will tell you exactly
           | where you almost had a data leak.
        
             | grumpyprole wrote:
             | I was asking about IHP specifically. Yes Haskell is just a
             | tool and one could simply build PHP with it.
        
             | bcrosby95 wrote:
             | It's actually a bit harder than you're implying, because
             | any request coming to the server could have sensitive
             | information in it.
             | 
             | But, yes, wrapping your data helps solve some of the
             | problem in any language. For instance, in Java we hold
             | passwords from requests with a Password class rather than
             | with a String class, whose .toString will return "xx"
             | rather than the actual password.
        
           | pizza wrote:
           | I'll play devil's advocate with the hope that it facilitates
           | a response by someone who understands the topic far better
           | than me: what is security?
        
             | grumpyprole wrote:
             | One example of security is not munging strings together and
             | shipping it off to the database or some other "eval" with
             | full privileges. A programming language with lightweight
             | static types makes it easier to parse outside data into a
             | typed representation, then transform/evaluate/compile as
             | necessary. This is of course Haskell's bread and butter.
        
         | dustingetz wrote:
         | So, how do I get a sane Haskell editor environment on MacOS?
        
           | _query wrote:
           | Check out this video on how to use VSCode with IHP
           | https://www.youtube.com/watch?v=_8_8XYO6rgY
        
           | cosmic_quanta wrote:
           | Your best bet is probably to use VSCode + Haskell plugin,
           | version 2.0+ (which handles the installation of everything
           | via GHCup, I believe), barring any macOS-specific problems I
           | don't know about.
           | 
           | That's the setup I use on Windows and Linux, and it's great
        
         | schwartzworld wrote:
         | IHP looks amazing! I think I'm going to have to give it a go
         | for my next project. Is it being used in production anywhere
         | besides your company?
        
           | montmorency88 wrote:
           | Hey, at Comhlan Ltd. we have a few projects in production
           | built with IHP. The largest public facing one is a visitor
           | booking system for an irish regional hospital group we've had
           | out since January. Happy to answer any questions but short
           | answer is GHC+nix+IHP has made for a really robust
           | development/deployment experience. (Disclaimer: I'm founder
           | of Comhlan and we are a IHP platinum partner as well).
        
             | agumonkey wrote:
             | This is worth a 2h talk :)
        
         | chrsig wrote:
         | Interesting, I hadn't heard it adopted a dot notation. Does
         | this mean you can have different records with the same field
         | names now?
        
           | rowanG077 wrote:
           | You can already have different records with the same field
           | with the "DuplicateRecordsFields" extension: https://ghc.gitl
           | ab.haskell.org/ghc/doc/users_guide/exts/dupl...
           | 
           | What is meant here is that instead of writing `fieldName
           | record` you can write `record.fieldName` mirroring imperative
           | language.
        
         | philjohn wrote:
         | I work for one of the companies on the list, and touch Haskell
         | every now and then on the job - maybe it's because I worked
         | with quite a few functional languages when I studied for my
         | degree (Artificial Intelligence, started in 1998), but I really
         | really enjoy it.
        
       | amelius wrote:
       | > For a long time, Microsoft Research also significantly
       | supported the Glasgow Haskell Compiler (GHC) by employing Simon
       | Peyton Jones to work on it.
       | 
       | What other companies have the equivalent of Microsoft Research in
       | terms of funding and in terms of research output?
       | 
       | Does Google come even close? And where is Apple on the list?
        
         | giraffe_lady wrote:
         | Apple and google have both launched full blown general purpose
         | programming languages, enough of them that I can't speak
         | broadly about them all but they all have some degree of
         | following and support outside those orgs.
         | 
         | So has MS for that matter. I don't see why supporting the
         | compiler of a relatively niche language counts as funding and
         | research but those things don't.
        
           | amelius wrote:
           | I don't think your argument holds: if universities were to
           | stop producing research and instead started producing code,
           | that would raise a lot of eyebrows.
           | 
           | MS has produced a lot of pure research. Google and Apple
           | produce mostly code.
        
             | giraffe_lady wrote:
             | I guess it depends on like "what is the output of
             | research?" which I admit is probably hard to define and
             | definitely not clear to me.
             | 
             | But your comment seemed to assume "compilers are the output
             | of research" so I went with that.
             | 
             | I don't know anything about microsoft's research or apple's
             | or google's either. But again I just don't understand the
             | distinction between "research" and "code" that's being made
             | here. There might be a useful distinction there but you're
             | not making it.
        
       | exdsq wrote:
       | I probably wouldn't go back to a Haskell work env to be honest.
       | It's not worth the headaches to write well and lacks a lot of
       | useful libraries
        
         | cosmic_quanta wrote:
         | If you had some time to put your thoughts in a comment/blog
         | post, I'd love to read about your experience. This is the kind
         | of feedback from which the community would benefit.
        
         | JoelMcCracken wrote:
         | What headaches? and what libraries do you miss
        
       | nymalt wrote:
       | I really wish this list was longer.
        
         | marcosdumay wrote:
         | The size of the list is determined by how much time the author
         | decided to spend doing it.
        
         | kreetx wrote:
         | This list actually _is_ longer:
         | https://github.com/erkmos/haskell-companies
         | 
         | Also, it might be a better list if the companies _mainly_ used
         | haskell. Having Meta or Microsoft doesn 't mean all that much
         | as they probably use every language under the sun _somewhere_.
        
       | 22SAS wrote:
       | I took a Haskell course in grad school. Had a lot of struggle
       | initially, but came to appreciate the language later on.
       | 
       | IIRC, Target also uses Haskell for some of their data science
       | teams.
        
       | rundmc wrote:
       | Don't forget https://tontine.com
       | 
       | We are the global pioneers of an OECD endorsed disruptive fintech
       | platform that enhances your parents pension wealth by 87% with
       | Zero added risk according to ETHZurich (Einstein's alma mater).
       | 
       | OH, and I should mention that we are hiring
       | mathematicians/statisticians.
       | 
       | See https://github.com/TontineTrust/InterviewTest2022
        
       | blowski wrote:
       | While I'm not a huge Haskell fan (heck, I struggle with PHP) I'd
       | hope for more constructive comments on this than we have so far.
        
         | whateveracct wrote:
         | Haskell's success & growth philosophy is pretty antithetical to
         | the typical HNer's - so the comments make sense.
        
           | blowski wrote:
           | The assumption on HN is that comments should be interesting,
           | not low-effort flame-bait.
        
             | eckza wrote:
             | This assumption holds more often than not; but it does not
             | always hold.
             | 
             | HN: the worst thing out there, except for everything else!
        
       | JNRowe wrote:
       | I've attended a few Haskell conferences over the years and the
       | make up tends to be fairly evenly split between PL researchers,
       | defence, aerospace, and finance. I recall the food stop after an
       | event at Imperial where our table was twenty-ish people from
       | Airbus, Barclays, Lockheed, QinetiQ, and Thales.
       | 
       | If you're looking to work in Haskell there are some avenues to
       | hunt down. Same caveats as with Standard Chartered and Meta
       | mentioned in the article, there _is_ Haskell but it is scuttling
       | around in the corners not flowing from everywhere.
        
         | epolanski wrote:
         | My biggest beef with Haskell is that it is very unwelcoming to
         | people with no Haskell experience.
         | 
         | Like I could show 10 personal projects in Haskell and still no
         | one would give two damns and ask me for few years of
         | professional Haskell experience.
         | 
         | There's less work in Haskell than willing applicants it seems.
         | It's time to sell it better to management.
        
           | devoutsalsa wrote:
           | If you know Haskell and people ask for experience, just write
           | a program on your work computer and out it in your resume. If
           | they need to see that to believe you have professional
           | Haskell experience, then just give it to them. Programming
           | interviews are pretty lame, so help them be less lame. You
           | still need to prove your competence. And they'll say anything
           | to get you on board, so you're just playing along.
        
       | throwaway43212 wrote:
       | Unfortunately Klarna is consolidating tech stacks on
       | Java/Javascript. Erlang/Scala/Haskell/Clojure (ordered) will
       | probably stay for a couple of more years, but these will over-
       | time be replaced by new systems in Java and Javascript. The main
       | reason is ease of hiring, but also to be able to move engineers
       | and systems around easily within the organisation.
        
         | throwawaystock wrote:
         | I worked there a few years ago. I applied for a Haskell role
         | there. During my interview I was told it was a Scala role.
         | 
         | I became the only Scala dev in a team who wanted to rewrite the
         | codebase in Typescript.
         | 
         | I ran out of work to do there at times - while the team was
         | still growing. The same manager who couldn't find work for me,
         | after announcing that the team would be splitting because it
         | got too big, was dumbfounded when I suggested we stop hiring
         | more people.
         | 
         | I had a few colleagues who had worked there longer than me, but
         | didn't have any code in prod.
         | 
         | I feel stupid even writing this, but it honestly seemed that
         | having more developers was more important than the product
         | itself.
        
           | throwPlz wrote:
           | I honestly believe that removing Typescript/JS would actually
           | benefit the software engineering quality in the company, to
           | me it's there just because the pool of people is large. I
           | would prefer quality over quantity, but I'm not a manager
           | -\\_(tsu)_/-
        
           | busterarm wrote:
           | When VCs give you money you're required to spend it.
           | 
           | Otherwise what the hell did you go out and raise more money
           | for? More engineers is the easiest way to spin wheels and
           | make money go away without a lot of questions being asked.
           | 
           | It's one of the sad realities and cargo cults that we all
           | participate in.
           | 
           | Getting hired to a Haskell or Elixir/Erlang role in a
           | bootstrapped company is the dream but there's only so many of
           | those jobs out there right now, sadly.
        
             | RC_ITR wrote:
             | Money. Famously only valuable when it's already been spent
             | and you no longer hold it.
        
         | aroccoli wrote:
         | Sad to hear that (especially about Erlang, personally).
        
       | aroccoli wrote:
       | Just to be clear, the list is not supposed to be exclusive --
       | there's a lot of companies using Haskell out there. :)
       | 
       | I just wanted to feature some of the biggest names and some of
       | the cool use cases.
       | 
       | BTW, if you're interested in Haskell case studies, we have a
       | series called Haskell in Production
       | (https://serokell.io/blog/haskell-in-production) with interviews
       | with Haskell projects that covers more ground.
       | 
       | -- Author
        
         | deepakkarki wrote:
         | I think you mean "the list is not supposed to be exhaustive"?
         | 
         | Unless I'm reading it wrong....
        
           | aroccoli wrote:
           | That is indeed what I meant.
        
       | tome wrote:
       | See also: https://news.ycombinator.com/item?id=31214919
        
       | kepano wrote:
       | Here's a longer list: https://github.com/erkmos/haskell-companies
       | 
       | Our backend at Lumi (W15) is all Haskell. We've been happily
       | building with Haskell since 2016. Lumi is making the world's
       | factories accessible online. The transactions that occur on Lumi
       | are large and typically non-returnable because all of the
       | products being manufactured are custom, mass-produced items.
       | Haskell helps us in all kinds of ways, including performing safer
       | migrations, and creating DSLs to define specifications of
       | manufacturable products.
       | 
       | https://www.lumi.com
        
       | WraithM wrote:
       | Bitnomial (bitnomial.com) uses Haskell for basically everything!
        
       | agumonkey wrote:
       | Some decently sized french company used (may still do) haskell
       | for logistics.
        
       | klohto wrote:
        
         | weatherlite wrote:
        
       | throwPlz wrote:
       | Klarna recently stopped supporting Haskell internally. Still
       | supported are Clojure and Erlang.
        
       ___________________________________________________________________
       (page generated 2022-05-03 23:01 UTC)