Ask HN: What do you dislike about Elixir? - crypto-jeronimo
======
rubencaro
Too much noise around defstruct code for struct only modules. You are forced
to define the module, then the struct. It could be cleaner, just like Kotlin's
data classes, for example.

Pipe operator is too rigid. It should allow to pipe not only to the first
argument. I think F# does it.

It should support real named parameters, just like Python, or Kotlin. Not just
Keywords or Maps in disguise.

It should enforce specs for behaviours at compile time, not only function
names. It seems just right to enforce them if you are defining them into the
behaviour.

Dialyzer job should be done already by the compiler without any further
interaction from the user. If the user codes some specs (just like in
behaviours) it should be able to use them to improve checks, but none should
be needed.

It could have some simplified version of some OTPs routine patterns. I find
myself writing always the same start_link, the same init, etc., just to change
the same couple of words. There are some libraries that try to do it (exactor,
for example), but I think it should be done right by the Elixir core team.
Leading the way to cleaner and simpler Elixir code. In the same line than
recent changes to supervision children definition.

------
Or1on
The lack of jobs

------
digianarchist
Deployments and containerization.

