{"id":896,"date":"2012-06-08T06:20:36","date_gmt":"2012-06-08T06:20:36","guid":{"rendered":"http:\/\/brain.dailyon.net\/?p=896"},"modified":"2012-06-08T06:20:36","modified_gmt":"2012-06-08T06:20:36","slug":"why-everyone-is-talking-about-node","status":"publish","type":"post","link":"https:\/\/blog.goorigo.com\/?p=896","title":{"rendered":"Why Everyone Is Talking About Node"},"content":{"rendered":"<div style=\"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 15px;font-style: normal\">The source of the aticle is<\/div>\n<div style=\"font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;font-size: 15px;font-style: normal\"><a href=\"http:\/\/mashable.com\/2011\/03\/10\/node-js\/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Mashable+%28Mashable%29\">http:\/\/mashable.com\/2011\/03\/10\/node-js\/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Mashable+%28Mashable%29<br \/>\n<\/a><\/div>\n<p>&nbsp;<\/p>\n<header>\n<div>\n<h1><a href=\"http:\/\/mashable.com\/2011\/03\/10\/node-js\/\">Why Everyone Is Talking About Node<\/a><\/h1>\n<\/div>\n<div><a href=\"http:\/\/mashable.com\/author\/jolie-odell\/\" rel=\"author me\"><img src=\"http:\/\/6.mshcdn.com\/wp-content\/authors\/Jolie%20ODell-808.jpg\" alt=\"Jolie O'Dell\"><\/a>March 10, 2011&nbsp;by&nbsp;<a title=\"Posts by Jolie O'Dell\" href=\"http:\/\/mashable.com\/author\/jolie-odell\/\" rel=\"author\">Jolie O&#8217;Dell<\/a><a title=\"Comments for this story\" href=\"http:\/\/mashable.com\/2011\/03\/10\/node-js\/#comments\" rel=\"comment\">94<\/a><\/div>\n<\/header>\n<p>&nbsp;<\/p>\n<div>\n<\/div>\n<div>\n<\/div>\n<div><\/div>\n<div>\n<p><em>The&nbsp;<a href=\"http:\/\/mashable.com\/tag\/web-development-series\/\">Web Development Series<\/a>&nbsp;is supported by&nbsp;<a href=\"http:\/\/bs.serving-sys.com\/BurstingPipe\/adServer.bs?cn=tf&amp;c=20&amp;mc=click&amp;pli=889085&amp;PluID=0&amp;ord=[timestamp]\" rel=\"nofollow\" target=\"_blank\">Rackspace<\/a>, the better way to do hosting. Learn more about Rackspace\u2019s hosting solutions&nbsp;<a href=\"http:\/\/bs.serving-sys.com\/BurstingPipe\/adServer.bs?cn=tf&amp;c=20&amp;mc=click&amp;pli=889085&amp;PluID=0&amp;ord=[timestamp]\" rel=\"nofollow\" target=\"_blank\">here<\/a>.<\/em><\/p>\n<p><img loading=\"lazy\" src=\"http:\/\/8.mshcdn.com\/wp-content\/uploads\/2011\/03\/node-js.jpg\" alt=\"\" width=\"225\" height=\"141\">On the 20th floor of a San Francisco skyscraper, a handful of developers are working on a new technology that\u2019s changing the way real-time web apps are built and how they scale.<\/p>\n<p>This technology, called&nbsp;<a href=\"http:\/\/mashable.com\/tag\/node.js\">Node.js<\/a>, is being hailed as \u201cthe new Ruby on Rails\u201d by some in the developer community. But it\u2019s not a magic bullet, nor is it appropriate for all programming scenarios.<\/p>\n<p><a href=\"http:\/\/mashable.com\/tag\/joyent\">Joyent<\/a>, an SF-based cloud software company, is sponsoring the growth and development of Node. It employs Node creator Ryan Dahl, hosts events and&nbsp;<a href=\"http:\/\/mashable.com\/2011\/03\/02\/joyent-node\/\">creates tools<\/a>&nbsp;for the growing Node community. Recently,&nbsp;<em>Mashable<\/em>visited Joyent to see demos from three startups that are using Node to build web and mobile apps for consumers.<\/p>\n<p>In the process, we learned a lot about how and why Node works for the real-time web ? and how Node is changing the way the developer community creates the Internet as we know it.<\/p>\n<hr>\n<h3>What Makes Node Different<\/h3>\n<hr>\n<p>Node had a watershed year in 2010, and it\u2019s shaping up to be as popular as Ruby on Rails among developers. Since the framework was built for the commonly used JavaScript, the barriers to entry are remarkably low, and the reasons for choosing Node to build apps ? especially low-latency, real-time apps ? are increasingly compelling.<\/p>\n<p>Then there\u2019s the community. The Ruby community has been criticized for being exclusive and harsh. The Node community provides a welcome contrast and embodies the spirit of many other open-source communities. Again, the framework\u2019s JavaScript roots means that it appeals to the less hacker-ish web designer who might be dabbling in web app development as much as it appeals to longtime, hardcore hackers who simply want a better way to build real-time apps.<\/p>\n<p>We asked each of the three startups giving demos at Joyent: Why choose Node?<\/p>\n<p>The common wisdom among many developers is that there is no single right language or framework that should and must be used for all web apps. But based on what we heard from these startups, Node is increasingly being seen as a \u201cbest solution\u201d for a certain type of application.<\/p>\n<p>According to Tom Hughes-Croucher, a recent Joyent hire who is writing the&nbsp;<a href=\"http:\/\/mashable.com\/2011\/03\/03\/node-book\/\">first O\u2019Reilly book on Node<\/a>, \u201cNode has popularized event-driven programming.\u201d With event-driven programming, Hughes-Croucher explains, \u201cThe actual amount of resources you use is much smaller, and you can get a lot more out of fewer servers.\u201d<\/p>\n<p>Node is all about making event-driven, low-latency, concurrent apps. Erlang, the language that powers Facebook\u2019s chat server, uses the same model.&nbsp;<a href=\"http:\/\/www.tornadoweb.org\/\" target=\"_blank\">Tornado<\/a>, a concurrent server for Python that powers FriendFeed, was an attempt at this, too. But Node has one advantage over technologies like Erlang and Tornado: \u201cNone of that was too accessible,\u201d says Hughes-Croucher. \u201cNode takes a language people know very well ? Javascript ? and makes it available to do server programming, as well.\u201d<\/p>\n<p>In traditional languages and frameworks, the communication inside the app between the web server and the database is the most time-intensive part of the transaction. Node makes a much smaller footprint on your web server. It allocates web server resources on an as-needed basis, not pre-allocating a large chunk of resources for each user. For example, Apache might assign 8MB to a user, while Node assigns 8KB.<\/p>\n<p>\u201cThe way that Node is more efficient on servers is by not allocating resources to things while it waits,\u201d says Hughes-Croucher. \u201cSay you have to talk to the database, and that\u2019s going to take 50ms to respond. Instead of assigning all of the processing resources for that 50ms wait, it just uses a placeholder. When the database responds, then it allocates the resources needed to process. That means it\u2019s totally possible to do a lot more requests at once, because you only allocate the server resources when you need to use them, not while you are waiting on databases.\u201d<\/p>\n<hr>\n<h3>Node\u2019s Explosive Growth<\/h3>\n<hr>\n<p>Unlike PHP or Ruby, Node has yet to appear as the technological face of a popular, mass-adopted web service like Twitter, WordPress or Facebook.<\/p>\n<p>Rather, Node took off in the imaginations of programmers, organically becoming the quirky new tech that was on the tip of every tongue. First, devs asked if you\u2019d heard of it; then, they started asking if you\u2019d tried it or built anything with it.<\/p>\n<p>As you can see from these GitHub reports, both the number of committers and the number of commits to Node core really took off, and there are no signs of Node\u2019s growth slowing down in the dev community.<\/p>\n<p><em>Click the image to see full-size charts, which we obtained from&nbsp;<a href=\"https:\/\/github.com\/joyent\/node\/graphs\/impact\" target=\"_blank\">GitHub<\/a>.<\/em><br \/>\n<a href=\"http:\/\/8.mshcdn.com\/wp-content\/uploads\/2011\/03\/node-commits-committers.jpg\"><img loading=\"lazy\" src=\"http:\/\/4.mshcdn.com\/wp-content\/uploads\/2011\/03\/node-core.jpg\" alt=\"\" width=\"640\" height=\"311\"><\/a><\/p>\n<p>Commits and committers to Node on GitHub peaked in the fall of 2010, but developers\u2019 conversations around Node have really just started to pick up steam since the beginning of 2011. Here\u2019s a graph showing Twitter conversations around Node; you\u2019ll notice a few spikes throughout the fall of 2010, and more consistent conversations occurring in 2011.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" src=\"http:\/\/6.mshcdn.com\/wp-content\/uploads\/2011\/03\/realtime-node-talk.jpg\" alt=\"\" width=\"640\" height=\"150\">&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u201cIf you look at Rails and Node on GitHub and compare the traffic,\u201d says Hughes-Croucher, \u201cRails had 270,000 views over the past three months. Node has 325,000, and it\u2019s only going up\u2026 it\u2019s exploding.\u201d<\/p>\n<p>There have been \u201cit\u201d technologies in the past, and the current vogue is Ruby on Rails. So what makes devs think Node is the heir apparent?<\/p>\n<p>\u201cNode is going to become the next big thing for a few reasons,\u201d said Hughes-Croucher. \u201cEveryone wants to do way more powerful apps ? things like Google Instant and Facebook. People are expected to support millions of users on a ton of devices in real time. These are the expectations people have of applications now. And if you did that with traditional frameworks, it would take forever, and the hardware would cost millions of dollars.<\/p>\n<p>\u201cThe point of Node is that it\u2019s really fast, it\u2019s really easy to scale, and the Javascript aspect means it\u2019s really easy to build.\u201d<\/p>\n<hr>\n<h3>Node for Real-Time Voice<\/h3>\n<hr>\n<p>Igal Perelman is the VP of product for&nbsp;<a href=\"http:\/\/voxer.com\/\" target=\"_blank\">Voxer<\/a>, an iOS app that aims to \u201cmake audio sexy again.\u201d It functions a bit like a walkie-talkie, a bit like a group IM app and a bit like a social\/location consumer app.<\/p>\n<p>\u201cThere is a huge reason why kids love to use walkie-talkies. It\u2019s fun and immediate,\u201d said Perelman. \u201cWe took that basic use case and improved it a lot.\u201d<\/p>\n<p>The user pushes a button, starts talking, and the message is immediately sent to the app user on the other end. Both parties can listen and talk simultaneously. Chat requests come through as push notifications, allowing the users to choose whether or not to join the chat.<\/p>\n<p>Users can also re-listen to messages in case they need clarification or missed part of a message, like rewinding a video. Another cool feature: The app supports group chats with unlimited numbers of participants.<\/p>\n<p>Finally, it\u2019s entirely free.<\/p>\n<p>Voxer uses Node because the low latency allows for near-instant transfer of audio data. Says Perelman: \u201cNode was very crucial to this, because the audio needed to be live. And Node allows us to maintain a large number of connections with very low latency. It was a quite easy decision.\u201d<\/p>\n<p>Voxer\u2019s VP of technology, Matt Ranney, told us (via the app itself, of course), \u201cThis is our third iteration trying to do live voice. We first tried C++ for performance reasons, but it was too complicated, too hard to wrangle. Next, we chose Python. It was great, but unfortunately, the Python virtual machine is incredibly slow.<\/p>\n<p>\u201cSo we\u2019ve gone to the opposite extreme. In our third version, we\u2019ve done it in Node, and we have the best of both worlds. We have the high-level language of Javascript and the high performance of the [Google&#8217;s V8 JavaScript engine&#8217;s] virtual machine.\u201d<\/p>\n<hr>\n<h3>Node for Gaming<\/h3>\n<hr>\n<p>One of the&nbsp;<a href=\"http:\/\/mashable.com\/2010\/06\/30\/hackathons\/\">hackathons we followed this year<\/a>&nbsp;was&nbsp;<a href=\"http:\/\/nodeknockout.com\/\" target=\"_blank\">Node Knockout<\/a>, a 48-hour contest to see who in the world can build the best, most complete, most interesting Node apps on a very tight deadline.<\/p>\n<p>The popularity winner for the 2010 contest was Scrabb.ly, a massively multiplayer online version of Scrabble. The game plays in real time, and the map of all the tiles is sprawling to gargantuan proportions.<\/p>\n<p>The team built the game in two days and has since made&nbsp;<a href=\"http:\/\/wordsquared.com\/\" target=\"_blank\">a company<\/a>&nbsp;out of the project.<\/p>\n<p>On the flipside, \u201cRails Rumble [a similar, Ruby-on-Rails-flavored hackathon] has been around for four or five years, and only one company has come out of it,\u201d says Fortnight Labs and Node Knockout co-founder Gerad Suyderhoud. \u201cWe had a company in our first year. Because Node is such a great technology for real-time web apps, you see a lot more games, so the results are a lot more fun.\u201d The next Node Knockout is in August 2011.<\/p>\n<p>Suyderhoud and co-founder Visnu Pitiyanuvath\u2019s entry in the 2009 Rails Rumble was&nbsp;<a href=\"http:\/\/www.lazeroids.com\/\" target=\"_blank\">Lazeroids<\/a>, but they discovered that building a real-time game in RoR was \u201ctoo hard.\u201d<\/p>\n<p>When it comes to real-time games, says Suyderhoud, \u201cThere\u2019s really not a lot that\u2019s competing with [Node]. The other technologies just aren\u2019t as good at doing real time. They\u2019re backed in older frameworks. Node was designed from the ground up for real time and to be easy to use. Other technologies would take forever to do the same things.\u201d<\/p>\n<p>\u201cYou have this giant ecosystem of Javascript that\u2019s perfect for real time,\u201d he adds.<\/p>\n<p>And as far as community is concerned, Suyderhoud says, \u201cit\u2019s amazing how inclusive it is. I\u2019ve never seen such good support. For Node Knockout, it was some people\u2019s first time using Node. We didn\u2019t provide a lot of support, but we got really lucky. A lot of people who had no vested interest and were not participants stepped up and helped people solve their problems over the weekend, in chat channels and over Twitter. I was definitely not expecting that.\u201d<\/p>\n<hr>\n<h3>Node for Collaboration<\/h3>\n<hr>\n<p><a href=\"https:\/\/gomockingbird.com\/\" target=\"_blank\">Mockingbird<\/a>&nbsp;is more a tool for web designers than a true consumer app, and it allows devs and designers to rapidly create wireframes. The interesting thing about Mockingbird is that this Node.js app is already making serious money for its creators.<\/p>\n<p>Basically, Mockingbird is a tool for collaborative drawing and real-time communication between designers and clients. It took the founders just months to take the app from concept to a working beta.<\/p>\n<p>\u201cWe\u2019ve been around since November of 2009 and launched our paid product November 2010,\u201d says CTO and co-founder Saikat Chakrabarti. \u201cWe\u2019re doing much better than we thought. We thought we\u2019d be struggling entrepreneurs for a long time, but we\u2019re very much in the green.\u201d<\/p>\n<p>The app currently has 60,000 users and hosts more than 100,000 projects.<\/p>\n<p>Says Chakrabarti: \u201cI tried to do the app in Twisted and Tornado at the time, and Node was by far the easiest\u2026 A lot of people and companies are very invested in this.\u201d<\/p>\n<hr>\n<h3>Node for the Future<\/h3>\n<hr>\n<p>Time will prove whether Node is that next big thing, but one thing was agreed upon by all parties at this roundtable demo session: Node needs a Twitter, a Facebook or some other big, consumer-friendly, mass-adopted app to make the mainstream tech community take notice.<\/p>\n<p>However, as soon as middle managers get wind of Node, it runs the risk of developing a bubble. An employment bubble would surely be followed by an employment crash, which would likely be perceived as the \u201cdownfall of Node.\u201d<\/p>\n<p>A misunderstanding of the technology is also a risk. Former Twitter engineer Alex Payne\u2019s claim that&nbsp;<a href=\"http:\/\/al3x.net\/2009\/04\/04\/reasoned-technical-discussion.html\" target=\"_blank\">Ruby was slow<\/a>&nbsp;continues to haunt general conversations about Ruby to this day.<\/p>\n<p>It\u2019s not our intention to inflate anyone\u2019s expectations of Node. And we\u2019re certainly not advocating its use for all programming projects. However, we do think that Node is an interesting, accessible and efficient technology for real-time applications, and we\u2019d love to see what comes of this framework.<\/p>\n<p>We\u2019ll especially be keeping an eye out for \u201cthe Twitter of Node\u201d ? both to critically examine how the framework performs under pressure and to keep an eye out for hype.<\/p>\n<p><em>Stay tuned for<\/em>&nbsp;Mashable<em>\u2018s ongoing coverage of Node, including one-on-one interviews and code snippets to get you started.<\/em><\/p>\n<hr>\n<p><strong>Series Supported by Rackspace<\/strong>&nbsp;<\/p>\n<hr>\n<div><img loading=\"lazy\" src=\"http:\/\/4.mshcdn.com\/wp-content\/uploads\/2009\/01\/rackspace.gif\" alt=\"rackspace\" width=\"175\" height=\"40\"><\/div>\n<p><em>The&nbsp;<a href=\"http:\/\/mashable.com\/tag\/web-development-series\/\">Web Development Series<\/a>&nbsp;is supported by&nbsp;<a href=\"http:\/\/bs.serving-sys.com\/BurstingPipe\/adServer.bs?cn=tf&amp;c=20&amp;mc=click&amp;pli=889085&amp;PluID=0&amp;ord=[timestamp]\" rel=\"nofollow\" target=\"_blank\">Rackspace<\/a>, the better way to do hosting. No more worrying about web hosting uptime. No more spending your time, energy and resources trying to stay on top of things like patching, updating, monitoring, backing up data and the like. Learn why.<\/em><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The source of the aticle is http:\/\/mashable.com\/2011\/03\/10\/node-js\/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+Mashable+%28Mashable%29 &nbsp; Why Everyone Is Talking About Node March 10, 2011&nbsp;by&nbsp;Jolie O&#8217;Dell94 &nbsp; The&nbsp;Web Development Series&nbsp;is supported by&nbsp;Rackspace, the better way to do hosting.&hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/896"}],"collection":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=896"}],"version-history":[{"count":0,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=\/wp\/v2\/posts\/896\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=896"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=896"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.goorigo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=896"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}