Alternatives to Erlang logo

Alternatives to Erlang

Elixir, Haskell, Go, Clojure, and Akka are the most popular alternatives and competitors to Erlang.
444
379
+ 1
252

What is Erlang and what are its top alternatives?

Some of Erlang's uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang's runtime system has built-in support for concurrency, distribution and fault tolerance. OTP is set of Erlang libraries and design principles providing middle-ware to develop these systems.
Erlang is a tool in the Languages category of a tech stack.
Erlang is an open source tool with 8.2K GitHub stars and 2.2K GitHub forks. Here’s a link to Erlang's open source repository on GitHub
Top Alternatives

Erlang alternatives & related posts

Elixir logo

Elixir

1.8K
1.6K
972
1.8K
1.6K
+ 1
972
Dynamic, functional language designed for building scalable and maintainable applications
Elixir logo
Elixir
VS
Erlang logo
Erlang

related Elixir posts

Kamil Kowalski
Kamil Kowalski
Engineering Manager at Fresha · | 26 upvotes · 115.2K views
atFresha EngineeringFresha Engineering
Cypress
Cypress
JavaScript
JavaScript
Elixir
Elixir
Ruby
Ruby
Java
Java
Selenium
Selenium

When you think about test automation, it’s crucial to make it everyone’s responsibility (not just QA Engineers'). We started with Selenium and Java, but with our platform revolving around Ruby, Elixir and JavaScript, QA Engineers were left alone to automate tests. Cypress was the answer, as we could switch to JS and simply involve more people from day one. There's a downside too, as it meant testing on Chrome only, but that was "good enough" for us + if really needed we can always cover some specific cases in a different way.

See more
Sebastian Gębski
Sebastian Gębski
CTO at Shedul/Fresha · | 7 upvotes · 62.4K views
atFresha EngineeringFresha Engineering
Elixir
Elixir
Phoenix Framework
Phoenix Framework
Erlang
Erlang
Credo
Credo
Hex
Hex
AppSignal
AppSignal

Another major decision was to adopt Elixir and Phoenix Framework - the DX (Developer eXperience) is pretty similar to what we know from RoR, but this tech is running on the top of rock-solid Erlang platform which is powering planet-scale telecom solutions for 20+ years. So we're getting pretty much the best from both worlds: minimum friction & smart conventions that eliminate the excessive boilerplate AND highly concurrent EVM (Erlang's Virtual Machine) that makes all the scalability problems vanish. The transition was very smooth - none of Ruby developers we had decided to leave because of Elixir. What is more, we kept recruiting Ruby developers w/o any requirement regarding Elixir proficiency & we still were able to educate them internally in almost no time. Obviously Elixir comes with some more tools in the stack: Credo , Hex , AppSignal (required to properly monitor BEAM apps).

See more

related Haskell posts

Vadim Bakaev
Vadim Bakaev
Haskell
Haskell
Scala
Scala

Why I am using Haskell in my free time?

I have 3 reasons for it. I am looking for:

Fun.

Improve functional programming skill.

Improve problem-solving skill.

Laziness and mathematical abstractions behind Haskell makes it a wonderful language.

It is Pure functional, it helps me to write better Scala code.

Highly expressive language gives elegant ways to solve coding puzzle.

See more

related Go posts

Nick Parsons
Nick Parsons
Director of Developer Marketing at Stream · | 34 upvotes · 508.2K views
atStreamStream
Stream
Stream
Go
Go
JavaScript
JavaScript
ES6
ES6
Node.js
Node.js
Babel
Babel
Yarn
Yarn
Python
Python
#FrameworksFullStack
#Languages

Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

#FrameworksFullStack #Languages

See more
Yshay Yaacobi
Yshay Yaacobi
Software Engineer · | 29 upvotes · 631.4K views
atSolutoSoluto
Docker Swarm
Docker Swarm
.NET
.NET
F#
F#
C#
C#
JavaScript
JavaScript
TypeScript
TypeScript
Go
Go
Visual Studio Code
Visual Studio Code
Kubernetes
Kubernetes

Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

See more

related Clojure posts

Jake Stein
Jake Stein
CEO at Stitch · | 13 upvotes · 113.6K views
atStitchStitch
Go
Go
Amazon RDS
Amazon RDS
Amazon S3
Amazon S3
Amazon Redshift
Amazon Redshift
Amazon EC2
Amazon EC2
AWS OpsWorks
AWS OpsWorks
Kubernetes
Kubernetes
Python
Python
JavaScript
JavaScript
Clojure
Clojure

