<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>Hi Vimal,</div>
<div><br>
</div>
<div>Node is actually probably fine for concurrency, my snarky comment was more because it's a bit of a joke in the devops/startup communities. When node first came out there was a whole lot of hype about it's performance based on some un-relastic benchmarks.
  This lead to it being a big deal with a lot of contractors and small companies that didn't really understand what goes into scaling a SaaS application.  The problem is that javascript just got it's non-blocking io tacked on because it lacked any sort of model
 to be replaced (Ruby and Python carry around green-threads and GILs as their albatross) so node could achieve true concurrency.  The real catch is most of the time true concurrency is not an issue for web-apps, it's just not needed.</div>
<div><br>
</div>
<div>Imagine a typical rails app, when a request comes in nginx receives the request and passes it to the proper upstream (unicorn, php-fpm, ect) this service will spin up a new short-lived Ruby interpreter to answer the request and die.  At any time you could
 potentially have 10s or 100s of Ruby processes across multiple servers handling requests, and this is really important because at real scale you can't use a single server.  I mentioned the actor model before as before as a popular solution, this is partially
 for concurrency but much more because the idea of mailboxes and no shared state makes distributed systems much easier.  The reason erlang is so amazing it lets you run one system across multiple boxes and gives you better failover capabilities than most people
 could even imagine.</div>
<div><br>
</div>
<div>The other problem is node.js still has a super immature eco-system.  Concurrency does matter for web-sockets, so in ruby you would use jruby and puma for a project like that.  In a more traditional app unicorn and MRI would be a better choice.  In either
 case these are mature, tested projects worthy of running in production, node.js lacks options like this to scale out an app on the operations side.</div>
<div><br>
</div>
<div>Also node.js is javascript.</div>
<div>
<div>
<div>-- </div>
<div>
<div style="font-family: Consolas; font-size: medium; ">Paul Mooring</div>
<div style="font-family: Consolas; font-size: medium; ">Systems Engineer and Customer Advocate</div>
<div style="font-family: Consolas; font-size: medium; "><br>
</div>
<div style="font-family: Consolas; font-size: medium; ">www.opscode.com</div>
</div>
</div>
</div>
</div>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Vimal Shah <<a href="mailto:vimals@sokikom.com">vimals@sokikom.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Date: </span>Friday, April 5, 2013 7:55 PM<br>
<span style="font-weight:bold">To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Subject: </span>Re: PHP lifespan<br>
</div>
<div><br>
</div>
<div>
<div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
I agree with Eric and Paul. The following is moving off topic a little, since it talks about concurrency performance of Node vs PHP.</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Node seems to be the cool kid on the block nowadays in Silicon Valley. It could be a fad, but I think there might be more to it. </div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Paul, I'm trying to understand why Node may not good for scaling and/or concurrency. Maybe it's just not as good as Scala? Here are some resources that illustrate why it may be a good contender:</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
1. This link points to some potential <a href="http://loadimpact.com/blog/nodejs-vs-php-using-load-impact-to-viaualize-nodejs-efficency#respond" target="_blank" style="color:rgb(17,85,204)">upsides for Node over PHP</a>, specifically concerning user concurrency.
 Does this only hold true for concurrency of < 1000 users?</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
2. You <i>may hav</i>e implied that after some threshold of concurrency (maybe >> 10k users), it may not make sense to use Python / Node or Ruby? If this is so, this link seems to say that Node can indeed handle a <a href="http://www.ibm.com/developerworks/opensource/library/os-nodejs/index.html" target="_blank" style="color:rgb(17,85,204)">large
 amount of concurrency</a>. This leads me to believe that for scaling, Node may be a good contender? </div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
3. This also states that <a href="http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency-model.html" target="_blank" style="color:rgb(17,85,204)">actors may not be good for concurrency</a>, at least not anymore? Not sure how accurate this is.</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
Unfortunately, since I've never actually implemented a Node server with high concurrency myself, most of my ammunition on this position is academic.</div>
<div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)">
<br>
</div>
<br>
<div class="gmail_quote">On Fri, Apr 5, 2013 at 4:29 PM, Paul Mooring <span dir="ltr">
<<a href="mailto:paul@opscode.com" target="_blank">paul@opscode.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>
<div>
<div>I currently work mostly in the web-ops SaaS space and just wanted to throw in my 2 cents here.  Ruby, Python and node.js are all in the same performance class.  Ruby is perfectly capable of handling a full-scale SaaS app, twitter just goes a bit beyond
 full-scale.  We (Opscode) recently migrated off running our main code base in Ruby as well.  While twitter and opscode both still run a fair amount of ruby in their infrastructures there's one import thing you missed in your reply, they certainly are not moving
 to python or node.js because that won't help for real scale.  We moved to Erlang and Twitter to Scala, notice those are both functional, concurrent languages using the actor model for concurrency.</div>
