What is your opinion on elixir language, why don't more developers use it?
why I am asking this
https://www.youtube.com/watch?v=N4Duii6Yog0
Thanks in advance for all the participants to this discussion
What is your opinion on elixir language, why don't more developers use it?
why I am asking this
https://www.youtube.com/watch?v=N4Duii6Yog0
Thanks in advance for all the participants to this discussion
For further actions, you may consider blocking this person and/or reporting abuse
I absolutely love Elixir. It was my first introduction into the world of functional programming and now I miss pipes when I use other languages.
The main downsides for me are:
Currently I'm running it in production on one site (Snipline which uses Phoenix as the backend API) but I have a bunch of side projects that I use it with.
I'll also give a shout out to alchemist.camp, Elixir for Programmers and all the pragprog books for anyone interested in learning Elixir - you won't regret it!
Not impressed by praprog books when I have to deal with all the errata(mistakes that make the code not work) instead of learning. Even though they tried to cover a lot, the errors just break the experience.
The rest of the sites I agree.
Also, absinthe looks very powerful and clean so far from what I experienced.
I'm not sure about the other PragProg books, but having just written Real-Time Phoenix, I'm confident in the accuracy of the information.
In general, I've found them to be high quality. If the books are dated because of library changes, that just comes with the territory.
I am not referring to your book @stephenbussey, I am referring to programming phoenix 1.4 errata and also to the way The Pragmatic Programmer, in general point of view on learning.
As someone new to the language, the first step is to share code and create your own style but for that you need a template, so restricting what you learn from the books makes this impossible.
You can only use the code in your own projects but can't blog about it or create courses with it. This really sounds odd and doesn't help anyone that really wants to learn.
When you write something you also gain a better understanding of what you learn, it is the natural way to develop your skills.
This is my honest opinion.
I also respect the authors from the Elixir community and consider that they have very useful knowledge to share, but this limitation really is making it hard to do something with that knowledge.
Unfortunately I find this to be a downside of programming books in general, not specific to pragprog. Many authors don't update their books at all making language updates a real pain to work through. Although many pragprog books are outdated now, from what I've seen most of the Elixir ones are relatively up to date.
I've not had the pleasure of trying it yet, but it does look good. Nerves is another great looking library if you're interested in embedded software.
Elixir has a large ecosystem but unfortunately, it lacks documentation and a lot of up to date tutorials plus libraries or guides on certain things(ex: payment gateway options are limited)
github.com/aviabird/gringotts
Thanks @oshanwisumperuma, unfortunately, it has no documentation for absinthe.
If you look at rails and python they have a lot of options.
Also, a library becomes valid once it has documentation and examples, that is my opinion.
I'm learning Elixir and already love documentation is easily generated and even tests can be run out of docs!
Main reason probably is it's functional. More developers are opening up to that in recent years, I think - as an increasing number of people realize that many of the patterns and practices that make mainstream languages work well at scale, in effect, leverage the functional features of those languages, and patterns that avoid or work around issues not found in functional languages. But there's a long way to go before any functional languages really goes mainstream, I think.
I think one reason developers don't jump all over this particular language is the syntax - it doesn't look like modern, mainstream languages and it's a bit heavy on both punctuation and keywords.
Another reason I'm not personally interested in this language is the lack of static types. For example, Elm is more interesting to me, providing a type system that is so strong that run-time errors don't actually exist. That's a significant quality that sets it apart from the mainstream languages.Folks can already do functional programming in most mainstream languages, so a purely functional language needs to do something new or different to motivate them to try it.
Have a look at Grain - a functional language with a clean, modern syntax that might feel more familiar to people coming from mainstream languages like JS or C#. It's very new, but promising, and has that Elm-style, run-time error-free strictness that I personally find very enticing. 🙂
agree with this. I would love elixir if it was a typed language, its dead easy to do a mistake even when you changing the state of a GenServer and its not super easy to spot them without going line by line
Chicken-and-egg problem? Not many jobs, so not many people learn it, so companies don't use it because there aren't many devs who know it, so not many jobs. And (I think) the use cases where Elixir really shines are probably somewhat niche.
Some companies are using it for various reasons. It can even run on IoT devices with Nerves. Really what is missing is people talking about it, to make projects and tell about it on blogs. It needs popular bloggers to talk about it.
I think it needs more documentation and implication and releasing full examples of where it shines on youtube.
It could become the next big thing if everybody would share more.
Bigger community, more Q&A on Stackoverflow, absolutely ... and a clear trend in the market from OO toward FP would help (which isn't there, yet).
Coming from a Ruby and Rails background, Elixir , in that community, has been considered the next best / hot thing for a while. I taught myself some basic Elixir and tinkered around with the Phoenix framework ( which uses Elixir ) and went to a few Elixir meetups in Denver.
The market niche for Elixir is that if you get really good at it, you could be able to help some teams transition from Rails onto an Elixir based stack for their back ends. This promise, however, applies only to a very small segment of the market. Many Rails shops have decided to just keep doing Rails.
I found working with Elixir to be pure joy. Not necessary as intuitive as Ruby. You certainly have to be a functional programming purist to fully appreciate the language; things that would be achieved with a simple loop in an OOP language require a totally different way of thinking.
I too LOVE the pipes. It feels elegant and clear. The main thing with Elixir for me was that it was going to force me deep into a niche that I wasn't sure I wanted to invest THAT much time into. It will never, IMO, be widely used in the dev world due to how different it is to the standard array of OOP languages. Therein lies the appeal for some people.
Phoenix and Ecto ..... I found them to be nice but nowhere near as polished and smooth of an experience as the Ruby on Rails stack. Lots of things you have to do manually that are very quick and easy with Rails.
I will always keep it in the back of my mind as something to come back to if the time comes.
As an old Ruby dev myself, I wanna say you are on point. But with the Phoenix framework and rails, I disagree a bit. They use two very different approaches, were Rails contains a lot more "magic" and to figure out what's actually going on could take some time.
Phoenix is very explicit, with very little magic, as intended, to make it more clear for the developers. The upside is a better understanding on what's going on, the downside is as you say, a little bit more work for the dev.
Interesting view, thanks for sharing how others feel about it and why it hasn't made it's mark yet.
I worked with Python, PHP, JavaScript and some others languages (nothing to edgy, just "normal" applications) and I find Elixir one of the best languages to use on daily bases.
The syntax is so darn clean and the features of the language help so much to reduce code complexity and improve code readability that is insane!
I really miss some of theses functionalities, like
pipelines
,with
s and mostlypattern matching
, when working with other languages.Maybe the lack of use is because Elixir is kind a recent language (it's out there since 2012) compared to others and is quite different and challenging to learn.
And, as a Brazilian 🇧🇷, I have to mention that is pretty cool to see such a amazing language be created by a compatriot, there is not a lot of things to be proud of in here...
Any way, I wrote this post: Learning Elixir with PHP help my focus was to make the transition from OOP languages to functional programming a bit easier.
Hope you like!
It's one of the most interesting programming languages. The BEAM, OTP and Elixir's abstractions are out of this world! Distributed computing, hot updates with state transfer, messaging, pipelines, links, supervisors, pattern matching, everything is mindblowing! The obvious downside is that it's hard to recruit and onboard developers. Like with every other programming language, simply using Elixir does not result in excellent systems.
What I dislike the most is actually the Ruby-like syntax. I would prefer the original Erlang syntax if it was a little better.
Nothing. It's great.
But, it's HD-DVD or BetaMax.
JS preprocessors were a dropping like rain drops when it started making news.
We can make it to be adopted if we(developers) release more and talk more about it.
It's not a big enough deal for me. Devs don't need want to change unless the benefits are many and make a real difference. I just don't really use it too much. Any time savee, in my case, would be eclipsed by the time spent rallying for it.
You are aware that writing and creating tutorials will make you a better developer and progress more quickly?
100% agree. It would be like me writing a 'How to speak Spanish" tutorial. I took a few semesters in college, but I don't use it enough in my day to day life to retain it.
I'm out of that circle. That being said, it devalues my opinion on this particular subject.
I think you need to convince some of those guys to switch if you are looking for evangelists.
I am not looking for evangelists. I am looking for people that understand what elixir is really bringing to the table and can compare it with what they actually use.
Personally I don't care what language, I use as long as it gets the job done well:
speed
security
low costs for hosting
maintenance
so on...
And what do you think of the crystal language?
I haven't tried it yet, but I heard that it is
C
for the web.If you like to share more why you like it and what advantages it has over rust and elixir.. so on.
Then we can create a thread and discuss about it.
Thanks @rafaelfSilveira for the question
You think JS preprocessors and Elixir are competing for the same user? :D
No. I know Mix does a lot of different functions. The most important point I was trying to make is that I don't think about them, which is why I'm not joining the ranks.
Some readers of this thread may want to see some action(show me the code) no just words, so it happens I have a series on Elixir, Phoenix and Absinthe(Graphql) here
dev.to/wolfiton/absinthe-journey-w...
I really like how it looks and had fun playing around with toy examples. However, not many companies are looking for seasoned professionals with only minimal experience because it's not good value for money, all the worse when it's a relatively niche piece of tech imho.
I think that companies like to stay in the comfort zone and not, adventure(try) in new Stacks(technology).
Maybe that is why this cycle has been created.
One year "in" I like it so far! What I like the most is the fact that Elixir/Phoenix simply "fits" the modern soft-real time web. I like the preemptiveness and what it means to handling requests.
As for writing Elixir, some things can certainly be easier in Ruby, some are the opposites. Just trade-offs. As for Phoenix vs Rails, I really like its design, but I prefer Rails batteries-included philosophy.
I already wrote a bunch of articles on Elixir if anybody is interested: nts.strzibny.name/tag/elixir/.
Nice articles, thanks for sharing @josefstrzibny
Also, you might be interested in my absinthe series here absinthe series
I think the functional approach is a bit scary for many developers, and to be honest, for what most developers build on a daily basis (small to medium-sized bloggish/cms sites) there is no reason for them to abandon their favorite stack.
I was thrown into Elixir because of demand, we had requirements that fit the language and it's stack perfectly, speed, distributed and soft real-time solutions.
Learning Elixir was a bi**ch for me. And I think a part of the problem lies in here. You don't learn Elixir as much as you unlearn or unwire your brain from everything you already know. It is so different.
But once you know your way around the language, you never wanna build stuff with other technologies. It's brilliant and thanks to Elixir I'm also learning Rust, Elixir and Rust work very well together.
I also think Elixir will have a bright future, but it will probably always be a bit niche, where certain industries will adopt the language, while it will be very Alien for the average web developer.
Thanks for sharing your opinion @arthurvincentsimon
For the same reason that for example Nim isn't more popular. Scala and Rust, although they have reached a certain degree of popularity, are two more languages which according to their awesomeness should be way more popular.
That's the three-way chicken and egg problem.
Thanks for sharing @pofi your opinion and view of what it needs to change so that other languages with potential, can enter the market.
it seems very interesting, but i haven't really even scratched the surface.
programming elixir 1.6 seems like a pretty good book so far (about half way through).
learning it isn't any harder than learning oop after learning imperative programming.
not sure what exactly i would use it for ... pretty much anything i guess : )
the concurrency is probably the most promising part?
how would something like small talk fit into that MIT v New Jersey paradigm?
The competition was never fiercer. There are so many languages to choose from in 2021 it makes sense Elixir is having a hard time getting adoption.
Let me return the question - why should devs choose Elixir over so many great options? .net, java, php, golang, ruby, node, kotlin and on and on...
A new language that wants to disrupt the backend/web market has a harder time than ever.