Created
December 11, 2023 16:25
-
-
Save bratsche/3ddd3680b77870b0f1e9e15a25dc8770 to your computer and use it in GitHub Desktop.
Notes for why I think Elixir is worth using
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
* 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