Hacker News new | past | comments | ask | show | jobs | submit login

The extent of their usage of Elixir is highly questionable. One of their employees was at elixirforum.com for recruiting but could not, or would not answer how much they use it for. There's also some partially substantiated rumors that the Elixir was a single employee's experiment, and those services were either in the process, or had already been re-written in Scala.



I left PD about 5 months ago, so my information might be slightly outdated, but I can confirm that Elixir is used quite a bit internally, including for highly available critical services that all event data passes through. While there might be some truth to Elixir starting out as an experiment, its adoption has not only spread to multiple teams, but it is also the language most new services are to be written in, going forward. The unique thing about Elixir is how it appealed to both Ruby and Scala folks internally.


To ruby folks, it's like faster ruby. What is the appeal to Scala folks? As formerly a Scala folk, it hasn't had much interest to me (but I have no negative feelings about it either, it has always been a "cool another language" to me)


I wasn't writing Scala day-to-day myself, but common (though by no means universal) objections were around complexity and difficulty of iterating quickly. The author of the Elixir post below also wrote a bit about his experiences with Scala - http://evrl.com/programming/scala/2017/04/04/scala-part-ii.h....


Scala brings functional programming to the JVM.

Elixir brings style to Erlang/OTP.

Comparing to Ruby is apples to oranges because Ruby's concurrency and operational foundation is weak. The better comparison is Erlang/OTP vs JVM, where JVM gets the edge on optimized performance, and Erlang/OTP gets the edge on concurrency & tooling. The appeal for Scala folk would be if you don't care about the JVM compatibility or raw performance, and want an opinionated ecosystem built from the ground up around the actor model.


Is Scala is beholden to Java garbage collection? I know one big advantage I like is that each process has separate GC so you can run it in certain situations without affecting the entire system


Mostly (there are some projects to do Scala not on the JVM, but I have never seen them be more than a toy). That said, the JVM GC is the (IMO) best GC out there, it is really good for many many situations. And then there are some paid JVMs if you want to trade latency guarantees.


A lot of Scala users like the Akka actor system. The actor model is a first-class library in Elixir (or more specifically Erlang/OTP)


Learning to understand the actor model in Elixir made me a much better programmer. I highly recommend taking the plunge, even if you don't ultimately use Elixir. Be prepared for a bit of a brain bender though.

Pro-tip: If you can't write a GenServer in Elixir from scratch, along with understanding all of the differences between casts and calls, you probably don't understand the actor model (at least how it's used in Elixir) very well.


This is pure gatekeeping.


I'm not sure what that means. Can you clarify?


I don't think this is correct, from [1]:

Today, we have a good mix of teams that are fully on Elixir, teams that are ramping up, and teams who are still waiting for the first project that will allow them to say, “We’ll do this one in Elixir.”

[1]: https://www.pagerduty.com/blog/elixir-at-pagerduty/


Which makes me wonder why the employee in question, Cees de Groot, was so adamantly refusing to answer the question in any sort of detail.


Maybe he just didn't want to put his foot in his mouth.


I cannot comment in any way on financial matters, but like Cees, I am a principal engineer at PagerDuty, and I can tell you that in terms of total LOC, our Elixir use may seem modest because we have a lot of code that was written X number of years ago in Ruby or Scala.

However, if we look at new services being developed, we use a lot of Elixir, it is our default choice.

This dichotomy is very usual in our industry. What we have reflects our entire history, and the history of tools available when we wrote all that code.

But what we write today reflects our priorities today, and the tooling available today.

Now ask me about front-end development. Yes, we have some CoffeeScript/Backbone still in production, but we aren’t doing any new work in it!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: