 Welcome back to Node Summit Live from San Francisco, California. I'm John Furrier, the founder of SiliconANGLE.com and SiliconANGLE.tv, and this is theCUBE, our flagship telecast where we go out to the events, live stream and talk to the smartest people we can find, entrepreneurs, thought leaders, executives, venture capitalists, and extract the knowledge and share that with you. And I'm joining with Clint Finley, the editor of DevOps Angle, which we launched today, and we're here at Node Summit, the inaugural conference for Node.js. And we try to talk to the smart people, and sometimes we get the inventors. And we're here with Ryan Dahl, the inventor of Node.js. Ryan, welcome to theCUBE. Hello. Hi. Okay, so we've interviewed Doug Cutting in the past, inventor of creator of Hadoop. You created Node.js. Obviously, huge success. We had a chance to talk on Monday night at the Thirsty Bear and tell some of the story, but really want to say just congratulations for just doing some great work, and it's evolved into its own budding ecosystem and industry. So I want to first say congratulations. Thanks. So tell us the story of Node.js. Why did it all come together for you? Just for us, tell the folks kind of how it all started, and take us through the life of how it all began. What problem were you trying to solve originally? So I guess the original, original problem was a long time ago when people were trying to figure out how to do uploads via HGP. And it used to be that if you uploaded a file, you would kind of post to the form, and it would just kind of freeze up on you. You wouldn't gain interaction. Maybe at best you get a little spinny dial or something. But these days you get a progress bar that kind of says how much you're uploading. And at some point, I would guess 2006 or so, I saw a demo in probably Flickr, although I can't remember exactly, where they actually showed this. You would post an image and you saw the progress bar going, and it's just blown away. Like, oh my god, how do they do that? And you would think, oh, the web browser obviously is sending a file via some socket to some server. The web browser obviously knows how much of the file has been sent, so it's exposed by the DOM. But it's actually not exposed client side to the user. The way that these progress bars are, is that as you're uploading a file, you reach around on the side and ask the server, how much have I uploaded? How much have I uploaded? And the server responds, okay, 3%, 5%. And so in this way, the user can kind of see how the progress bar is going, how the upload is going. Solving this problem, doing this sort of thing in the web stacks that were around at the time is difficult because it requires handling multiple requests at the same time, right? Somebody's uploading this file that could be going on for several minutes and at the same time, you have this extra request coming in that needs to respond concurrently to the upload. Turns out that a lot of the frameworks were designed in a way that they made the assumption that a request response is something that kind of happens instantaneously and that your entire web development experience should be abstracted as a function that you get a request and you return a response and that is the extent of your context. So Node was originally born out of this problem in thinking about this and how can you handle these two things at the same time? And obviously there's many different ways of doing this but non-blocking sockets is one way. And so Node is more or less the idea that exploring the idea of what if everything was non-blocking? What if you never waited for any I.O. to happen? You just use only non-blocking I.O. What falls out of that? And pairing that with JavaScript. And turns out you can make a web upload progress bar with this among other things. But it basically comes out of the, turns out a lot of problems can basically be summed up as this sort of interactive websites where you need to do more than one thing at a time whether it's a chat where one person sends a message and you broadcast it out to everybody else or if it's a game where you're moving around and you need to relay those movements to other people it's all more or less the same problem. You need a programming environment that somehow abstracts, it gives you the right abstraction for dealing with all of these different events happening. When did you see Node start to really get the lift up? And I'll see you where you're taking it around you're playing with Node doing these things you're mentioning. When did it kind of start clicking like wow this is really going on? So in early 2009 I had this idea I was like okay JavaScript and non-blocking IO. Great, let's put those together and see if we can build something useful with it. And I worked on that for about six months maybe a bit less, four months or so before I had like a demo that I could start using and kind of as I was developing this I built a chat application at the same time. So kind of with the framework I was building this chat thing. And after some time I just realized like wow this is like 200 lines of code and I've got this chat server and it's purely JavaScript. There's nothing other than JavaScript in here and it's just like oh wow. Wow this is actually going from something just kind of playing around with the idea, neat idea, kind of academic maybe even to something where you realize that holy crap you can actually build things in a reasonable amount of time with this. So it was a performance like at that time you're like wow this is actually fast. Yeah I mean it was good enough to handle tens of clients and have no lag basically. So good enough. Performance with Node we spent a lot of time making sure that we're not doing anything overly stupid inside of it. So we care about performance a lot. Turns out that the 10x improvement that we got by doing non-blocking IO that was the big choice. Since then we've been trying and trying and trying to explore other ways of doing performance but you know and we've gotten some wins here and there but more or less the performance has been the same since the original design. So what happened next? Okay you got to show people this right? So they're like hey you call your best buddies and say hey look at this as well. Right so at this time like JavaScript I think these days it's recognized as kind of a language but a couple of years ago it was not really that way. It was this weird browser thing but it was just beginning to be recognized as you know Crockford came out with this book JavaScript the Good Parts and people started thinking oh you know actually this is actually a programming language. You could actually design programs with it. Gmail was written. You had these big complex applications being written in JavaScript and with that some sort of respect for the language. So the JSConf was created by Chris Williams in 2008 I believe and the European version of that came out in 2009 and so I wrote them and I was like oh I got this demo. I really want to show this off at your conference and they wrote back and they're like yeah yeah sure you know got me a slot there and so I finally showed it off at this European conference and it went really well. I gave the standing ovation wasn't there? Yeah supposedly that's what they tell me. I was extremely nervous. I mean I had been working on this thing for just like many months and I was like super nerdy about it and it's just like I had been practicing my presentation for like weeks before that it's just like very very wanting to show off you know what I meant by this because I felt like if I started talking about non-blocking IO and blah blah blah everybody's just going to like zone out entirely. What was great was that I had a demo of a IRC server written in Node so people could connect with non-web browsers just with their IRC clients and connect to the Node IRC server and start chatting and which thank God I mean this demo worked because I felt like the entire talk was very philosophical and kind of abstract but then you see like oh holy shit here is an IRC server written in fucking JavaScript and it's 400 lines of code and this is something that kind of Yeah people are like wow that is really something new actually. People have been doing JavaScript on the server side since the 90's so what was it about V8 and Node.js that made the difference that now people are really excited about doing JavaScript on the server side. Right so yeah as you said there's been a lot of server side JavaScript none of them have stuck several reasons one they kind of had this very traditional model of how you present the server to the user this request response you get a request you do a bunch of stuff then you return the response but you don't acknowledge the presence of other requests going on concurrently to you so it has this very simplified model which is fine and works but was not enough of a differentiator from Ruby on Rails and Django and PHP to really mean anything to people it was like oh cool I could do it in JavaScript but you know I've got Rails here it works fine it's not that big of a deal to think in Ruby and in JavaScript the other aspect was it was all in Rhino which the JavaScript interpreter on top of the JVM which is notoriously slow and it wasn't until 2008 when Chrome came out that people started realizing that oh wow companies are putting a lot of effort into improving the JavaScript performance to the degree that you had the very professional teams working on these virtual machines so now you have in 2008 Chrome comes out with V8 and you realize oh wow okay so Google is really pushing JavaScript performance and they see this as a way of dominating the market if they can make JavaScript faster people will start using their web browser because Gmail runs faster and suddenly Mozilla is put on edge and they have to now make their JavaScript their spider monkey, yanger monkey stuff work faster and suddenly it becomes this benchmark contest and Microsoft as well needs to now step up its game and start making this fast and then suddenly JavaScript is faster than Ruby and Python like basically overnight and so it seems like in 2008 this is a very good language to start investing in you get very good compute performance out of it and so it was at JSConf you presented all this at JSConf here's no JS here's how it's different than the old server side stuff and that's how it took off it was just people saw it there and just went nuts with it yeah so as I said I had been working on this for a long time and by this conference I was basically like out of money like I could no longer afford to work on this project full time just on my own so I went around looking for sponsors for the project so that I could continue to work on it and various people were interested in doing this and I went around and talked to a lot of people but the most promising one came from Joian who were like oh you know we build this data center software and what we want is we actually want node to be used for our data center software like we don't really have an interest in monetizing node itself but we want our software to run well and this is a perfect thing for building our own data center stuff and so this sounded great to me because little programs sitting there responding to events little demons sitting around the data center doing various things sounded like a very good use case for node so I teamed up with Joian and moved to San Francisco and have been working on it full time since then and it's just been kind of a constant progression of pushing this technology since then fixing bugs and introducing it to new companies and convincing people and talking to them about it and I think we've had a fairly good linear growth for two years or so which is pretty crazy. What have you learned for the folks out there who are open source is a great for a lot of innovation so what can you share with the other folks out there who are working on open source that work hard and want to do a project might have a success like a node not directly competing but you know what I'm saying like people out there working hard what can you share with them lessons learned or things you wish you could get back and do differently or not do differently what would you share with other folks out there working on some of these great new open source stuff? I think there's a lot of people who I think one thing that we've done very well in node is integrate other people into the community and just be very open about what we're working on and trying to bring people into the project so I've spent a lot of time people will contribute a patch which is not necessarily appropriate for node style is bad it introduces other bugs it's really big or whatever it's some feature that I could hammer out in a couple minutes because I'm totally familiar with the code base but I'll spend the next week going back and forth with these people saying okay fix this and fix that and then they'll give me another revision and I'll say fix this and fix that and just kind of going back and forth and talking about how they could get it into the code base because when you come to a new code base when you're just a random person on the internet and you're contributing to an open source project you don't know all of the things going on in that code base right so there's something that needs to you need to be stewardship you need to get introduced to it and I think that a lot of projects will kind of reject these sort of contributions or not take the time to really integrate these people to it but you know if you do this and you spend a week with somebody and get their patch in and make sure that they're on the authors list and everything then you have a person who now knows how the code base is going and can start contributing more that's what you're saying spend the time embrace the people coming in who want to work and work them through it help people get involved and help show them how to contribute to the project if they want to spend an hour of their time doing a patch for your project you should spend a week of your time pulling them in and hopefully you're going to get somebody who then contributes more that's great and that's always great about communities shows your commitment and brings them socializes them into the project yeah I mean the community of note is really where it's at right the runtime itself is possibly nice but you know the community modules and all of the people that we have is what's important okay so now this is where I put you on the spot and you could be political and it's okay I won't be offended if you don't say any names but of all the companies here which ones are your favorite that you say not from a company standpoint but like coolness like that's a cool thing of implementation of Node okay so the one that shocked me yesterday was TileMil which is doing a mapping application so you can make custom Google Maps type type mapping applications with you know data points and what not but you can you actually build these things on locally on your desktop so they made a Windows application using the Node port to Windows have this desktop application with Node inside of it that allows you to kind of create a map and then generates this file that can then be uploaded to a server where they're posting it also with Node and display these maps so they have this great database of all these different maps that you can kind of overlay with each other and this great desktop product and it just looks amazing it's just something I don't know I'm always amazed seeing these things just like wow I would have never thought Node would be used and we actually had those guys on the cube yesterday so anyone who's watching right now you can find that interview Mapbox is the name of the company Mapbox? Mapbox I thought it was Tile Mill? Tile Mill is the program Mapbox is the company and yeah you can find our interview with them on Silicon Angle TV Yeah and we also talk with Voxar too which is getting a lot of traction as well what do you think of those guys? Oh yeah so Voxar is our biggest customer so to speak because they are just pushing massive amounts of data through Node they have this big distributed system with hundreds of Node instances doing voice over IP through this thing so they have this walkie-talkie app you click the button you say hey what's up blah blah blah and it gets distributed to your followers but voice it goes up through Node and gets spread out and then down into React and so they're just pushing massive amounts of data through Node and they're finding problems they just recently in November started really blowing up with many users and so they're finding a lot of our biggest problems at scale so they'll find seg faults way before anybody else does and so we're in close contact with Voxar they are Quite impressive they're driving our kind of emergency fixes I think they're embedded in the code base that's the greatest we had Matt's great guy we talked to him last night too he shared some kind of inside baseball and some of the numbers which we didn't talk about in the cube they wanted to respect this privacy but a very big success story great growth there so anything that surprised you here at this conference that you go wow not just companies but just in general just the pure I mean this conference was really about showcasing you know what's going on and making sure that it's visible to you know outside of the Node community the number of projects going on and I of course am in this community and I've talked to a lot of these people here but even so like sitting there in the last session here and just seeing company after company after company like with their product that they've built in Node and you know this thing and this thing and this thing and it's just like it's very overwhelming a lot more than I've heard about and I'm just I don't know it's just shocking while the community is very respectful and professional we really enjoyed meeting a lot of the people here we haven't talked to all the companies we've talked to most of them just great, great crowd I mean good people doing some great work and the apps are going to change hopefully society and make the world a better place and make them do more with more resources and less cost so it's a huge, huge win I think just the beginning I guess my final question will be to you is what's next in your mind and the vision of Node and as this ecosystem starting to develop out and flourish further what's next for Node? So we're very much focused on growing the community and making sure that the experience for people coming into Node is a good one and for a long time growing the community meant making Node itself better like fixing bugs and fixing performance and making sure that it compiles on, it runs on Windows those were our bottlenecks for a while but now actually it's running pretty well it runs on Windows we have installers for Macintosh you can go to the website you can download it that's no longer our bottleneck what our bottleneck is is bringing in all the third party modules and building a website where people can go to Node and discover everything all of the various modules that you can just kind of plug into your app we have over 6,000 modules now for Node and it's becoming a real problem that people come to it and they're like oh I need to connect to my SQL there's 20 options like am I going to sit down and evaluate all of these code bases? No, you need some sort of rating system you need some sort of way of showing people what is the best one what's the up and coming one you know which ones are total shit and you should not use and we just need to make that all very very clear to people immediately and that's what we're not doing a good job at right now and that's what we'll be working on well we'll certainly help you get the word out and anything you need from SiliconANGLE we're looking forward to working with you guys with DevOpsANGLE we're going to cover you guys and be part of that community we love it, great success we're here inside theCUBE I'm John Furrier with SiliconANGLE.com with Clint Finley and Ryan Dahl the creator of Node.js huge momentum, great success a lot of value, great performance and we're excited to be here at Node Summit live in San Francisco so we'll be right back with more interviews in five minutes