<div dir="ltr">I used to run a Java PaaS. A client had major growth every Jan 1 - the New Year would literally trigger a 2x factor in subscriptions.<div><br></div><div>So every Jan 1, while the rest of the western world enjoyed time off with family, I fought fires in trying to keep this client's services afloat during the onslaught.</div><div><br></div><div>When we wanted to understand a performance problem in the code, we'd inject some debug statements, or instrumentation - cut a release, redeploy. With some data we'd try to understand the problem, fix, redeploy, rinse, repeat.</div><div><br></div><div>If you've ever deployed a debug version of your application in the middle of an outage, you have some appreciation for the pain I felt. On a holiday. With people demanding when I'd come down for dinner.</div><div><br></div><div>As a human, you remember these moments. You remember the details - every little technical detail. They draw the line between your happiness and your hell.</div><div><br></div><div>The moral of the story is, if you don't have these problems, don't worry about Erlang.</div><div><br></div><div>The Erlang VM lets you poke inside a running app to see what's broken - and fix it without stopping. The Erlang language has features that exploit this. OTP adds further features. These have been exercised in production for more than a decade. That's enough time to get things working.</div><div><br></div><div>If finding the right language for your corporate culture is the actual problem, then move Erlang off the board. It's just too fringe. Too hard to find developers. Too controversial.</div><div><br></div><div>If you have other actual problems, Erlang might prove useful.</div><div><br></div><div>For my part, I'll never put a back-end system into production that's not written in Erlang, unless there's a good technical reason. And there certainly may be. But Erlang is my starting point, on its merits. And I'm not saying every part of a back end system is running in an Erlang VM. That's crazy and no one does that. But if you're writing software that runs on a server - and you care about it running and working - what are your options?</div><div><br></div><div>Seriously. PHP? Node? Go? Ruby? JBoss? Forth? K?</div><div><br></div><div>Culture and history matter in technology. And Erlang has a long history of operational engineering discipline. If that doesn't matter, it might not be a fit.</div><div><br></div><div>Okay, you run stuff in production, so how to get started? Find a subsystem that's trivial to implement, but important to get right. Build that in Erlang. It should take a few weeks. If your experience is awful, what have you lost? If it's good, you've opened a path to a way of building and running software.</div><div><br></div><div>But the problems have to be real.</div><div><br></div><div>Oh, and apologies if this comes across as elite. I'm actually just an average guy who wants to have a New Year's meal with his family. True story.<br><br><div class="gmail_quote"><div dir="ltr">On Fri, Mar 25, 2016 at 4:42 PM Matthew Shapiro <<a href="mailto:me@mshapiro.net">me@mshapiro.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Unfortunately, that's way too true :(.<div><br></div><div>My real project I"m learning Erlang for is for an video ingestion server, because I believe I can create something that works better than what we are currently using at our company, and Erlang and the Beam VM hits every checkbox so much better than every other language and runtime out there.</div><div><br></div><div>Unfortunately, I am also keenly aware I will never bring this into production at my company since we are a small startup (5 people total, 2 engineers) in Orlando, FL which has zero Erlang developers positions around (and probably thus a small pool of potential developers). It's so fundamentally different (both on a framework and language level) from most other languages in this area that onboarding a new developer onto Erlang in sufficient amount of time is not going to be trivial or cheap, and anything I put into production needs to be able to be maintained by others that are not me. So while Erlang checks all the boxes I still can't say it's the right tool due to that :-/.</div><div><br></div><div>Of course, Javascript 100% is not the right tool for this job in every way, shape, or form (I actually had a Javascript developer in my coworking space ask why I wasn't doing it in Node.js, sigh). </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 25, 2016 at 3:10 PM, Loïc Hoguin <span dir="ltr"><<a href="mailto:essen@ninenines.eu" target="_blank">essen@ninenines.eu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There is no such thing as the right tool for the job.<br>
<br>
There's the tools that work *for you*, and those that don't.<br>
<br>
JS is working for a lot of people. Erlang for a lot less.<br>
<br>
In the real world, all that matters is that the tool is *good enough* and that you are *familiar* with it.<br>
<br>
Any combination where one of these is false leads to disaster. People who never used Erlang before will not magically come up with a good implementation (they can, but it takes a lot more time). Similarly, people who are trying to use Erlang for what it's not good at will also fail, or struggle to make it work.<br>
<br>
When choosing a tool for a project, the question should really be "Which tool do I know or can quickly get comfortable with, and can help me produce a working solution?"<br>
<br>
The answer to that question is different for everyone.<span><br>
<br>
On 03/25/2016 07:47 PM, Lee Sylvester wrote:<br>
</span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
JS is a major player due to laziness. I'm sorry, but a JS runtime on<br>
the server is never a good idea. I don't use Elixir / Erlang for every<br>
project, I use the right tool for the job, whether I've used it before<br>
or not. It just so happens that Elixir / Erlang is often the right tool.<br>
<br>
I'm sure it's the same for you guys? The fact that Erlangs language is<br>
poetry and Elixir's eco-system is bliss means nothing :-P<br>
<br>
On Mar 26, 2016 7:21 AM, "Michael Truog" <<a href="mailto:mjtruog@gmail.com" target="_blank">mjtruog@gmail.com</a><br></span><span>
<mailto:<a href="mailto:mjtruog@gmail.com" target="_blank">mjtruog@gmail.com</a>>> wrote:<br>
<br>
On 03/25/2016 10:55 AM, Loïc Hoguin wrote:<br>
<br>
On 03/25/2016 02:20 AM, zxq9 wrote:<br>
<br>
EVERYONE! STOP EVERYTHING! SATIRE IS NOW "TOXIC"!<br>
<br>
<br>
Shame is temporary. A good story is for life.<br>
<br>
What happened is a story for the ages. And a pretty good one.<br>
<br>
<br>
I agree. This is a positive contribution and no one can deny that.<br>
_______________________________________________<br>
erlang-questions mailing list<br></span>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a> <mailto:<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br>
</blockquote><span>
<br>
-- <br>
Loïc Hoguin<br>
<a href="http://ninenines.eu" rel="noreferrer" target="_blank">http://ninenines.eu</a><br>
Author of The Erlanger Playbook,<br>
A book about software development using Erlang<br></span><div><div>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div>
_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" rel="noreferrer" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</blockquote></div></div></div>