Picking a programming language (for 2020)
Joseph Lozano
Posted on August 10, 2020
spoiler alert: It's Elixir
Why I choose to program in Elixir
First, the negatives
Drawbacks
Elixir isn't a perfect language by any means. Here are some drawbacks of the language:
- The static type checker (aka dialyzer) error messages are difficult to understand
- The actor model and OTP don't have the best APIs, and they can be difficult to grasp at first
- The tooling around the language (such as third-party libraries) is not as complete as say, Ruby, Python, or Java. (This is improving, however)
Positives
It's familiar
I have been programming in Elixir as a hobbyist since 2016, and professionally for a year and a half.
I know it better than I know any other language.
This means that I will more likely be most productive with Elixir compared to other languages.
It's simple
The Elixir language is simple and straight-forward. The build tools just work (I have spent entirely too much time trying to get IntelliJ to use the right JVM for Java projects)
Mix is really cool, testing (including DocTests) are built-in as a language feature.
Phoenix itself is readily familiar to anyone who has built MVC applications.
It's feature rich
Phoenix LiveView is a serious game changer for writing real-time apps with minimal JavaScript.
Seriously, if you haven't check out the 15 minute Twitter clone demo that Chris McCord does.
Phoenix gives you a lot of features out of the box.
It's powerful
Elixir has been used by several organizations to increase traffic. (See Discord, BleacherReport, and others)
Are my app going to have that much traffic? Well, not yet (and probably never), but a lot of this you get for free with the way Elixir concurrency and the Phoenix Framework work.
For all these reasons, Elixir is my language of choice for side projects and random hacking.
Posted on August 10, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.