<div dir="ltr"><div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">I've pointed this out before, but it really bears repeating - "Erlang-based systems are architected *differently*"</span><br>
</div><div><font face="arial, sans-serif">- "Let it Crash" actually works</font></div><div><font face="arial, sans-serif">- "Loose Coupling" actually works</font></div><div><font face="arial, sans-serif">- "Edge Cases" can be dealt with lazily</font></div>
<div><br></div><div><font face="arial, sans-serif">The thing is, the three items above all work together - each is useful in isolation, but when put together, the Gestalt is mighty powerful.</font></div><div><font face="arial, sans-serif">Consider a typical erlang-based system, where a</font><span style="font-family:arial,sans-serif">n obscure condition (edge case!) gets triggered by a user, and clobbers the component in question. </span></div>
<div><font face="arial, sans-serif">Thats OK - it crashes, like it is *supposed* to!</font></div><div><font face="arial, sans-serif">Pretty much by definition, these systems are architected so that it is not only processes that are isolated, but the components that they reside in, the applications thereof, the nodes, etc., etc. ("loose coupling"!). Consequently, supervisors restart the component in question, and life goes on.</font></div>
<div><font face="arial, sans-serif">Meanwhile, you (or the developer in question) tracks down the edge-case, and hot-loads a patch stat.</font></div><div><font face="arial, sans-serif">Life, in short, is good.</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">In contrast, virtually edge-cases were (and still are) the bane of virtually every non-erlang system that I've ever worked on. We'd spend *person-years* tracking down every possibility, and still watch the whole damn thing tumble to the ground because some *truly* horrible edge-case that we couldn't anticipate got triggered. And that, of course, doesn't even begin to get into the entertainment which is "Sunday Morning 2AM - its time to Shut The System Down to load the fix"</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">And now to the snark part - some stuff that I've seen repeatedly here, and can't leave well enough alone</font></div><div><font face="arial, sans-serif"><br>
</font></div><div><font face="arial, sans-serif">"Nobody uses erlang" <--- Except for everybody that does</font></div><div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">"Its got only one dominant sponsor" <-- WTF does that even mean? Like Java has Oracle?</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">"Erlang doesn't play well w/ <some technology> therefore it is teh sux0r" <--- Ummm, maybe <some technology> isn't particularly relevant for virtually everything you do in Erlang? Writing GUI components is terrible! Oh Noes!</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">"Erlang needs standards" <-- Please tell me you don't mean "standards bodies". Please!</font></div><div><font face="arial, sans-serif"><br>
</font></div><div><font face="arial, sans-serif">"</font><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Erlang needs to shed its telco ties" <--- Huh? *What* telco ties? Yes, Ericcson. I got the point, and will raise you "99.99% of erlang devs and projects dont' give a s**t about Ericcson"</span></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">"</font><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">But Java </span><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">programmers know how to work together." <-- I'll let that one just kind of stand there by itself.</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">And finally, I really would like to point out, not everything gets better with the addition of a coffee-grinder attachment. Focused systems are wonderfully useful things in the world of integration and loose-coupling. Why, one of my favorite cross-platform tools is this wonderful thing called ZeroMQ, which doesn't really have a built-in database, built-in scripting tool, built-in web GUI, or frankly, much of anything other than the basics. And it rocks...</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px">Cheers</span></div><div><span style="font-family:arial,sans-serif;font-size:13.333333969116211px"><br>
</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Feb 15, 2014 at 2:14 PM, Miles Fidelman <span dir="ltr"><<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">Pieter Hintjens wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, Feb 14, 2014 at 4:39 PM, Miles Fidelman<br>
<<a href="mailto:mfidelman@meetinghouse.net" target="_blank">mfidelman@meetinghouse.net</a>> wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Actually, the demand for both Cobol and analog engineers is UP.<br>
</blockquote>
Friend of mine was just laid off from a 15-year Cobol job. One can't<br>
make general conclusions from small samples.<br>
</blockquote>
<br></div>
Talk about small samples.<br>
<br>
How about this for a larger sample:<br>
<a href="http://eandt.theiet.org/news/2013/mar/cobol-skills.cfm" target="_blank">http://eandt.theiet.org/news/<u></u>2013/mar/cobol-skills.cfm</a> (lede: "Dearth of COBOL programmers threatens business")<br>
<br>
Or Indeed.Com's salary survey:<br>
<a href="http://www.indeed.com/salary/Cobol-Developer.html" target="_blank">http://www.indeed.com/salary/<u></u>Cobol-Developer.html</a><div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
The argument that keeping technology elitist creates wealth is insane<br>
and should be laid to rest rapidly. Who here is building new<br>
businesses on LU6.2? Right.<br>
</blockquote>
<br></div>
Ask doctors why they specialize.<div class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Erlang needs to shed its telco ties, and get an independent steering<br>
committee, and create standards, and multiple implementations, and<br>
also reach out to other language communities through distribution<br>
protocols like ZMTP, and educate those communities, while also<br>
exploiting them and merging with them. Living systems are like the<br>
Borg; they grow by merger.<br>
</blockquote>
<br></div>
Why? That's all theory. In practice:<br>
- it's been around, and in use for quite some time<br>
- it's in use in some very large applications<br>
- it's in use in multiple industries, and by some large players<br>
- there are some successful businesses that are built on top of Erlang (Basho comes to mind)<br>
- there's a demand for folks who know Erlang (actually, the demand is probably more for people who can build highly scalable high-availability systems)<br>
<br>
Excelling at a niche market is a great success strategy.<br>
<br>
FYI: Ada is a good parallel example. It was pushed, for years, by the biggest customer in the world, has standards bodies and multiple implementations. Yet it never has taken off as a major platform. On the other hand, it continues to have a significant market in mission-critical systems - SCADA, aircraft, oil & gas, industrial control. It's not going away anytime soon.<br>
<br>
I'd be a lot more worried about Erlang's future if there were anything remotely like it in the market (and I'm somewhat surprised that there isn't). It completely blows me away that there isn't another platform that's built ground-up to support massive concurrency and 24x7 operation. Guess 1st mover advantage counts for a lot. (Maybe Carl Hewitt's personality accounts for the Actor formalism's lack of widespread traction.)<div class="">
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Mock Java all you like. It's a hateful language in many ways. But Java<br>
programmers know how to work together. There are 6+ different Erlang<br>
stacks for ZeroMQ, all one-man projects, all lacking any community.<br>
<br>
<br>
</blockquote></div>
Who's mocking Java? I just don't have much use for it. On the other hand, the company I work for these days builds most stuff on top of .NET and Microsoft SQL - not what I'd chose, but it works.<br>
<br>
As to ZeroMQ - is that not more about market conditions? But I would expect you're in a better position to comment on that then most.<div class="im HOEnZb"><br>
<br>
-- <br>
In theory, there is no difference between theory and practice.<br>
In practice, there is. .... Yogi Berra<br>
<br></div><div class="HOEnZb"><div class="h5">
______________________________<u></u>_________________<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" target="_blank">http://erlang.org/mailman/<u></u>listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="font-style:italic;margin:0px;font-family:Calibri">
<b style="color:rgb(17,85,204)"><a href="http://www.gravatar.com/avatar/204a87f81a0d9764c1f3364f53e8facf.png" style="color:rgb(17,85,204)" target="_blank">Mahesh Paolini-Subramanya</a></b></div><div style="margin:0px;font-family:Calibri">
<span style="font-weight:normal">That tall bald Indian guy..</span><br></div></b></span></font></div></div><div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt"><font color="#1f497d" face="Calibri, sans-serif"><span style="font-size:15px"><b><div style="margin:0px;font-family:Calibri">
<div style="font-family:Helvetica;word-wrap:break-word"><div style="margin:0in 0in 0.0001pt;font-size:12pt;font-family:'Times New Roman',serif"><span style="font-size:11pt;font-family:Calibri,sans-serif"><div style="margin:0px;font-family:Calibri;color:rgb(1,108,226)">
<a href="https://plus.google.com/u/0/108074935470209044442/posts" style="color:rgb(17,85,204)" target="_blank">Google+</a><span style="color:rgb(31,73,125)"> | <a href="http://dieswaytoofast.blogspot.com/" style="color:rgb(17,85,204)" target="_blank"><span style="color:rgb(1,108,226)">Blog</span></a></span> <span style="color:rgb(31,73,125)"> | <span style="color:rgb(1,108,226)"><a href="https://twitter.com/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">Twitter</a></span></span><span style="color:rgb(31,73,125)"> | </span><a href="http://www.linkedin.com/in/dieswaytoofast" style="color:rgb(17,85,204)" target="_blank">LinkedIn</a></div>
</span></div></div></div></b></span></font></div></div></div>
</div>