18 comments

[ 0.23 ms ] story [ 61.6 ms ] thread
This is a bit hyperbolic. I'm a big fan of Elixir and Phoenix, and most of my future client work is going to be done in Elixir if I have anything to say about it. But making broad, poorly supported statements about its comparison to other languages and platforms is neither necessary nor does it make the Elixir community seem rational. Cargo-culting has done a lot of damage to the credibility of platforms of various stripes in recent years, and one of the first signs of that is preposterous statements like "X obsoletes Y". Stick with "X is really good at <feature> and if you do A, B, or C you should check it out."
Hahahaha. This article is so cute. Node.js was the only tech to reach 10k connections on commodity hardware? Just want to pinch the kids cheeks. The stories they are being told... Ahhhh warms my little heart.
Your response says a lot about benchmarks -- namely that they are almost always bullshit. There are too many variables to isolate them all, and trivial benchmarks tell us nothing.
Agreed. One thing you have to give the Node.js team though is just how great their marketing have been. If they are to compete the marketing should have a heavy focus. Which is probably the reason for the hyperbole when I think about it...
This is pretty much a farrago of unsupported claims, but one thing I'd like to note (as a fan of all four languages) is that Elixir is still not as suitable as Ruby for scripting purposes.
Obviously overstated but not a completely untenuous position.

1. Since it is basically Erlang with a better syntax and a few superset features, then the contention is pretty much a given in this case.

2. The fact that it is something like 40x faster than Ruby and the syntax leans on Ruby a fair bit, it makes a good case here too, although I would argue there are a few bits of syntax that aren't so clean, and, being functional, it isn't as easy to program. (Prepare for a lengthy learning curve.)

3. As for Clojure, I think you'd be hard pressed to convince the brotherhood of lispers, but you might get away with calling it a push.

I know that Elixir isn't supposed to supersede Erlang, and Jose Valim had made it clear that he wanted to create a community that could also benefit Erlang users. For many, Elixir users won't have to even touch Erlang. But for some, this new language community is a great stepping stone for those who want an easier path into Erlang.

Making broad and dominating statements shaming other languages is truly not one of the community values.

As someone who has little experience with any of these, would love to hear some experienced folks give feedback on these claims.
The best way to find out if you like Elixir is to give it a try.

You could do a poll of every developer and still have a different experience yourself. Most designers of new-ish languages know that accessibility is crucial to adoption, so they make it easier than you might think.

I personally have used lots of dynamic and static languages, and I will never go back to dynamic typing if I can help it. It's just a disaster when the code base gets really large and/or mediocre developers are working on it. For teams, the stricter the language is, the better. That's why I'm really enjoying TypeScript for now and looking forward to using Rust in the future (both for backend web development).

I'm about to embark on some experiments with isomorphic TypeScript apps, and that might be pretty revolutionary (and postpone my Rust experiments) because it allows me to use one pretty great language for the whole stack.

Elixir is nice, it's a nice functional language that's built on top of a rock solid platform for building realtime and distributed systems. It's a relatively new language on the block though, so the ecosystem is a bit lacking. Both Node.js and the JVM ecosystem are battle tested platforms that allow you to build the same type of applications you'd use for Elixir. Both can handle 10k connections (of course many platforms can...). It seems like at this point to get the same level of tooling and libraries with Elixir you need to be comfortable with Erlang, or at least consuming it as a library.

Another competitor is Go. People are afraid of functional languages because they think they are difficult to grasp and Go wins here because it is dead simple. Some say too simple, but any developer can get up to speed with it pretty quickly. It also has a better concurrency store than Node and some of the JVM languages. It's concurrency story is not as good as Erlang or Elixir, but in reality, many business and problems don't need that.

I think the market is going to pick something other than Elixir. I think it's going to be Go for a large set of problems (for many reasons) but for many problems people are going to stick with Java or JavaScript because they are ubiquitous.

https://engineering.pinterest.com/blog/introducing-new-open-...

"So, we like Elixir and have seen some pretty big wins with it. The system that manages rate limits for both the Pinterest API and Ads API is built in Elixir. Its 50 percent response time is around 500 microseconds with a 90 percent response time of 800 microseconds. Yes, microseconds.

"We’ve also seen an improvement in code clarity. We’re converting our notifications system from Java to Elixir. The Java version used an Actor system and weighed in at around 10,000 lines of code. The new Elixir system has shrunk this to around 1000 lines. The Elixir based system is also faster and more consistent than the Java one and runs on half the number of servers."

These are pretty strong claims, I think.

Not true. Not only that the OO is not dead yet. But the main obstacle for Elixir is that there are just not enough stable libraries. You couldn't get the productivity you can easily get on Ruby or JS. That Elixir is something to watch, and it may have some clear user cases (specially where Erlang shines), I would agree... but no much else for now.
Elixir has 30 years of erlang libraries to lean on.
Are there any large websites using Elxir? Hmmm... I thought not
I know about Bleacher Report[1],the second biggest sport site in the world after ESPN, and Pinterest[2].

[1]https://vimeo.com/128349620

[2]https://engineering.pinterest.com/blog/introducing-new-open-...

Pinterest only uses Elixir for "Pinterest API and Ads API is built in Elixir", but it Pinterest itself is NOT built with Elixir...
If your criteria for evaluating a new technology is "one of the top 25 Internet domains uses it to power their main website," you're a pretty shitty technology evaluator, because the things you are evaluating TODAY should be the things that will be powering the sites of TOMORROW.

And Elixir DOES have a shot at that, in my experience with it.