Skip to content

Instantly share code, notes, and snippets.

@bratsche
Created December 11, 2023 16:25
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bratsche/3ddd3680b77870b0f1e9e15a25dc8770 to your computer and use it in GitHub Desktop.
Save bratsche/3ddd3680b77870b0f1e9e15a25dc8770 to your computer and use it in GitHub Desktop.
Notes for why I think Elixir is worth using
Notes on why I think Elixir is worth using for us
* Phoenix Channels - able to support 2 million concurrent clients on a single server.
* Node.js has an equivalent feature called SocketIO
* Ruby on Rails has an equivalent feature called ActionCable
* Not aware of any similar feature in Python
* Concurrency
* Ruby, restricted by a GIL
* Python, restricted by a GIL, but there is a proposal to remove it. Not sure how long it will take to remove it.
* Node.js, single-threaded async
* Popularity
* StackOverflow most loved vs. most dreaded languages of 2022
* https://survey.stackoverflow.co/2022/#most-loved-dreaded-and-wanted-webframe-love-dread
* Elixir ranked #2 (behind Rust)
* Python ranked #6
* Ruby ranked #24
* Javascript ranked #15
* Web frameworks ranked on the same survey:
* Phoenix #1
* Django #16
* Ruby on Rails #14
* Other things ranked highly in that survey
* Huggingface Transformers #1
* PyTorch #4
* Scikit-Learn #8
* Numpy #9
* Pandas #10
* Keras #11
* Notice these are all Python libraries. Clearly Python is loved in the AI/machine learning field.
* Candidate pools
* We can find C# or Python developers all day long. Finding good ones is the difficult part.
* There are also tons of recent bootcamp grads for languages like C#/Java/JS/Python/Ruby. We know we can filter out these kinds of candidates, but the point is we don’t even have to worry about that with Elixir people.
* Paul Graham wrote “The Python Paradox” in 2004 http://www.paulgraham.com/pypar.html
* It talks about how good developers self-select into better languages. In 2004 Java was the dominant language and Python was the newer thing.
* At the time, Java developers were easy to find and Python developers seemed harder to find.
* Good developers are good developers. We don’t necessarily need to hire “Elixir developers”, we need to hire *good developers*.
* Efficiency
* Pinterest switched part of their system from Python to Elixir. This allowed them to go from 200 servers to 4 servers (it could have been 2 servers, but they chose to keep 4 servers for extra redundancy reasons). It also saved them $2m a year in server costs.
* Bleacher Report switched from Ruby on Rails to Elixir. They reduced app servers from 150 to 8 or 5 (reading conflicting reports on this number).
* In good company. Some successful places using Elixir now:
* Discord
* WhatsApp (started on Erlang, switched to Elixir)
* WeChat (using Erlang, not Elixir)
* Adobe
* Pinterest
* Square Enix
* PepsiCo
* Bleacher Report
* Sketch
* Apple
* Riot Games (using Erlang)
* Klarna (using Erlang)
* Financial Times
* Postmates
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment