I tried a lot of programming language in my live, specially for backend stuff. I find that elixir provide me everything what I need for high distributed system even akka is a joke against otp.
My question, when companies will be realise, that elixir is a good choice to do backend stuff?
Of course, the answer on the question ‘when will Elixir be famous’ depends on some very personal definitions; most importantly what is meant by ‘famous’.
Fact is, Elixir is growing steadily:
- There are quite a few companies that already use Elixir in production.
- There are more than 2500 different Elixir packages available on Hex.pm as of writing.
- Elixir has a really nice, active and supporting comunity, both on IRC, Slack, this forum and several mailing lists and GitHub repositories.
- Elixir has a great Elixir Core team. There are nearly 2700 Pull Requests that have been reviewed, guided and merged by these wonderful people. Elixir is very stable, and very coherent.
So, those are some reasons why I believe that the time of widespread use for Elixir isn’t that far away anymore.
I’d say it’s already famous Now as far as adoption rates we need to define some benchmark figure of what would we consider to be a good result.
Elixir is already famous
However, if you’re asking when will it be mainstream? Then I reckon when it gets its first killer app.
Look what Twitter did for Rails. WhatsApp for Erlang… etc
I’d say OTP/BEAM accessible via a nice syntax is already a killer app.
It’s a killer feature for sure (I mean a top/well regarded public app. Something, for instance, that is in the top 10 most visited sites or something similar.)
When more people start building stuff using it I guess.
I work on a very small team (3 people) and we have the luxury of chosing whatever we want/need to work with.
Right now I’m trying to learn elixir so I can teach my workmates and spread the word locally
A language becoming famous is part luck and part marketing. I think Elixir has a good community for its age, has good developer experience and is well thought out, and it’s not “weird” like a Lisp or ML. The rest is luck—will a big company publicly announce they use it in production? Will startups blog about how it helped them scale and ship quicker? And lastly, will it get people’s interest?
Both Ruby and Rails took some years to blow up, so be patient.
We have been thinking about creating a social media / marketing group on the forum for those who want to throw around ideas and work on stuff (including keeping things active on social media like Twitter).
Maybe something like the Rails envy vids
I think that Elixir sooner or later will be more popular and simply- it will be chosen instead of Erlang. I hope that also Phoenix will gain popularity in Rails environment due to performance issues. I’m pretty sure that people will trully appreciate Elixir in next few years, when rush for performance will be more and more visible, but even though it won’t be appealing for many developers, which are narrow-minded and they will stick with Java or any other boring language with semicolons
Honestly Elixir needs to be type-safe, a compile-time, better than dialyzer scanner whole program analysis would be utterly perfect. Or a port of haskell to erlang (though a more familiar syntax for most people would definitely be better though I would like it…).
@OvermindDL1 I believe I’ve read (or I’ve been told) somewhere that there was an attempt, many years ago, to turn Erlang type-safe and for it to have static type checking. However, since Ericsson’s equipment runs with the dynamic Erlang we all know they eventually scrapped the project since it would take huge amounts of effort to migrate all their codebases.
Whole program analysis does not require breaking changes (unless it did not compile because there were known broken paths, which is a good thing to fix anyway).
However, making a new language on top of the beam could be type safe all the way down until it compiles to the beam itself. It would then be ‘safe’ internally except for when you call beam-native things (in which case type-safe wrappers should be made).
Something like https://github.com/j14159/mlfe would be a good start.
EDIT: /me loves strongly typed languages (though HKT’s are a necessity), catching things at compile-time is always better than run-time. But even Elixir would work if it added whole-program analysis (which admittedly would be basically re-creating dialyzer in the compiler, to examine everything included, ever).
I believe the main reason why making Erlang/Elixir type-safe is because it’s hard (but not impossible) to handle hot-code-swapping correctly. To make this possible, you’d need to write migration-functions that change data of the old version of the type to the new, similar to
code_change which already exists in OTP.
I don’t think Elixir will, or should be strongly typed. I do think that there is a niche out there to be filled by a strongly-typed (dependently typed?) functional, actor-model-based language.
I think there are two paths for language evolution:
- adding types to dynamic languages (Clojure Spec).
- making modern static languages more looks like dynamic i.e ELM --> my preferred
But what I think what make Elixir nice is how it’s elegant integrate with Erlang (opposite how ugly Clojure integrates to Java). Would it be still nice if we had some static language of top of Erlang?
The End of Dynamic Languages
Big time ditto.
And yeah, when I have to use Java I use Scala, it integrates cleanly both ways with java as well as Elixir does with Erlang. I’ve tried clojure, it bound very VERY badly in the back-end, so I have a bit of a hatred for it right now… >.>
By “famous” I"m assuming you mean widely-adopted. Given that Java and C# are both widely-adopted, I’m not sure that I ever want to see Elixir become “famous”. Java is so frozen by concerns about backwards compatibility that they can’t fix anything for fear of breaking working code. C# is rapidly starting to become a pale imitation of its ancestor C+±-that is trying to be all things to all developers.
I hope Elixir never goes down either of those roads.
Would I like to have a day job writing Elixir? Of course I would. But the funny thing is I can remember craving to have a day job writing C# once upon a time. The old saying about being careful what you wish for surely applies here. What is fun when it’s done on one’s own time and without a boss breathing down your neck can become something quite the opposite of fun when one gets the typical unrealistic deadlines and poorly defined requirements that most of us deal with on a daily basis. Not trying to be cynical–merely trying to be realistic.
C# is horrible for backend stuff. Functional is better then object oriented in my opinion no concern about side effects and state.
I think any generalisation is bound to be fairly flawed. Given that top 10 tech companies primarily use OOP and it did not deter them from becoming one of the top 10 is a good counterpoint. Also many big companies that adopted Scala are now phasing it out so one could as easily generalise that functional language suck for backend stuff which again would be flawed.