5 ms·
Very relevant to this: How to sell Elixir - a talk from today's ElixirLondon https://speakerdeck.com/evadne/how-to-sell-elixir https://speakerdeck.com/evadne/ho
by MartinMond 9y ago
Very relevant to this: How to sell Elixir - a talk from today's ElixirLondon https://speakerdeck.com/evadne/how-to-sell-elixir https://speakerdeck.com/evadne/how-to-sell-elixir
- pjmlp 9y agoSomehow I get the feeling Elixir is the new Ruby, every time I go through such presentations. Basically it looks like the escape route for Ruby developers that care about performance.
- tony612 9y agoIt's actually Erlang with Ruby-like syntax.
- jmcgough 9y agoElixir really isn't just Ruby with better performance. The two look syntactically similar (and have some similar tooling, from rubyists who've moved over to elixir), but that's about where their similarities end. Ruby really isn't designed for building complex concurrent systems. Erlang/OTP is designed specifically for that. When I need to build something that recovers from failures in Rails, it means code that is littered with try/catch statements. I recently wrote a basic caching system in Elixir for a project at work. There are plenty of ways for it to fail, and I handle none of those situations. I let it crash, bring it down gracefully, and then bring it back up in a healthy state. You can write truly fault-tolerant programs on top of a very powerful and stable VM.
- pjmlp 9y agoAs someone working across JVM, .NET, C++, Android and iOS, I don't have any use case for Elixir. If I ever would need BEAM, Erlang would be quite ok, given that I was quite comfortable with Prolog in the past and do like the syntax. Hence why I kind of see it as BEAM for Ruby developers, even if I am way off what is actually happening on the BEAM world.
- Southy 9y ago100% This. The use cases for OTP are actually quite narrow, despite what Erlang/Elixir evangelists tell you. Discord is a fantastic use for OTP. Writing a CRUD app with a couple of reactive/interactive pages for comments on videos and few thousand users, OTP is overkill. If you have an app that needs the scale and safety of OTP, then which language you pick makes no difference. Phoenix is a really cool project, written by great developers and the community is probably the nicest and most helpful you will ever meet. But how many companies/projects need the performance and redundancy of Phoenix/OTP in their web application at the cost of not being able to hire developers?
- hesarenu 9y agoElixir is very easy to learn. I suppose at the end of day you would be spending more time designing your architecture rather then language.
- Southy 9y agoI disagree that Elixir is easy to learn, the syntax ok, it's weird compared to most OO languages, but actually using OTP is a real paradigm shift that requires a totally different way of thinking about issues. I did not find that easy at all. The other issue is that Elixir and Phoenix have become joined at the hip in the same was as Ruby and Rails, and Phoenix didn't click with me at all, coming from the JVM world I really didn't get on with it. After reading Programming Elixir, Elixir in Action and Programming Phoenix I decided that it wasn't an easy way to make web applications that don't need OTP, and in fact I couldn't imagine a scenario where any web application I would ever write would need OTP (for the whole thing anyway, I can imagine cases where small parts of a larger system could benefit massively from fail fast architecture) Edit: I would also argue that designing an OTP based system architecture is harder than just writing a non distributed system and then adding in load balancing or fail over.
- anko 9y agoI don't think it's easy to learn either. The basics are easy, and the syntax is easy, and writing some code that does what you want in the repl is easy. But then you try to make a real application and you have more questions than answers. But, you can do OTP without making it distributed. Elixir is awesome in that you have this actor based system (genserver) where the syntax gets out of the way more than in any other language i'm familar with. So the business logic running on these genservers is really easy to understand. And there is nothing stopping you putting them behind message queues or load balancers. Most of the time, that's probably appropriate.
- Stratoscope 9y agoBack in the days of OnLive, there were several Ruby developers on the team. When Matz was in town, he stopped by to give us an informal talk and question and answer session. I asked him, "One thing I like to do as a programmer is learn a new language every year or so, especially a language that teaches me something new about programming. Ruby was very good for this, of course, along with some of the other languages I've learned. Is there a language you've tried out lately that gives you that feeling of learning a new way to program?" Matz said, "Elixir". He explained why; I don't remember the details but it stuck in my mind as a language to check out. BTW, if you've ever seen the acronym MINSWAN, or "Matz Is Nice So We Are Nice", it's really true! A very nice guy. https://www.flickr.com/photos/geary/10218307085/in/photostream/lightbox/ https://www.flickr.com/photos/geary/10218307085/in/photostre...
- amorphid 9y agoI'm amused that Elixir feels like the best language I've ever used, and yet I can't tell you why. I love (most) everything about it. It's kind of like trying to say you should meet my best friend Bob; no matter how much I tell you about Bob, you'd still have to meet him yourself to form your own opinion.
- _asummers 9y agoBecause the design choices are subtle and lead you to excellent designs. Bad code in this language looks bad and feels bad to write, to me.