Skip to content
loading...
Discussion
markdown guide
 

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.

  • Good syntax (just my opinion)
  • The API is pretty stable now and I believe the core language is pretty much complete. Because of, upgrading is fairly easy.
  • Community is friendly and inclusive.
  • Scales well and a great fit for real time web.
  • The main ecosystem (Phoenix, Ecto, etc) are excellent.
  • Great macros support.

The main downsides for me are:

  • There aren't as many third party libraries compared to PHP/Ruby, so development tends to take longer.
  • Deployment is better than before, but not as simple as PHP.
  • No static types.

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.

Humans are not: copy and paste machines.

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.

 

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.

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.

Also, absinthe looks very powerful and clean so far from what I experienced.

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)

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!

 

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, withs and mostly pattern 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.

 

The main reason elixir is not so adopted yet... Programmers bubble, or even worse, the comfy zone.

Ask any programmer with more than 5 years of exp in any language to switch to Elixir or even to any other language... Mentality makes everything.
IMO Elixir is the best thing happened until now for me.
BTW Cobol is dying because programmers stopped learning it, so...it's all upon us programmers to lead the market, not the other way around.
edition.cnn.com/2020/04/08/busines...

 

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.

 

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

 

Why don't more developers use it?

  • It is fairly a new language
  • It uses functional programming which the majority of programmers don't use. Most people learned the object-oriented model
  • Not that much jobs as far as I can see. Needs to get to critical mass.
 

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.

  • popularity among devs
  • jobs
  • ecosystem / libraries

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.

 

I believe that Elixir is too late to the party and doesn't really bring that much of an improvement to risk the switch.

Pretty much another case of Worse is better.

 

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?

Classic DEV Post from Aug 4 '19

You're not worth hiring unless...

wolfiton profile image
I am a certified trainer that likes to share my knowledge with the world. Also, I am an adopter of continuous learning and evolving idea. https://dev.to/wolfiton/who-am-i-3lj7