6 ms·
What’s the major thing that Erlang/OTP (or Elixir) needs for greater adoption?
by alberth 3y ago
What’s the major thing that Erlang/OTP (or Elixir) needs for greater adoption?
- melx 3y agoYyyy... Erlang has great adoption - examples: - Ericsson (they designed Erlang) is using it for its mobile products/networks. Approx 40% of all mobile traffic worldwide goes through Ericsson's infra. - WhatsApp used/uses Erlang - again millions (billions?) of users - Bet365 / Klarna use Erlang - millions of users - from OSS, RabbitMQ, is written in Erlang I could go on... Erlang has great adoption, but it's probably smaller than, e.g. Python, due to Erlang's specific applications.
- yakubin 3y agoI thought Armstrong wrote that Ericsson replaced Erlang with C++ or some such thing, because they didn’t want to maintain a language and wanted something more off-the-shelf.
- whalesalad 3y agolots of users using a tool built on erlang != lots of users using erlang. in the programming community as a whole erlang/elixir are not very common. it's important to ack this distinction becuase we still have a hill to climb with spreading awareness for OTP.
- _mlbt 3y agoHonestly, I think a lot of Erlang's issues are superficial (some people find its syntax to be ugly and a bit warty). The other thing it seems to suffer from is the chicken and the egg of it's not popular because it's not popular. It is also a poor fit for certain domains, such as mobile apps.
- adius 3y agoFor me: Proper type system. But they are apparently working on it, so there is hope: https://elixir-lang.org/blog/2023/06/22/type-system-updates-research-dev/ https://elixir-lang.org/blog/2023/06/22/type-system-updates-...
- xvilka 3y agoThere's already an update on the progress: https://elixir-lang.org/blog/2023/09/20/strong-arrows-gradual-typing/ https://elixir-lang.org/blog/2023/09/20/strong-arrows-gradua...
- xvilka 3y agoBut I am doubtful of how actually useful it will be given how typing isn't very popular with real world code in TypeScript or Python. Too many people prefer to cut corners if they can. It should be either strict typing or none of it.
- fastball 3y agoTypescript is how it is because it is a strict superset of javascript and because they needed a type system which would describe all the existing Web APIs, which are a nightmare.
- rockwotj 3y agoYou should check out https://gleam.run https://gleam.run
- orangepurple 3y agoGleam is great but it suffers from massive key person risk right now.
- roblh 3y agoI’m fairly new to elixir, but the two things I liked the least were having to use asdf to get a working version of it that didn’t fight with the language server, and really the language server not being particularly smart or fleshed out. It’s not catastrophic, but there are many other languages that are much smoother. Particularly the auto-formatting leaves a lot to be desired. Thankfully these really aren’t existential problems because the language itself is so pleasant to use.
- thibaut_barrere 3y agoBeing taught, or at least mentioned, in schools with programming courses. Resources that target young people or beginner (we already have some, but more, and more widespread). Advertising outside the Elixir circle (Chris McCord asked the other day what podcasts would be a good fit for that). Python has a major edge in France, being defined as the reference language (teached at high school and engineering schools), and as such it sets the frame. For now, when I mention Elixir around me, although there is interest, the feedback is that it seems like a great language for connoisseurs and people with special needs (e.g. very high concurrency), which most people have no need for. I personally think it's a great language overall, including from a maintenance point of view, and I try to advertise it as such. Source: a dad with a 15-yo son who is totally into programming, and quickly saw that Python is everywhere together with Javascript (from a YouTube / blog posts / discord point of view). He doesn't understand why I "bother" with Elixir :-)
- bcardarella 3y agoHere is the list of things that I feel are still holding Elixir back from wider adoption: 1. Not enough companies sharing their experience - most companies want to lead and not follow. There has been a lot of success with Elixir but too often I've heard companies not wanting to indicate they're using Elixir out of concern that it will tip off their competition (I've heard this from two companies now, big ones) or they just don't have a culture of sharing. The most impactful case study on Elixir was one of the first, the Bleacher Report case study https://www.erlang-solutions.com/case-studies/bleacher-report-case-study/ https://www.erlang-solutions.com/case-studies/bleacher-repor.... They did an excellent job of articulating the direct business value of transitioning from Rails to Phoenix. We need more of these stories shared 2. Lack of talent - this is a chicken or egg problem but one thing that comes up quite often. If there were more companies actively hiring in Elixir there would be more devs learning Elixir but companies are reluctant to hire for Elixir because there aren't enough devs. Most of the courses/guides are aimed at transitioning Senior level talent. At DockYard through our Academy https://academy.dockyard.com/ https://academy.dockyard.com/ we decided to tackle this from the opposite end and commit to producing high quality junior Elixir engineers. 3. Higher price point for talent - the recent Stack Overflow surveys regularly rank Elixir at the top for cost. Personally I think this stat is being influenced by the fact that Elixir has a higher % of more Senior level talent so the average salary will be skewed higher. But that nuance doesn't come through in the cost rankings. If true then as the ecosystem's talent pool starts to normalize we should see this cost average out. 4. Lack of off-the-shelf solutions - Objectively Elixir is faster to build and less costly to maintain than nearly every other tech stack I've ever used. However, because it is so easy to build something we have developed a culture of "just make it from scratch" too often. When newbies ask "how do I do X" questions like auth or something else in another tech stack that they can simply add a node module or a Ruby gem in Elixir most times we lack those pre-built solutions. So the actual build cost is higher because we can't simply drop that solution in and accelerate the dev process. I've been selling Elixir services for almost a decade at this point and I'm still very bullish on Elixir. We, along with many others, have been trying to close these gaps. It's happening but the most impact anyone reading this can make that is using Elixir is to share your experiences. Write blog posts. Publish case studies. Indicate the reduction in cost, faster times to market, etc... these are the data points that are going to be most compelling and important in the coming decade.
- ekidd 3y agoAs someone who's enough of an early adopter to have been running Rust in production since ~2016, and who takes a good look at Elixir every few years, there are two major things holding me back: 1. Lack of strong typing. Dynamic typing is great on 10,000 line projects with two developers. Once you reach 50,000 lines and have a little developer turnover, it stops being fun. And dynamic typing also usually means far less IDE support. I'm spoiled; I want auto-complete. 2. Elixir is amazing for UIs like Discord, where your users interact in real time. If each of your users lives in their own little world, Elixir's greatest strengths have less chance to shine. Right now, TypeScript is a no-brainer, because React is the dominant choice for UIs, and using the same language on both client and server is a win. And frankly, TypeScript's lovely, even if the ecosystem is a constantly-churning trash fire. So for a variety of commercial projects, TypeScript is a responsible choice. Typed Python, C#, Java, Kotlin, Swift or Rust all have compelling use cases, too. But given stronger typing and an project that needed Elixir's strong support for distributed systems, I'd definitely consider Elixir.
- _trapexit 3y agoStrong typing would not be an unwelcome addition to the Erlang space but compared to most dynamically typed languages I find Erlang/Elixer to be infinitely more usable. If you aren't using guards and specific type pattern matching you arguably are doing it wrong. And those things give you much of the type info you need while developing. No compile time help but it's a lot better than most other dynamic languages. I've built very large projects in Erlang and didn't find typing a real issue.
- ekidd 3y ago> I've built very large projects in Erlang and didn't find typing a real issue. So I want to put on my consultant/lead engineer hat for this discussion. :-) I've worked for years in Ruby, Lisp, Scheme and other untyped languages, and shipped some fairly large projects. Any project where you can rightfully say "I've built it" is small enough that dynamic typing can be a pretty pleasant strategy. (I'd miss good auto-completion, though.) But when I walk onto a project with 5-20 engineers and 5 years of code, dynamic typing typically makes everything slow and painful. "We need to update two major Rails versions and deal with 40 supporting libraries. What's the plan for making sure everything still works? We have OK test coverage, but can we pull half the team for 2 weeks to work through the breakage?" Or perhaps you reach a scale where you need to onboard a bunch of junior developers or data scientists. Here, static typing helps people get up to speed, it encourages them to refactor aggressively, and it limits breakage caused by miscommunication. 50,000 to 250,000 lines of statically-typed code maintained by a 5 person team with normal turnover can make for a very pleasant project. But in that size range, I really don't enjoy dynamic typing. It's doable, but I can really feel the difference. I am extremely optimistic that Elixir could support excellent static types. And if it does, I'd definitely consider it for a wider range of projects.