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?
Thanks
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ā.
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.
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).
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).
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.
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?
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.
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.