Previous post in the series can be found here.
Back to potion-mixing business then. I've decided to go for functional chemistry, but should you? Should your pals? Should everybody around because it's presumable The Next Big Thing?
Alchemy for the masses
Let's make it clear - keeping in mind what Elixir is & what awesomeness it offers (pure functional paradigm, robust concurrency model suited for great scalability, resilient error-handling, code hot-swapping, etc.):
- At least 95% of programmers don't really need anything Elixir uniquely offers to create good products & get enough money for the living.
- At least 99% of solutions we make (& get cash for) won't never-ever need to be web-scale, massively-distributed, etc.
- Not less than 99% of devs would cry & flee in panic after seeing the tooling they'd have to work with while coding in Elixir :) You know, debugging with IEx.pry could kill an unsuspecting citizen :)
It's not the end just yet.
"I'd like to add you to my professional network ..."
You just WON'T find tons of job offers for Elixir / Erlang programmers in your town. Neither today, nor tomorrow. Majority of companies go for the safest option - most popular languages / platforms to make sure that they won't have many difficulties with finding new 'resources' (yes, people like you).
The other factors important for employers are:
- skill uniformity - if the majority of code is in Java, they'll go for Java, needless to clarify why
- simplicity - low entry level & gentle learning curve is the way to go; it's much easier to outsource the maintenance to external company or just get few students on-board ;P
- pragmatism - let's be honest: technical excellence (true excellence!) is too expensive (by far); in 99% of case it's better to go for more crude technology & compensate its flows with more manpower (more code) or more digital horsepower (more expensive hardware)
Refugees in the digital world
The only people who may feel urge to move to Elixir are ... ekhm, no-one? Why?
Java people move from Java to Scala, because Scala doesn't have much of its own identity (some say - it's not idiomatic) and it's very easy to write in Scala 'the Java way', while getting rid of some Java's flaws. So, natural candidates for moving to Elixir are Erlang & Ruby people (as you can remember, Elixir is a kind of mix of those two).
But ... this "Scala<->Java effect" doesn't apply to Erlang people - they have the least to get. The same platform with the same capabilities, just different syntax that may appeal to some, but not to everyone. Anyway, even if all Erlangers move to Elixir, what kind of difference is that (in terms of overall popularity gain) when you compare their number with the overall population of developers?
Ruby is a different kind of story -> it's much more popular (some even call it - The PHP Reloaded), fit for a particular purpose & yes, it clearly has some very clear limitations that are very likely to be solved with Elixir (& BEAM). But honestly, how many of Ruby programmers truly suffer from performance or concurrency issues to a degree that would justify giving up all the Ruby tooling / knowledge base ? Check here to learn the difference ...
In the end, what about people who come from other platforms, who'd just like to switch to idiomatic, truly functional language? The idiomatic part is what actually pushes people back - just check what is happening to Clojure after the initial popularity boom ...
I do what I want
Fortunately, it doesn't mean Elixir is doomed & Elixir programmers are about to starve :) Every tool is fit for the purpose & even if 99% of applications are all good w/o what Elixir offers, there's still this 1-bloody-percent of extremely exciting stuff that needs dum-dum ammo to deal with spikes of popularity, world-wide virality & webscale interest.
Stuff that will power the most popular services in the world (even if no-one will know their names, as they will be running 'low-profile' in the back-end systems), stuff that will enable real-deal world-changing endeavors like IoT or massively distributed ledgers.
So if you're not afraid of being a part of a niche, if it doesn't scare the shit out of you that your employer may be from Silicon Valley, you may never see your team-mates in person & your end-users could be all around you each time you walk the street - Elixir MAY be for you.
To be continued (soon).
Pic: © Michal Ludwiczak - Fotolia.com