<div><br>
</div>
<div>I bring this up not to discourage using Ruby, Python or Node.js (well maybe I would discourage node.js a little ;) ), but to bring up that for 95% of the SaaS business out there the performance of the language/framework will always be irrelevant and if
 they have less than millions of users performance issues are probably in their code rather than their tech stack.</div>
<div class="im">
<div>
<div>
<div>-- </div>
<div>
<div style="font-family:Consolas;font-size:medium">Paul Mooring</div>
<div style="font-family:Consolas;font-size:medium">Systems Engineer and Customer Advocate</div>
<div style="font-family:Consolas;font-size:medium"><br>
</div>
<div style="font-family:Consolas;font-size:medium"><a href="http://www.opscode.com" target="_blank">www.opscode.com</a></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div><br>
</div>
<span>
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">
<span style="font-weight:bold">From: </span>Eric Cope <<a href="mailto:eric.cope@gmail.com" target="_blank">eric.cope@gmail.com</a>>
<div class="im"><br>
<span style="font-weight:bold">Reply-To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
</div>
<span style="font-weight:bold">Date: </span>Friday, April 5, 2013 3:41 PM
<div class="im"><br>
<span style="font-weight:bold">To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
</div>
<span style="font-weight:bold">Subject: </span>Re: PHP lifespan<br>
</div>
<div>
<div class="h5">
<div><br>
</div>
<div>
<div>
<div dir="ltr">I don't see PHP going away for a long time, unless the PHP core developers fly off into left field and make some crazy decisions.
<div>If I was going to learn new languages, I'd learn:</div>
<div>Ruby - because its becoming ubiquitous, but its too slow for full-scale SaaS stuff, just ask Twitter :)</div>
<div>Python, node.js - for performance. </div>
<div><br>
</div>
<div>Just my two cents.</div>
<div><br>
</div>
<div>Eric</div>
</div>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Fri, Apr 5, 2013 at 12:57 PM, Paul Mooring <span dir="ltr">
<<a href="mailto:paul@opscode.com" target="_blank">paul@opscode.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="font-size:14px;font-family:Calibri,sans-serif;word-wrap:break-word">
<div>
<div>
<div>I think most of the technologies you listed got sunk by changes in the tech eco-system as a whole.   FoxPro was killed by MS  but COBOL and dBase are still alive in there own niche's.  I think PHP will suffer the same fate, there's definitely better languages
 for writing full scale SaaS applications in (Ruby and Python seem like the big front-runners) but for a simple site you want to upload via FTP and forget I see no reason anyone would want to put much effort into "replacing" PHP.</div>
<div><br>
</div>
<div>On a related note, much of PHP's reputation isn't really deserved in my opinion.  There's a lot of awful code out there, but it's eco-system now has a pretty scale-worthy stack (laravel/symfony/ect, php-fpm and nginx) and like any language, it has some
 poor design decisions, but for the most part bad code is due to bad programmers rather than the language itself.</div>