Stitch is run entirely on AWS. All of our transactional databases are run with Amazon RDS, and we rely on Amazon S3 for data persistence in various stages of our pipeline. Our product integrates with Amazon Redshift as a data destination, and we also use Redshift as an internal data warehouse (powered by Stitch, of course).

The majority of our services run on stateless Amazon EC2 instances that are managed by AWS OpsWorks. We recently introduced Kubernetes into our infrastructure to run the scheduled jobs that execute Singer code to extract data from various sources. Although we tend to be wary of shiny new toys, Kubernetes has proven to be a good fit for this problem, and its stability, strong community and helpful tooling have made it easy for us to incorporate into our operations.

While we continue to be happy with Clojure for our internal services, we felt that its relatively narrow adoption could impede Singer's growth. We chose Python both because it is well suited to the task, and it seems to have reached critical mass among data engineers. All that being said, the Singer spec is language agnostic, and integrations and libraries have been developed in JavaScript, Go, and Clojure.

See more
Clojure
Clojure
ClojureScript
ClojureScript
JavaScript
JavaScript
Java
Java
C#
C#

I adopted Clojure and ClojureScript because:

  • it's 1 language, multiple platforms.
  • Simple syntax.
  • Designed to avoid unwanted side effects and bugs.
  • Immutable data-structures.
  • Compact code, very expressive.
  • Source code is data.
  • It has super-flexible macro.
  • Has metadata.
  • Interoperability with JavaScript, Java and C#.
See more
Akka logo

Akka

517
434
67
517
434
+ 1
67
Build powerful concurrent & distributed applications more easily
Akka logo
Akka
VS
Erlang logo
Erlang

related Akka posts

StackShare Editors
StackShare Editors
Kafka
Kafka
Scala
Scala
Cassandra
Cassandra
Akka
Akka

To solve the problem of scheduling and executing arbitrary tasks in its distributed infrastructure, PagerDuty created an open-source tool called Scheduler. Scheduler is written in Scala and uses Cassandra for task persistence. It also adds Apache Kafka to handle task queuing and partitioning, with Akka to structure the library’s concurrency.

The service’s logic schedules a task by passing it to the Scheduler’s Scala API, which serializes the task metadata and enqueues it into Kafka. Scheduler then consumes the tasks, and posts them to Cassandra to prevent data loss.

See more
Akka
Akka
Kafka
Kafka

I decided to use Akka instead of Kafka streams because I have personal relationships at @Lightbend.

See more
OCaml logo

OCaml

