3 ms·
The big reason I won't use Elixir is there are similar and arguably better options on the JVM. The whole Server B column in the article can easily be replaced w
by agentgt 10y ago
The big reason I won't use Elixir is there are similar and arguably better options on the JVM. The whole Server B column in the article can easily be replaced with JVM instead of Erlang.
For example you could use JRuby and Akka and probably have something comparable to Elixir (I haven't tried it as I prefer Java and Scala). And you could then use any Scala or Java library.
The only big issue I have with the JVM is that it is a memory hog and thus expensive.
Consequently the most compelling thing about Elixir is that is on the erlang vm but I still prefer static typed languages. If Elixir were typed I might be more excited about it.
Don't get me wrong I love more options and we even use Erlang in my company but the JVM just has more flexibility.
- rad_gruchalski 10y agoI have written apps in both Scala Akka and Erlang / Elixir. You can't directly compare JRuby + Akka vs Elixir. The former is just an insane stack. Akka is plain ugly in Java and gets you nowhere near the simplicity of Elixir / Erlang. Elixir isn't emulating Ruby, the syntax is based on Ruby. That's it. I also do not find Akka as pleasant to work with as Erlang / Elixir. Regarding the types on BEAM, there are types: maps, records, binaries, atoms, numbers, booleans... there's no classes but one does not need classes. Actors replace objects perfectly fine.
- agentgt 10y agoI agree that Akka is ugly (my company doesn't even use it) and I totally agree that you don't need classes (and you don't really have to in Scala and Clojure... even in Java you can just uses classes as though they were structs). I only mention JRuby as many folks switching from Elixir are Ruby shops. Personally I find the actor model too heavy (programming wise) for local concurrency and rather use some other message passing for distributed programming (zeromq, rabbitmq, kafka, etc). I know people hate damn queues and reactive programming but that is what I know (and I admit it is less efficient and more error prone than builtin green threads (go) or actors). I realize now Elixir makes it damn easy because it is all in one package it is just a shame that there isn't some ML like language that compiles to Erlang bytecode.
- ramchip 10y ago> it is just a shame that there isn't some ML like language that compiles to Erlang bytecode. There is! https://github.com/alpaca-lang/alpaca https://github.com/alpaca-lang/alpaca It's very new, though. I wouldn't write production stuff in it just yet.