6 ms·
Programming languages, being technologies, are subject to the Lindy effect (https://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effec
by ericdykstra 10y ago
Programming languages, being technologies, are subject to the Lindy effect (https://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effect).
This means that the younger a language is, the lower its life expectancy. This is why the neomania in JavaScript framework
land is so chaotic. Even if a better framework emerges and takes off in popularity over a few months, it's unlikely to last in
the mainstream for another year. When I'm choosing something to study programming-wise, I use
this heuristic as part of the decision-making process. For example, studying algorithms and data structures is more robust
than studying Vue.js or GraphQL, which are not likely to be around in a few years.
Elixir was just released 5 years ago, and despite some success, has not taken off as much as the absolute top programming languages released around that
time. For example, Go, released just 2 years earlier, is by far the most successful of new languages from the last 10 years.
Given my skeptical mindset towards neomania, it might surprise you to hear that I'm a huge proponent of Elixir!
Here are my reasons for studying Elixir and using it exclusively for my non-work projects, despite there being
countless other recent, appealing languages:
- Although the language is young, it's built on Erlang, which is 30 years old. Even if Elixir fails, there is a lot
of knowledge transfer between the two languages (probably 90% of what I learn from using Elixir transfers directly over
even if I switch to exclusively Erlang).
- Web applications are a fantastic use case for the Erlang VM (BEAM). Take a look at this article (https://joearms.github.io/2016/03/13/Managing-two-million-webservers.html https://joearms.github.io/2016/03/13/Managing-two-million-we...) by Joe Armstrong,
one of the creators of Erlang, written earlier this year.
- Elixir is quite a bit different from other languages I'm familiar with. It's compiled and functional, has powerful
pattern matching, uses lightweight processes and the actor model, and comes with OTP, a complete set of tools that I can use for free.
This means even if/when the language dies, I've added a lot of new skills to my programming toolbelt.
To anyone that has decided, like I have, that Elixir is worth putting some time into learning, I'd like to recommend the book Elixir in Action (https://www.manning.com/books/elixir-in-action https://www.manning.com/books/elixir-in-action)
and the blog of the author of that book, which has infrequent but outstanding posts (http://theerlangelist.com/ http://theerlangelist.com/).
- sjellis 10y ago> Programming languages, being technologies, are subject to the Lindy effect (https://en.wikipedia.org/wiki/Lindy_effect https://en.wikipedia.org/wiki/Lindy_effect). This means that the younger a language is, the lower its life expectancy. This is a really valuable point. My personal rule of thumb has been that every hardware or software technology takes 5 years to mature: it will useful long before then, but it take years for all the issues to be found and fixed and the ecosystem to fill out, so if you invest before the 5 years, expect less than perfection. Equally, if a technology does not seem to be maturing after 5 years in the field, it's probably not going to happen. My personal long-term bet is Rust. It is an incredibly well-run project with a superb community, it has use cases that few other languages can fill, and I think that it has potential beyond it's currently defined position as a "systems language" (if you can write business applications in Swift, why not Rust?). Even if I'm wrong, it fills the criteria of being a programming language that is changing how I think about programming, so it will be a valuable experience.
- biokoda 10y ago> Erlang has this sort of huge cognitive overload with it's syntax, making it take longer to learn, for no obvious benefits. Actually the adoption is quite good considering there is no industry giant backing it. There are plenty of companies using it in production and there is a job market for it. Comparing the adoption with Go/Swift is a bit unfair.
- pjmlp 10y agoPutting aside how the whole relationship with Ericsson allows to sell it to management.
- deleted 10y ago[deleted]
- brightball 10y agoThe thing that I'm finding is that Elixir and Go have a direct correlation in many many areas. The biggest impediment to Elixirs adoption has been Go and specifically Google. The Google name helped tremendously with Go adoption. What I'm finding is that every justifiable reason for using go outside of portable binaries...is that Elixir is the option I would have preferred or is simply a better fit. So much Go adoption came from concurrency needs of Ruby, Python and PHP Devs at a time when Elixir just wasn't ready yet. The staying power of Elixir despite not being backed by Google or first to market here gives me great confidence. If nothing else, Elixir is educating a lot of people about what makes Erlang so good...and once you understand Erlang/BEAM you see everything that's missing everywhere else. Without learning it, you've got an ignorance is bliss situation.