Elixir

Anyone here using elixir? I've been doing a bit with it for a few months and am wondering why its not more popular. Its literally the perfect language:
>fast as fuck
>compiles
>interpreted if you need it to be
>has macros
>powerful AST
>runs fucking anywhere erlang runs
>can build a distributed app in seconds using OTP
>functional
>nice syntax

Other urls found in this thread:

docs.paralleluniverse.co/quasar/
twitter.com/NSFWRedditGif

Cause Elang is still extremely misunderstood

I prefer OCaml/ReasonML to Erlang/Elixir.

Not hate, still love Erlang/Elixir. Elixir is farther along than ReasonML at this point (plus ReasonML has a soft spot for frontend web dev/app dev... that's... fine I guess).

Which is really damn sad. Its an amazing language and is literally perfect for the internet. Elixir makes it even more enjoyable

dynamic typed languages are dying

Because most people are fucking retarded, and can't understand FP.

Wasn't it slower than Java?
BTW is it good for desktop programming or only for servers?

I don't mind it half as much as the crappy Rust / Go maymays.

But in practice, what would I do with it?

The playground for new mind-tickling FP concepts tends to be on Haskell.
And if you want parallelism in production the JVM has magnitudes better frameworks.

Is it better than erlang?

>fast as fuck
no, only when compared with "we run on servers but don't need to be fast" python and ruby abominations
>nice syntax
personally found elixir's syntax inconsistent on few places and started to prefer erlang, dislike ruby-like syntax in general
the language does many tradeoffs for it's distributed reliable model

both erlang and elixir support typespecs notation

Elixir is awesome, but you need to correctly understand its strengths and weaknesses.
>fast as fuck
No. They have really fast nonblocking I/O, but otherwise Erlang/Elixir are as slow as Python and Ruby.
>compiles
>interpreted if you need it to be
Elixir compiles down to BEAM bytecode that is then interpreted. There is a native compiler called HIPE, but it isn't widely used because it's a bit of a pain and not much faster than the interpreter. Some people are working on JIT that will be fast if it ever sees the light of day. That's a big "if".
The JVM does lacks preemptively scheduled lightweight threads and the OTP. You can simulate lightweight threads with Quasar, but it involves bytecode manipulation and the result still isn't preemptive.

You will need to learn both to use Elixir at an advanced level, so you will be able to compare them. Elixir has an improved standard library, polymorphism via protocols and real macros.

>Wasn't it slower than Java?
Of course. Java is very fast.
>BTW is it good for desktop programming
It's not bad for desktop applications thanks to Erlang's solid WxWidgets bindings, but it's primarily for writing daemons.

it's slower than it's competitors

Tried it once, it's p comfy.

Didn't google cloud just announce elixir support?

Should I jump on this train now?

Probably. BEAM is one of most robust platforms for writing services.

>t. brainlet who doesn't understand typespecs

> Wasn't it slower than Java?
no

Yeah I would. It seems like real time bullshit is the future of the web, and thats one thing Elixir does very well compared to others, so could net some job security

No need for fake news, user.

When it comes to "is language X faster than language Y" you have to be very careful waht exatly you are measuring. Latency? Throughput?

Especially when we talk about Erlang which has it's strength in it's concurrency and reliability you should really consider things like Armdahl's law.

Java's threads and Erlangs processes work different. So if you run a somehow concurrent application you will have fundamentally differnt programs. At least if you really want similar properties.

Never heard about it but performance of a language doesnt matter
Its all about the libraries you can use

>>Java's threads and Erlangs processes work different.
docs.paralleluniverse.co/quasar/

Clearly it matters to some extent, especially the latency part of it.