Live data from Hacker News

Flirting with Elixir

eng.localytics.com

1–10 of 29 posts

Re: Flirting with Elixir

#2
I've been "obsessed" with Elixir lately, and it truly is a breath of fresh air in the current programming language landscape.

I've started with C, built a career with backend Python services/dashboards, and spent some time on the "fringe" learning about Lisp, Scheme, Haskell, Clojure. And once you rewire your brain with functional programming constructs or immutability, it is really hard to go back to Python, using large libraries feels too much like magic (if you ever used Django, raise your hands if you've ever had to delve into the source code to understand what is going on).

I've had a fling with Go, I really like some of its ideas, namely static linking, native compilation, no exceptions, easy deploy (I wrote a huge Django 1.6 app shipped as RPM for RHEL 5 enterprise servers, and that was truly the definition of pain). I disliked the lack of functional constructs such as map, reduce, filter, and it felt a step back from the "fringe" languages I've been studying.

Then I discovered Elixir.

It's a mix between Haskell without purity and types and Clojure without parens, with a Ruby-style syntax and a battle-tested framework for concurrency and distributed computing.

It's like an immutable Python. With built-in virtualenv + pip tooling. And first-class macros. And pattern matching.

Pair that with a sane standard library (unit testing? logging? documentation? We've got you covered), a REPL, a LINQ-style lightweight ORM, and a very interesting web framework built around modern tech (websockets, JSON APIs, ES6).

And binary compatible with the most robust concurrency and supervision system, Erlang/OTP.

I know I talk like a fanboy, but, man, programming feels like joy again.

Re: Flirting with Elixir

#3
I've been using Erlang on and off since 2003, and used it heavily at the last place I worked to build a pretty cool product, so I'm a fan. That said, this article is a little bit hypey, although it's all correct as far as I can see.

* I'd still build most products in Rails, because there is so much ecosystem that lets you get something up and running quickly. The exception being if I absolutely knew that the system had to aim for really big numbers from the get-go (which is not the kind of market I'm particularly even interested in these days), or had to be super-reliable, or some kind of semi-embedded system like what I did in the last place I worked. I loved Joe Armstrong's answer here: http://erlang.org/pipermail/erlang-questions/2015-October/08... - "My goal would be to get something up and running as soon as possible and get users - and not worry about implementation details."

* By the same token, if you know you need something with raw computing speed, Erlang isn't it either, as the article mentions. Although it'd certainly be possible for Erlang to farm out work to something faster, if the additional architectural complexity isn't a problem.

Re: Flirting with Elixir

#5
post #2

I've been "obsessed" with Elixir lately, and it truly is a breath of fresh air in the current programming language landscape. I've started with C, built a career with backend Python services/dashboards, and spent some time on the "fringe" learning about Lisp, Scheme, Haskell, Clojure. And once you rewire your brain with functional programming constructs or immutability, it is really hard to go back to Python, using l…

It certainly feels like a breath of fresh air. When you work with it and you hear some of the hype around it, you get the distinct maybe unsubstantiated feeling that it is a language which could really take off. Thinking Ruby/Rails circa 2005.

Re: Flirting with Elixir

#7
post #3

I've been using Erlang on and off since 2003, and used it heavily at the last place I worked to build a pretty cool product, so I'm a fan. That said, this article is a little bit hypey, although it's all correct as far as I can see. * I'd still build most products in Rails, because there is so much ecosystem that lets you get something up and running quickly. The exception being if I absolutely knew that the system h…

(SRE at Localytics here.)

I think one of the biggest things for us is that, primarily, we run Rails on the frontend and Scala on the backend. Elixir is exciting because we could potentially replace a lot of our frontend stuff with it, while not being terribly far from Ruby syntax. It's "approachable". On the flipside, it's potentially taking our Ruby code and making it more functional, getting closer to our Scala side of things. It's a very nice middle ground.

In that regard, a lot of us here do feel very excited about Elixir, and so I think that comes through as a lot of hype. We're looking at it through the lens of what it could do for us, and we're naturally excited about that. :)

Re: Flirting with Elixir

#8
post #2

I've been "obsessed" with Elixir lately, and it truly is a breath of fresh air in the current programming language landscape. I've started with C, built a career with backend Python services/dashboards, and spent some time on the "fringe" learning about Lisp, Scheme, Haskell, Clojure. And once you rewire your brain with functional programming constructs or immutability, it is really hard to go back to Python, using l…

Haskell without purity and types

I'm getting quite tired of this "Every functional language I can't precisely describe is like Haskell" sentiment. It's the "tastes like chicken" of programming languages. Then again, the original article is remarkably devoid of content, so I suppose it's only fitting.

Interestingly, avoidance of excessive magic is a large reason why I stick to vanilla Erlang.

Re: Flirting with Elixir

#9
post #2

I've been "obsessed" with Elixir lately, and it truly is a breath of fresh air in the current programming language landscape. I've started with C, built a career with backend Python services/dashboards, and spent some time on the "fringe" learning about Lisp, Scheme, Haskell, Clojure. And once you rewire your brain with functional programming constructs or immutability, it is really hard to go back to Python, using l…

It certainly feels like a breath of fresh air. When you work with it and you hear some of the hype around it, you get the distinct maybe unsubstantiated feeling that it is a language which could really take off. Thinking Ruby/Rails circa 2005.

Exactly. I've recently posted a link to a talk about Phoenix (the de factor Elixir web framework), where the creator is talking about working on an integrated GraphQL server and (possibly) server side templates using GraphQL directly.

I personally feel this would be a game changer, much like when Rails started shipping and it completely changed the way we write web applications.

Re: Flirting with Elixir

#10
post #2

I've been "obsessed" with Elixir lately, and it truly is a breath of fresh air in the current programming language landscape. I've started with C, built a career with backend Python services/dashboards, and spent some time on the "fringe" learning about Lisp, Scheme, Haskell, Clojure. And once you rewire your brain with functional programming constructs or immutability, it is really hard to go back to Python, using l…

I agree. Whenever I open up an Elixir project, there's a certain joy. I'm not sure what it is exactly. The language is simply a pleasure to work in.

> I've had a fling with Go

I've used Go for quite a few things, but it never felt quite right. I've come to like some of the tooling around the language while hating the language itself.

What really turned me away from Go was its community. There are a lot of people who think that they're smarter than everybody else for using a "systems language". Disagreement with the status quo is often fought back with religious indignation. Any decisions made by the language designers are obviously right, and you just need to accept that and do what you're told. I've found a lot of sexism and vitriol too. I've heard similar stories from others, but we could just be unlucky.

Elixir on the other hand has made it a goal to have a nice and welcoming community. That might change as it gains steam, but because of the leadership shown by community leaders, I doubt it will.

Post reply on HN