61
25
0
61
25
+ 1
0
A general purpose industrial-strength programming language
    Be the first to leave a pro
    OCaml logo
    OCaml
    VS
    Erlang logo
    Erlang
    PHP logo

    PHP

    64.1K
    19.4K
    4.3K
    64.1K
    19.4K
    + 1
    4.3K
    A popular general-purpose scripting language that is especially suited to web development
    PHP logo
    PHP
    VS
    Erlang logo
    Erlang

    related PHP posts

    Nick Rockwell
    Nick Rockwell
    CTO at NY Times · | 29 upvotes · 639.9K views
    atThe New York TimesThe New York Times
    MySQL
    MySQL
    PHP
    PHP
    React
    React
    Apollo
    Apollo
    GraphQL
    GraphQL
    Node.js
    Node.js
    Kafka
    Kafka
    Apache HTTP Server
    Apache HTTP Server

    When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

    So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

    React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

    Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

    See more
    Ali Soueidan
    Ali Soueidan
    Creative Web Developer at Ali Soueidan · | 17 upvotes · 288.8K views
    npm
    npm
    Vue.js
    Vue.js
    vuex
    vuex
    JavaScript
    JavaScript
    Pug
    Pug
    Sass
    Sass
    JSON
    JSON
    Git
    Git
    GitHub
    GitHub
    ES6
    ES6
    Asana
    Asana
    Adobe Illustrator
    Adobe Illustrator
    PHP
    PHP
    Babel
    Babel

    Application and Data: Since my personal website ( https://alisoueidan.com ) is a SPA I've chosen to use Vue.js, as a framework to create it. After a short skeptical phase I immediately felt in love with the single file component concept! I also used vuex for state management, which makes working with several components, which are communicating with each other even more fun and convenient to use. Of course, using Vue requires using JavaScript as well, since it is the basis of it.

    For markup and style, I used Pug and Sass, since they’re the perfect match to me. I love the clean and strict syntax of both of them and even more that their structure is almost similar. Also, both of them come with an expanded functionality such as mixins, loops and so on related to their “siblings” (HTML and CSS). Both of them require nesting and prevent untidy code, which can be a huge advantage when working in teams. I used JSON to store data (since the data quantity on my website is moderate) – JSON works also good in combo with Pug, using for loops, based on the JSON Objects for example.

    To send my contact form I used PHP, since sending emails using PHP is still relatively convenient, simple and easy done.

    DevOps: Of course, I used Git to do my version management (which I even do in smaller projects like my website just have an additional backup of my code). On top of that I used GitHub since it now supports private repository for free accounts (which I am using for my own). I use Babel to use ES6 functionality such as arrow functions and so on, and still don’t losing cross browser compatibility.

    Side note: I used npm for package management. 🎉

    *Business Tools: * I use Asana to organize my project. This is a big advantage to me, even if I work alone, since “private” projects can get interrupted for some time. By using Asana I still know (even after month of not touching a project) what I’ve done, on which task I was at last working on and what still is to do. Working in Teams (for enterprise I’d take on Jira instead) of course Asana is a Tool which I really love to use as well. All the graphics on my website are SVG which I have created with Adobe Illustrator and adjusted within the SVG code or by using JavaScript or CSS (SASS).

    See more

    related JavaScript posts

    Nick Parsons
    Nick Parsons
    Director of Developer Marketing at Stream · | 34 upvotes · 508.2K views
    atStreamStream
    Stream
    Stream
    Go
    Go
    JavaScript
    JavaScript
    ES6
    ES6
    Node.js
    Node.js
    Babel
    Babel
    Yarn
    Yarn
    Python
    Python
    #FrameworksFullStack
    #Languages

    Winds 2.0 is an open source Podcast/RSS reader developed by Stream with a core goal to enable a wide range of developers to contribute.

    We chose JavaScript because nearly every developer knows or can, at the very least, read JavaScript. With ES6 and Node.js v10.x.x, it’s become a very capable language. Async/Await is powerful and easy to use (Async/Await vs Promises). Babel allows us to experiment with next-generation JavaScript (features that are not in the official JavaScript spec yet). Yarn allows us to consistently install packages quickly (and is filled with tons of new tricks)

    We’re using JavaScript for everything – both front and backend. Most of our team is experienced with Go and Python, so Node was not an obvious choice for this app.

    Sure... there will be haters who refuse to acknowledge that there is anything remotely positive about JavaScript (there are even rants on Hacker News about Node.js); however, without writing completely in JavaScript, we would not have seen the results we did.

    #FrameworksFullStack #Languages

    See more
    Yshay Yaacobi
    Yshay Yaacobi
    Software Engineer · | 29 upvotes · 631.4K views
    atSolutoSoluto
    Docker Swarm
    Docker Swarm
    .NET
    .NET
    F#
    F#
    C#
    C#
    JavaScript
    JavaScript
    TypeScript
    TypeScript
    Go
    Go
    Visual Studio Code
    Visual Studio Code
    Kubernetes
    Kubernetes

    Our first experience with .NET core was when we developed our OSS feature management platform - Tweek (https://github.com/soluto/tweek). We wanted to create a solution that is able to run anywhere (super important for OSS), has excellent performance characteristics and can fit in a multi-container architecture. We decided to implement our rule engine processor in F# , our main service was implemented in C# and other components were built using JavaScript / TypeScript and Go.

    Visual Studio Code worked really well for us as well, it worked well with all our polyglot services and the .Net core integration had great cross-platform developer experience (to be fair, F# was a bit trickier) - actually, each of our team members used a different OS (Ubuntu, macos, windows). Our production deployment ran for a time on Docker Swarm until we've decided to adopt Kubernetes with almost seamless migration process.

    After our positive experience of running .Net core workloads in containers and developing Tweek's .Net services on non-windows machines, C# had gained back some of its popularity (originally lost to Node.js), and other teams have been using it for developing microservices, k8s sidecars (like https://github.com/Soluto/airbag), cli tools, serverless functions and other projects...

    See more