9 ms·
A list of companies using Elm in production
- mac_was 7y agoEDIT: Would like to see something similar with svelte.
- Fr0styMatt88 7y agoI haven’t followed Elm very actively for quite awhile. My workplace has a kiosk product where I, along with two others, did the entire front-end UI in Elm. Multiple screens, a full configuration interface and talking to a C# back-end. I think we’re on Elm 0.17 or Elm 0.18 still. At least at the time we shipped the first version, it was larger than any example app I’d seen and there weren’t a lot of non-toy applications or examples to compare against. I certainly have overall positive feelings about it, with some frustrations (like any language really). I’ll say that the most stand-out thing about that code is that I can be off it for six months, come back to it and within an hour or so I’m back to comfortably knowing what’s going on. I’d played around with functional languages before Elm; I’m a bit of a language nut. One thing that’s easy to forget is how intimidating the syntax can be to people who haven’t seen anything like it before. I don’t know that I would do such a large project in Elm again though. Or at least, it’s not something I’d push for wider adoption within work; some has to do with factors like finding developers and fact it’s just really early days for the languages in the grand scheme of things. It needs more time to grow. On the technical side, having subpages and doing the routing of messages can be really painful and I don’t really like the ‘huge flat data model’ approach. I abstracted the core routing boilerplate away by using a JavaScript templating library to make a boilerplate generator. You specify the screens you want and your main.elm gets generated from a template, with the appropriate message routing and handling for update and view calls and the structure of the top-level data model being generated for you into an Elm source file that actually gets compiled. it worked out for us, but I still feel like it’s working around a shortcoming of the language.
- gdotdesign 7y agoSince you are a language nut, I would like your opinion on the language I've been developing for more than a year now - Mint (https://www.mint-lang.com https://www.mint-lang.com) :) It's something between Elm and React (while actually using React as a platform) with a lot of built-in functionality like routing, styling, data storage and more.
- hopia 7y agoWow that's cool, components as first class citizens. The native control flow structures are also pretty innovative!
- eyelidlessness 7y agoThis looks really interesting, and I'd certainly consider trying it out for a personal project. If I may ask a question about syntax... Mint `render` returns look so very close to JSX syntax, but slightly different. It appears bare text variables are annotated `<{ varName }>` rather than `{ varName }`, and the `<Component::style ...>` syntax is unfamiliar. What is the motivation for providing a syntax so close to JSX but slightly different?
- gdotdesign 7y agoFor this particular syntax, the motivation here was to make it look like more of a tag than an interpolation.
- Vinnl 7y agoHeads-up: I submitted it as a separate post and it appears to be making the front page now. You might want to get in there: https://news.ycombinator.com/item?id=22246615 https://news.ycombinator.com/item?id=22246615
- hopia 7y agoBy huge flat data model do you refer to the sum type which basically holds your app's state? I've always wondered how that state management approach scales when the codebase grows, never seen a good example of a large scale web app architected with Elm.
- shanlalit 7y agoMost of the hand-on experiences I have read talk about some frustration and pain working with ELM, like talking to and from native javascript libs. Do we have a list of pain/frustrations in the X language/framework based on hand-on experience? People and language/framework experts could share their advice and suggest better ways.
- xena 7y agoCheck out https://elm-spa.dev https://elm-spa.dev, it helps fix a lot of this with boilerplate and code generation.
- kweinber 7y agoElm has been out a long time and that is a really short list. Are there key reasons elm hasn’t seen more adoption? (Please don’t bother with comments about corporate drones etc.... companies are pretty good at taking advantage of a good thing)
- popara 7y agoFrom what I have heard, most teams that don't opt to Elm have a reason along the lines of: But this is not React and React is the best! On the other hand, I have been using Elm for solid 4 years, and there are so many moments of Pure Joy of working with Elm, that JS/TS is unbearable. I have dropped many offers to work on React TS codebases, because that kind of language is such a downgrade after Elm ... IMHO
- hellofunk 7y agoI feel exactly the same way about Clojurescript and Reagent.
- MichaelGlass 7y ago> companies are pretty good at taking advantage of a good thing. I ... don't think that's true? There are lots of "superior" technologies that just haven't won. e.g. the handful of people who use it _swear_ by Datomic. And there are load of so-called "inferior" technologies that are still widely relevant. Mysql? Php? Wordpress? They pay a lot of software developers' bills. I work at NoRedInk, and we pay Evan Czaplicki to work on elm. When we started to migrate to Elm, our eng team was under 10 people. Larger companies, e.g. even NoRedInk today, tend to be less agile.
- LandR 7y ago> companies are pretty good at taking advantage of a good thing This is not my experience at all.
- claudiawerner 7y agoI don't know about anyone else, but I had some trouble with Elm. It's hard to reason in the type system (in comparison to Haskell), and I even had trouble just getting a drop-down list and radio buttons in a cross-platform way. The application structure is also very confusing to me, it's not quite MVC but it also doesn't let me just put stuff in one file. On the other hand, the workflow was good (even if it takes some time to compile + assets etc.), but I don't know if I'd use Elm again instead of trying TypeScript.
- mettamage 7y agoAdd brilliant.org to the list. I'm currently not in the position to do a pull request.
- tin-foil-hat 7y agoNot looked at Elm before, but it does look interesting
- vmchale 7y agoI'd avoid it. The community is weird and the language is hobbled in various ways and they insist on keeping it that way. I'd try PureScript next, or ReasonML. But not Elm. Definitely not in production.
- hombre_fatal 7y agoI think Elm has two major things that make it such a pleasant detour from what most of us have experienced building web clients: 1. It comes with an opinionated architecture for building apps (model, view, update loop): https://guide.elm-lang.org/architecture/ https://guide.elm-lang.org/architecture/. This constraint is a breath of fresh air if you've ever installed React and then been stuck wondering how you should deal with state. Mobx? Event emitters? Redux? And your app increasingly niches itself into a novel constellation of dependencies. Meanwhile, Elm apps are basically all the same from an architectural standpoint. 2. Strict type system, great compiler errors, no runtime errors. I think the best illustration of this is refactoring power. I've come back to old projects where I certainly don't remember how the code works. I start writing the code that my feature needs (like changing the html to rely on variables I haven't yet defined) and I basically just follow the compiler errors until it works. Or I've made massive refactors like added an archer class to my game that was previously just melee classes which introduced daunting modeling changes to my system, and the compiler essentially gave me a TODO list of all the code sites I needed to update. Elm certainly involves learning new things, but there's also a lot of work in stitching together a similar concoction of React, Typescript, immutability, etc. In many ways Elm is a vast simplification.
- jlengrand 7y agoI feel like Elm has been stalling a bit the last year. Communities in my area are less vibrant, and I feel like I hear about it less than say 2 years ago. But where we used to have only 1 european conference in 2017, there are now at least 3. The list is still short, but growing and there is no crazy push for adoption so it's understandable. Most of the core libraries haven't been updated for over 2 years, which is OK, since they work :). That's something that is quite far from the 'there has to be noise about it' habits from our tech world, and it might be one of the reasons it doesn't raise. I still love writing it more than anything else. Elm makes me happy, more than anything else I've ever written, and that's all the counts for me
- berns 7y ago> Microsoft - the world's second largest software company, has used Elm for the frontend... Should I take the list with a grain of salt? Just kidding, I'm just curious which they think is the first.
- Cederfjard 7y agoI guess Oracle has more employees? Or perhaps they’re using a wide definition of software company.
- jinglebells 7y agoApple?
- danabrams 7y agoInteresting that the list is so heavy in education.
- bussierem 7y agoThe company that employs the author of the language (Evan) is NoRedInk, an edusoftware company, so that may be a large reason.
- bapcyk 7y agoAs I understand, some of companies don't know that they use Elm: they paid money for "some modern frontend" and got it written in Elm. It looks like deliberate technological lock.
- antew 7y agoThe company I work at (https://halogen.tv https://halogen.tv) has been using Elm in production for a few years now, we have around 90k LOC in Elm for the front-end, and it has mostly been a pleasure to work in. The biggest upsides in my view are: - The compiler is your best friend, the error messages are great, and you can enforce a lot of things with the type system. Have a list that should never been empty? Use a NonEmptyList, need to manage a selection? Use a Zipper/SelectList. Forgot to handle a possibility in a case statement? The compiler will catch it for you. - Refactoring, even large scale refactors, are tractable and actually fun. Change the architecture in whatever way you want and follow the compiler errors, when you fix the last compiler error things usually work like you want! - (Almost) No runtime errors. There are still a few rough edges where you can get a runtime exception, but they are uncommon. It is not to say it is all roses, there are negatives as well: - Lack of a roadmap or timeline, there is zero visibility into what is being worked on and when things may happen. This has been a deliberate choice by the core team I think because when they had a roadmap and parts of it didn't fit into the next release people were angry. - Bugs can take a long time to be fixed, even if there is a PR that fixes it, it is unlikely to be merged. - Experimentation is discouraged. The 0.19 update removed the undocumented, unsupported, here-be-dragons hooks that allowed writing effect managers except for repos in the elm or elm-explorations organizations on github. I agree with not allowing those modules to be published to the elm package site, but intentionally blocking people experimenting on their own is unnecessary in my opinion. Of course you can always fork the compiler and remove the restrictions. - Ports are a pain. We generally use custom elements in place of ports where it makes sense, but they are really a hack around some of Elm's pain points, if I could do it all nicely in Elm I would.
- agumonkey 7y ago> - Lack of a roadmap or timeline, there is zero visibility into what is being worked on and when things may happen. This has been a deliberate choice by the core team I think because when they had a roadmap and parts of it didn't fit into the next release people were angry. this is a bit sad (the fact that mobs are still mobs) in any case I wonder if they couldn't make some kind of core partner club with people that have been long and deep Elm users
- gscho 7y agoConcourse CI is another example of an application UI written in elm: https://github.com/concourse/concourse/tree/master/web/elm https://github.com/concourse/concourse/tree/master/web/elm
- johnklos 7y agoThese companies are using an older email client? Great! How does that affect me, and how does anyone else know specifically who's using elm?
- mc3 7y agoNo not the email client. It's about choice of timber for TV studios.
- frozenlettuce 7y agoI have hard criticism about Elm, but I concur that it has a good onboarding experience when compared to PureScript, Miso and GHCJS.
- starman100 7y agoVirtual Airwaves uses it for their web-based walkie-talkie WebRTC client with a custom endpoint (in Erlang!) that emulates radio. (This link takes you to public channel 1) https://cb.virtualairwaves.com/channel/1 https://cb.virtualairwaves.com/channel/1 More information here: https://virtualairwaves.com/ https://virtualairwaves.com/
- aguzubiaga 7y agoWe at PINATA (gopinata.com) just built one of our newest features with Elm and Elm UI. We finished it on time, which is already uncommon and especially when you don't have any real prior experience with a new language. We shipped it to production, and it has been working flawlessly! The simplicity of Elm fundamentals make the language easy to learn, your code readable, and the solution to your problems almost obvious. On top of that, the "If it compiles, it works" feeling helps you trust your code and prevents most of the bugs introduced in refactors. We aren't going back any time soon :)
- dentemple 7y agoSo... uh... which of these companies are hiring?
- wolfadex 7y agoWe're in the process of a rewrite into Elm at the moment and have been loving every moment of it. Even the devs who are seeing Elm for the first time are enjoying it.