<span><font color="#888888">
<div><br>
</div>
<div>
<div>
<div>-- </div>
<div>
<div style="font-family:Consolas;font-size:medium">Paul Mooring</div>
<div style="font-family:Consolas;font-size:medium">Systems Engineer and Customer Advocate</div>
<div style="font-family:Consolas;font-size:medium"><br>
</div>
<div style="font-family:Consolas;font-size:medium"><a href="http://www.opscode.com" target="_blank">www.opscode.com</a></div>
</div>
</div>
</div>
</font></span></div>
<span><font color="#888888"></font></span></div>
<span><font color="#888888">
<div><br>
</div>
</font></span><span><span><font color="#888888">
<div style="border-right:medium none;padding-right:0in;padding-left:0in;padding-top:3pt;text-align:left;font-size:11pt;border-bottom:medium none;font-family:Calibri;border-top:#b5c4df 1pt solid;padding-bottom:0in;border-left:medium none">
<span style="font-weight:bold">From: </span>keith smith <<a href="mailto:klsmith2020@yahoo.com" target="_blank">klsmith2020@yahoo.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Date: </span>Friday, April 5, 2013 12:25 PM<br>
<span style="font-weight:bold">To: </span>Main PLUG discussion list <<a href="mailto:plug-discuss@lists.phxlinux.org" target="_blank">plug-discuss@lists.phxlinux.org</a>><br>
<span style="font-weight:bold">Subject: </span>PHP lifespan<br>
</div>
</font></span>
<div>
<div>
<div><br>
</div>
<div>
<div>
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<td valign="top" style="font:inherit"><br>
<br>
Hi,  I do not want to start any flame wars.  I would like to open a discussion though.<br>
<br>
I was thinking of what the life span of PHP might be.  I have lived through a number of them.<br>
<br>
In the early 80's COBOL was still taught and was in use.  I know it is still around, however I do not think anyone would choose COBOL for a new project. 
<br>
<br>
I also lived through the whole dBase, Clipper, FoxBase+, and Visual FoxPro cycle.  FoxPro was acquired by M$ 15 or 18 years ago, which started it's slow decline.  M$ finally killed it last year.<br>
<br>
So I am wondering about PHP.  What might it's lifespan be?  What might be the next big thing... etc.<br>
<br>
I'm interested in hearing your thoughts.<br>
<br>
------------------------<br>
Keith Smith</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</span></div>
<br>
---------------------------------------------------<br>
PLUG-discuss mailing list - <a href="mailto:PLUG-discuss@lists.phxlinux.org" target="_blank">
PLUG-discuss@lists.phxlinux.org</a><br>
To subscribe, unsubscribe, or to change your mail settings:<br>
<a href="http://lists.phxlinux.org/mailman/listinfo/plug-discuss" target="_blank">http://lists.phxlinux.org/mailman/listinfo/plug-discuss</a><br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</div>
</span></div>
<br>
---------------------------------------------------<br>
PLUG-discuss mailing list - <a href="mailto:PLUG-discuss@lists.phxlinux.org">PLUG-discuss@lists.phxlinux.org</a><br>
To subscribe, unsubscribe, or to change your mail settings:<br>
<a href="http://lists.phxlinux.org/mailman/listinfo/plug-discuss" target="_blank">http://lists.phxlinux.org/mailman/listinfo/plug-discuss</a><br>
</blockquote>
</div>
<br>
<br clear="all">
<div><br>
</div>
-- <br>
<font size="3">
<div style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">
<font face="arial,helvetica,sans-serif">Vimal (rhymes with Kimmel) Shah</font></div>
<div style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">
<span style="font-size: 13px; font-family: arial, helvetica, sans-serif; ">Front-End / Infrastructure Engineer</span></div>
<span style="border-collapse: collapse; font-size: 13px; font-family: arial, sans-serif; "><font face="arial,helvetica,sans-serif">Sokikom<br>
Mobile: (480) 752-9269<br>
Email:<font color="#500050">   </font><a href="mailto:vimals@sokikom.com" style="color:rgb(42,93,176)" target="_blank">vimals@sokikom.com</a></font></span>
<div style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">
<font face="arial,helvetica,sans-serif">Web:<font color="#500050">    </font><font color="#3333FF" style="color:rgb(42,93,176)"><a href="http://www.sokikom.com/" style="color:rgb(42,93,176)" target="_blank">www.sokikom.com</a></font></font></div>
<div><font face="arial,helvetica,sans-serif"><br>
</font></div>
</font>
<div>
<div style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">
Follow us: <a href="http://www.twitter.com/sokikom" style="color:rgb(42,93,176)" target="_blank">twitter.com/sokikom</a></div>
<div style="border-collapse:collapse;font-family:arial,sans-serif;font-size:13px">
Like us: <a href="http://www.facebook.com/sokikom" style="color:rgb(42,93,176)" target="_blank">facebook.com/sokikom</a></div>
</div>
</div>
</div>
</span>
</body>
</html>