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.
[+] [-] rubencaro|7 years ago|reply
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|7 years ago|reply
[+] [-] digianarchist|7 years ago|reply