1. 29
    1. 19

      My favorite part about Elixir is that it doesn’t try to reinvent the wheel. It’s not an untested, trendy new paradigm or tool. It’s based on decades of Erlang/BEAM/OTP experience and Ruby/Rails/last 10~ years of programming ergonomics. The only things that are added are those that actually add to the experience.

      An example: A large part of the Erlang standard library is not translated in Elixir. Instead, you call Erlang methods with a seamless interop. José & co. understand that there’s no need to reinvent the wheel and no benefit in another abstraction. I like that.

      My least favorite part about Elixir is that it has become a “trendy” language among the web crowd. While the community is overall great, there’s always a loud minority of “beginner experts” both claiming it’s the best thing ever and deriding those for using other tools. I’ve seen a lot of random, unwarranted Rails bashing and Elixir shilling (never from a team member or community leader though!).

      1. 7

        As a long time Erlang user, one of the things that’s subtly nice about Elixir is that they fix some of Erlang’s warts. It’s not just the syntax. The string handling is better, for instance.

      2. 4

        My least favorite part about Elixir is that it has become a “trendy” language among the web crowd.

        Yup agreed, Rails bashing will not get the community anywhere. But becoming popular is not solely a negative thing - for a start, more jobs working with the language have started appearing at long last. It cannot be a successful language without a market for it and it’s very well placed now to take a large percentage of that web market.

        1. 4

          That’s a fair point. I’m not opposed to Elixir “marketing”, I just want it to be respectful of other developers and based on facts, not hype.

          1. 1

            Absolutely, any community that goes a step further and actively shuns that behaviour is one I want to be a part of.

    2. 4

      There’s some great stuff in here, both bigger features and creature comforts. A few of my favorites:

      • Task.async_stream provides a simple “only do N of these tasks at a time” abstraction
      • mix.exsapplications becoming a no-op is great, irons out a bunch of headaches (and exrm bugs…)
      • IO.inspect gets a :label option, which will help a lot when sprinkling it in pipelines
      • Registry provides a server-local process registry with almost no setup out of the box.
      • Struct auto-completion in IEx. Oh thank god