Elixir Users' Survey 2016 Results

Yeah, I mentioned to @knewter yesterday that I wasn’t a great fan of that comment and that it at least should be elaborated on. Hex runs on Heroku and it’s working fine for us.

1 Like

Part of the issue, I think, is that a lot of learning resources for Elixir don’t teach OTP properly. I’m talking about Programming Elixir, and Elixir in Action. What I mean by this is that, to me, OTP isn’t just a set of modules that abstract functionality, they’re building blocks for architecting your software, and I don’t think these learning resources do justice by using toy problems to illustrate how to use them. It wasn’t until I went over Programming Phoenix that I saw a ‘real-world’ example with the wolfram infosys backend that gets built in the book as part of the Rumbl app.

I would love to see an example of a (feature-bare) application that uses OTP behaviours but still architected in the way it would be in the ‘real world’, with explanations as to why any particular behaviour was used and why it’s the right way to use them that way.

edit: For example I’m still pretty fuzzy on why and when you would use a GenServer.

1 Like

Just a nitpick, the single quote in page title (the title you see on browser tab) got converted to html entity &39;. Otherwise thanks for sharing the result, interesting to know many people coming from JS, I think they may very well be NodeJS devs.

I believe few of the reasons are about clustering Erlang nodes, OTP releases, and hot upgrades?

There are already several threads discussing Heroku’s shortcomings in this forum:

OTP releases are not needed the way Heroku does deploys or you can create releases and deploy the slug manually if you prefer that [1]. Clustering is not needed for the vanilla web apps Heroku is targeted to and neither are hot upgrades. Besides the people doing proper production hot upgrades are a small minority.

If you need those things then don’t use Heroku, that’s easy. But saying that the platform inherently cripples VM is unfair.

[1] Creating Slugs from Scratch | Heroku Dev Center

Hmm, this makes me wonder, is it a good thing or a bad thing?

I do get your concern, though. The phrasing is a bit too dismissive. It’s great to hear that Hex is running well on Heroku. Is it possible to share the details (dyno type, memory usage, load, etc.)? :slight_smile:

If you don’t need then you don’t need it :). For most people it’s probably not worth the extra complexity and testing effort.

It runs on a single hobby dyno 512mb. Memory usage is around ~130mb and peaks at 250mb when rebuilding the registry. Load is around 0.1-0.2 except for during traffic peaks. The traffic is 100-200rpm with peaks over 2000rpm. We don’t host the repository on Heroku, so most traffic goes to Fastly CDN that hosts it.

1 Like

I don’t know Elixir in Action seemed to present OTP very well in my opinion. There is always an option to read Designing for Scalability with Erlang/OTP.

2 Likes

That’s an interesting point Eric. Hex seems to exercise a lot of Elixir’s best capabilities.

Go read this year’s OTP and Erlang book from O’Reilly (already mentioned). It was written by OTP veterans.

1 Like

I’m sure it’s a great book, in fact i bought it a couple of weeks ago and have it on my list. But I think this is part of my point that there needs to be better Elixir+OTP learning materials rather than being pointed to Erlang resources to get a better grasp on OTP.

edit: now maybe I’m just slow at grasping the concepts, that’s perfectly valid too.

Meh, both languages are very similar so I don’t mind but I see your point though between:

  • Official guide + docs
  • Elixir in Action
  • Little Elixir & OTP Guidebook
  • Conference talks

and some open source projects I don’t think that much more is needed… most people’s OTP projects are for work and thus closed source.

1 Like

I would challenge that with Oracle nowadays. Just saying…

I give Microsoft credit for:

1 Like

Lacks a ton of features that I’ve been using in vim and emacs for decades, I’ve found it hard to use…

OGod that is horribly done, we have it at work, completely sandboxed distinct processes and filesystem, it may as well be running in a virtual machine…

I… have made very long posts about the mis-designs that both the JVM and .NET VM’s have done because of their poor language design. :wink:

That actually scares the crap out of me…

1 Like

OK so assume no credit from you for Microsoft :slight_smile:
PS
Last time I was on docker global mentor week meetup , and where … in Microsoft Office :smiley:

I think Microsoft is learning how to make money from Linux :slight_smile: