25
24 Comments

Any Elixir Programmers?

Is anyone here programming in Elixir? Whats your experience like so far?

  1. 9

    I used it for my last starup and loved it so much that I've now made dozens of free, long-form screencasts teaching the language.

    It's not for everyone, but it's fantastic if you're a talented indiehacker or small team building a web app. It's nearly as productive as Rails, more performant than Node, more stable than Java and due to its pure functional nature, easier to debug or test than any of the three.

    1. 2

      Love your screencasts! I found your deployment series incredibly useful.

  2. 4

    I started using elixir a little over 2 years ago now. I love it! I have a few apps in production now. I recently started building an app for a startup idea I’ve had and have felt quite productive using it.

    The biggest challenge for me was deployment, but do it once and you’re pretty much set.

    1. 1

      What challanges did you have during deployment?

      1. 1

        Well, I decided to use digital ocean instead of heroku. I had only ever used heroku before so I was used to running a simple command to deploy.

        I ended up having to figure out how to use distillery and edeliver. So for me, it was just a matter of being unfamiliar.

        I found these videos super helpful: https://www.youtube.com/playlist?list=PLFhQVxlaKQEkGLiao2PQ-KcuyY0Kj37LI

  3. 2

    I've used it exclusively on new projects for over a year now. And have a number in production. I livestream for about an hour a day weekdays at https://twitch.tv/shawnonthenet and I've been getting a lot of viewers just curious about the language and/or saying they want to try it so I think it's arc will continue up.

    It's a great language and a fantastic ecosystem. Very supportive core and community, a long history of Erlang work to build on.

    1. 2

      I really like how your livestream focuses (at least what I've seen) on shipping a new projects. One MVP a week is a really impressive pace!

      1. 2

        Thanks, one a week will just be for April, it has been a crazy month with the challenge.

        After April I'm planning to pick 1 feature addition/ improvement/ or refactor and 1 marketing/growth task a week for each of our products and focus 1 live stream a week on those so I can hopefully show the growth of the products not just the building of them.

        Going to be a bit of a balancing act though since from what I've seen in chat the viewers lean towards interest in the language side of the stream more than the product side but I could be surprised.

  4. 1

    Elixir is fun! I do most things in Ruby as I have a huge amount of experience there and enjoy being productive, but I also wrote a few packages for the Elixir ecosystem (bugsnag-elixir, plugsnag, canada) and it's cool to see them being used by some pretty big companies out there. It's definitely a very fun language.

  5. 1

    I've been writing my marketplace app Forté in Elixir and it's been absolutely fantastic. I have about a decade of web development experience and switching to Elixir from PHP and node was no problem at all. The language features are powerful and well thought out.

    The performance in general is amazing and the reliability is like nothing I've ever worked with. It's fundamentally very, very resilient because it's built on about 30 years of Erlang (and erlangs OTP framework), which was designed for and used heavily by telecommunications networks. Many of which required extremely efficient and reliable processing across many nodes, which is one of the main problems we are faced with as web developers today.

    It's also built for concurrency, which is already incredibly valuable, and quickly becoming more valuable as single core architecture improvements slow down. We've had multicore processors for a long time now, but our applications have often made poor use of them. The inherent benefits of functional programming and immutability means you the developer can much, much more easily take advantage of as many cores as are available.

    Mostly though it's just very easy and straight forward to write good applications with, and the Phoenix framework is easily on par with laravel (which I have a lot of experience with), and I suspect rails as well, since elixirs creator was a part of the rails (or was it ruby?) core team. Maybe less magic "done for you features" but not a lot less. And the incredible channels, presence, and ecosystem festures all make up for any imagined shortcomings in my mind.

  6. 1

    I'm new to Elixir, and a friend and I recently created this (with Elixir as the backend): https://www.sitehiker.com

    No way to make money from it, but I'm hoping to use Elixir for more serious projects down the road. It was a joy to work with!

  7. 1

    I'm currently using elixir for an IoT project and it's AMAZING at parsing binaries!

    As far as web goes it's SUPER solid. You get the same development speed as you would with Node, Rails, or Django but you quadruple the performance out of the box which helps if your app goes viral quickly. Another benefit I see is you don't have to reach out to as many libraries as you would with other languages.

    The community is amazing! They are constantly they to help one another succeed.

    Only drawback is deployments are a little tricky depending on what you're making but they are in the works on solving this issue.

    1. 2

      Completely agree and yes deployments are tricky. I used Heroku but I cant take advantage of OTP there.

    2. 1

      I've been hearing good things about Elixir but this deployment issue keeps coming up. What are the drawbacks?

      1. 2

        Deployment is easy and you can deploy to Heroku with a single command or use edeliver to deploy to a standalone server.

        The difficulty comes when you scale past one server since the inter server communication is built into the runtime so it becomes part of your deployment experience getting the cluster communication right where with something like Ruby you would offload that responsibility to a queue system or database and handle the scaling of it separately from your application. Most people will likely never get to the stage where it gets difficult and with stuff like libcluster now it's a lot more app approachable if you do.

        1. 2

          Ahhh that makes sense! Thanks for the info @shawn_maplegum. I'll definitely be picking up Elixir at some point.

          1. 1

            No worries, feel free to reach out if you have any questions once you get a chance to give it a try.

        2. 1

          I mean, you could still absolutely handle inter server communication the same way you would in many other languages, it's just very tempting to use the built in features of Elixir for that instead.

          1. 1

            You could, I don't see why you ever would.

      2. 1

        I wouldn't actually say deployment is a drawback with Elixir. Most languages have either poor support no support whatsoever for building releases or for scaling. A lot of the current trend of containerization-based deployments are due to that lack.

        You can use Elixir as if it's just Node or Ruby and just deploy it via docker the same way you would with them.

        The pain point is that Elixir has additional capabilities that allow things like hot upgrades that don't disrupt in-memory application state and distributed fault tolerant systems. You don't have to use those features in Elixir and you can't in most other setups. It's just that if you do want to fully take advantage of them, you have to do things a little differently.

        1. 2

          Thanks @alchemist, very helpful info. I'll definitely check out your screencasts referenced above.

        2. 2

          Exactly what I was thinking. It does seem like setting up node clustering and hot upgrades could potentially use some more attention down the line to make them as easy to use as they are powerful.