 This is theCUBE, SiliconANGLE's cutting-edge internet TV show where we're covering all the latest and greatest in technology. Today we're in San Francisco at the first Node Summit, an event dedicated to Node.js. And I'm joined today by the guy who literally wrote the book on Node, Tom Hughes Croucher, the author of the forthcoming Up and Running with Node from O'Reilly. And also here with John Furrier, the co-founder of SiliconANGLE. Welcome to theCUBE, well, what do you think? You're in theCUBE, we're relaxing. So you wrote the book. I wrote the book. Don't write a book, I don't recommend it. It's good that it's done. Yeah, yeah, it's good for speaking gigs, you know? You get the book out there, I know, but seriously, Node's been such a huge success just recently, just rising really to the top of people's minds and hearts of developers. What's the phenomenon about why, why so fast? I think it's been really interesting. I mean, I spent the last two years traveling the world talking about Node for both Yahoo and then for Joints, who of course sponsor Node, and just seeing the shift of the developer mindset. Ruby's been really popular, people have bought a lot of great things with Rails, but it's no longer acceptable to have a slow app. Everybody wants thousands of users, everybody wants real time, and that's the reason that people are shifting to Node because they need that high performance, and they need to be able to present a company that can, hey, scale to 10,000 users, 100,000 users, a million users. And if you look at the kind of startups that are really doing stuff with Node, like Voxer, they have millions of users making phone calls using the system, and it's like, that's pretty incredible. So yeah, I'm really amazed at the continued growth. So let's talk about that mindset. So this is something that people are trying to get their heads around outside of the community. The mindset, obviously with IO, we were talking earlier with Matt about Voxers getting that low latency number down, down to the bone as fast as they can, pushing the envelope on that. But talk about the mindset, what is that mindset? Is it all about just thinking differently around coding? Is it around more architecture? Is it systems programming, all of the above, multiple languages? What is that mindset that's different from where it was? I think primarily it's the architecture, and I think it's this fundamental assumption. A lot of the architectures that we have have been this legacy that's come from like the batch computing days, like literally punch cards, where the entire architectures we've been using to build internet applications are based on these multi-user mainframes where the CPU used to be sized between the different programs for each user. And we no longer have that problem. We now have this problem where we build applications that facilitate communication. And it turns out that the networking piece is the hardest piece, and it can't get any better because even when we hit fiber, fiber is still constrained by the speed of light. We can't go faster than the speed of light. So at some point, even if everybody has fiber in everybody's homes, it's still going to take whatever it is, 50 milliseconds to get from here to Hong Kong. We can't make that faster. And that constraint is this real constraint that everybody's been ignoring up till now. And Node really has made it easy for people to deal with that constraint, to take that thing and kind of create an architecture where anybody can code in a way which doesn't care about this network IO problem. So it gives the developer more back-end-like capabilities with that constraint and as benefits, it increases their range of capabilities. Matt called in a nice line in our last interview just now was he treats HTTP like a first-class citizen. Right, exactly. And talk about that role. I mean, that's a protocol that's obviously standard. Talk about why that's now a first-class citizen. Well, and I think this is, I mean, again, like many languages have this kind of historic culture where they've picked up a bunch of stuff. JavaScript didn't have any real success on the server until Node came along. I mean, some people were using it for a few things but you enter the JavaScript conferences and it was a few people doing a few things. With Node, we now have this large body of people that have suddenly embraced a new way of doing this coding where Node has specifically been designed to serve websites. It's been specifically designed to do internet applications. So it's not just taking the JavaScript as a language, it's saying, hey, we want JavaScript to do this thing really well. And Node's sometimes criticized because it doesn't do some specific general-purpose application that Java or something else does better. We don't care. The thing that we're really interested in is this large problem that lots of people use the internet and lots of people use the web. And if we can do that one thing really, really well, then we're going to save or make a lot of people a lot of money and create a lot of good things in the world. Yeah, so it's not so it's diverse devices and connections. You guys just standardize on that HTTP and the server capabilities. And I think this is kind of, you can see that in something like LinkedIn. LinkedIn switched their mobile services to using Node and that had an extremely dramatic impact because the connections that mobile phones have, that cell phones have is so poor. So in that context, switching that context has a much higher benefit than a different context such as services to server communication. Are we really talking about the mobile web here? I mean, all the key themes and use cases seem to be highlighted on mobile. I think mobile's a really huge use case. There was some really interesting statistics I saw recently that talked about the sort of the shift between the amount of users that have internet through their cell phone device versus internet through their broadband device. And that's shifting in the US. It's definitely shifting in the emerging markets. So I think there's increasingly, that's going to become an important topic where most users have, especially in the areas where people don't have internet, so maybe less affluent backgrounds, they still have mobile internet, even if they don't have broadband wide internet at home. And that brings up the whole mutually exclusive argument. I'm on a mobile device, but also I might have three or four other connections going on at the same time, and the data needs to manage that. So does that address a well-in node, and we just talked with Voxer about that, that they got to save all the messages, someone's on a mobile phone, they also want to move over to the browser. What's the backend data flow look like? So I mean, note doesn't solve all problems of scale, but again, I mean, this is a key part of internet applications is that a lot of what we do now is we shuffle data around. So in general, if you think of an application like Google, as a sort of the canonical web application, if I typed in a search query for cats or something, and then Google went out and searched every web page for cats in real time, it would take a month for them to go through all of those web pages. So instead, they compute a search index, and they can turn me a result in a matter of seconds. All of that's about shuffling data back and forth. It's not about the actual computation anymore for the user, it's about how do we go and find the information that we've already have? How do we go and find the information that's specific and is the information that the user wants? So it's stored somewhere, and it's how do we route to that information? So that's the real question. That's the real problem that we're trying to solve for these sort of current up-to-date internet apps. Talk about the impact. Let's stay on that mobile thread, because I think that really is a huge, and everyone now is shifting to mobile, so it's not just about web on the browser anymore, it's actually you got to have that device access point connected. Obviously, it's really a two-horse race with Apple and Android. Where are these guys weighing in on this? And we saw a great demo from Brass Monkey about their gaming, very cool app, this browser, doesn't work with Apple TV. So there's issues. Apple, not known for their JavaScript support, really well. I mean, they're always dicking around with standards and want to control it. What does that mean? I mean, is it going to... LinkedIn, is it bottleneck? Is it a problem? Not a problem, and Android a little bit more open, that's mature than Apple, but open. What's all this? What's your views on all that? What we can see is that clearly the cloud services are playing an increasingly large role in mobile apps. So for example, Siri, as an Apple product, wouldn't be possible without cloud. Siri is simply, it has some very limited on-device capabilities, but really in order to do any kind of significant functionality, Siri relies entirely on cloud services. So the idea of a cell phone that's connected to the cloud is becoming this increasingly important topic where, I mean, for example, the LinkedIn app, of course, we know users' node, but it relies heavily on these APIs. So the data on the device itself is extremely limited, and it's then going to the cloud to do that. So we need to do that in a really efficient, scalable, effective way to support all of the users, support all of the different devices. And that's where Node really comes in. And I think, I mean, there's a company I'm advising called Webmobi, and the idea is to build a platform which is sort of a, you know, mashing up phone gap apps plus cloud APIs. And this is the kind of space where we're looking to make it easy for people to take an API and take those kind of cloud services that people rely on, and then have that replicated into the device. Like, how do you pair those things together? And these are where applications are going, where we rely on the big data, the big compute, the big services that we put into clouds like Joint and Amazon and Rackspace and all of those places where the server farms are doing all the processing, but then the representation to the user is happening on the device that they want. And the actual functionality you can keep on the device is entirely dependent on this data that we're pulling in from these cloud services. So this is the mindset that you're talking about, this notion that, hey, let's re-look at the architecture, leverage the fact that we have more powerful devices at the edge. I don't want to call them fat clients because they're really thin, but they're powerful and the CPU's getting better and stronger, the network's the bottleneck. Is that correct? Is that what you're saying? Well, I think this is the thing. So if I, this is my phone, I have an iPhone, this is actually the four, not the four S. And the thing that's interesting about this is this device is like $800. $800 of computing power in a server farm is just unbelievably more powerful. The difference in power between my cell phone and $800 in a server farm is astronomical. And this is, you know, why would we, when we have these really powerful communications channels, why would we possibly constrain what we can do on the device based on the computing power on the device? Because pushing that small, battery efficient computing power to the device is really expensive comparatively. So what we want to do is we want to use and utilize all of this network infrastructure that we have. And with 4G LTE and like all of these other things coming into play, we're having more and more network capabilities and nodes really sitting there in the middle facilitating the communication between these high performance things on the device, you know, the fancy graphics and all of that, but shuffling the data back and forth between that and the high performance cloud computing. And, you know, using Hadoop and big data to compute, you know, using many computers in the cloud cheaply. So that's the kind of the difference where it's like, yes, we want to do amazing things, but we still need this thing in the middle to connect them. Yeah, and that's cool. And you can optimize that. But the question back to Google and Apple, are they standing in the way or is it not really a factor? Apple and Android? I think it's less of a factor. I think, you know, we'd love to see node or more platforms. I mean, obviously, sort of HP put node into WebOS because they really saw, you know, they really saw a value there. And whatever the success of that product, I think it's inarguable from a technical standpoint that it didn't have a significant impact on that product. It didn't add a lot to that product. So I think what would be really interesting to see is, you know, whether there's going to be some, yeah, whether there's going to be some more bets on node and certainly there are people that are putting node onto Android devices in various different forms. Well, if the developer community continues to get the acceleration that it's getting, I'm sure there's going to be not just pressure, just social proof to these guys that it's going to work. Just to kind of change gears on that thread, I got a message from one of our younger readers and watchers, an entrepreneur, a young guy, a coder. He's asked the question, should I learn Rails or should I learn Node? What should I do? So you got a younger generation of kind of CS guys and or coders, or hackers and CS dudes who like, hey, I don't mind jumping in and learning four or five different languages, a piece of cake, but should I learn Ruby first or Rails first or should I learn Node? And I think, I mean, I would say that, I mean, obviously sort of a node summit, we probably have a bias, but one of the things that's really nice about Node is that JavaScript is ubiquitous. If you learn Node, then you're learning JavaScript and if you know JavaScript, then you have this ability to work both with Node on the server and have this kind of high performance environment that's getting all the press right now for good reasons. But then you also have the ability to work with that same language and build all these kind of web applications. And I think that's a really compelling argument for some of the younger readers, is if you're going to learn something, learn something that's going to be reusable, I think it's going to be interesting to see Ruby and Ruby on Rails, how much that proliferates. Like as, if Rails continues to stay popular, then maybe it will, but is Node actually going to be a really tangible threat to sort of Ruby on Rails and Ruby is the indie language. As this becomes more popular, as Node has made JavaScript a more viable server-side language, that may actually be a really tangible threat. And I mean to the point where there are more people on GitHub that follow what's happening on Node than do Rails. And that's pretty interesting considering the relative ages of the projects. And you see similar things on Google searches and other things. And we're here inside theCUBE. I'm John Furrier, the founder of SiliconANGLE.com. We're here at Tom Hughes Crocker with Clint Finley, managing editor of now DevOps Angle, our new dedicated publication to DevOps, which is Node, which is this new emerging greatness around cloud, new architectures. Having a fantastic conversation inside theCUBE, our flagship telecast, we've got the events. Let's talk about your, what you're doing right now. Obviously you wrote a book about Node. You're doing a lot of evangelizing and working within the community. What are you up to now for your work? So I spent a long time at Yahoo, building really large sort of big websites with lots of users. And it was very lucky that I got to spend some time working at Joint with Ryan Dahl, who created Node. But for me, it was a chance to kind of go out and see what some of the other folks in the industry are doing. So I'm currently running a company called Jetpacks for Dinosaurs. And using my experience and my colleagues' experience working on very high performance websites and specifically with Node, we've been working with some really exciting clients that are building some fantastic things with Node, solving some really big problems. So earlier in the week, we've heard from the guys at Walmart, and Walmart Labs are really pushing the boundaries of what can you do with the resources of a large company to really innovate and to really take some of those things. So I can't speak for Walmart, but certainly the things that the Labs team are doing are really exciting. And I think the perspective that I'm seeing is that there are an awful lot of startups and existing kind of bigger companies like Walmart that are looking to really take something like Node and push the boundaries. They're really looking to sort of, if I'm a startup, how do I really kind of scale my users? How do I build a product that scales fast? And if I'm a big company, how do I take some part of my application that I have and how do I make it faster and more efficient and grow that and spend less on resources? Let's talk about startups. Okay, so there's a lot of young entrepreneurs here. We're here at the Node Jam on day two of Node Summit. So, you know, in the other room in there, they're presenting their elevator pitches and whatnot to the crowd of VCs and audience. What's your advice for startup? I mean, a lot of these guys are, we saw some students from Brown and Notre Dame and some other colleges here. We got some young hackers, some CS dudes. What's your advice of startups with playing with Node and around development and going to market? I think Node's a really good place to be right now. And I think actually a lot of the VCs that are actually kind of looking at it are looking for people that are doing Node because they're recognizing that people that are doing Node have a technology skill that's going to be very applicable in the future. And I think I've even seen now already that people that have done startups that have used Node, even if the startup hasn't been successful, there's a person have become valuable because there's such a demand for skilled Node engineers now. So I think there's a, particularly for the younger audience, there's a real opportunity there because Node is becoming the next big thing very rapidly. And you know, we've seen from just from the summit a number of large companies hiring Node engineers. So there are really great opportunities based on this technology. I think in terms of startups, the thing that's really great about Node is it's allowing startups to kind of pitch out of their league effectively. So typically you don't have to raise as much money because on a couple of servers from either join or Amazon or whoever, you can host a startup that will scale to 10,000 people without trying too hard, with some simple technology with Node and maybe Mongo or Redis, so like a few things. And you can really start to have that first 10,000 users that's going to help you raise money without necessarily having to go out there and spend your college trust fund or spend the money that you're earning. So there's really a good opportunity now for startups to be really effective without having to necessarily get too much money. And I think this is a large part of what we're seeing with the increase in angel funding, the increase of people that are getting very small seed rounds is because they are able to do a lot more without having to go and ask for a million dollars to buy a lot of server resources. And also I would comment on that, totally agree by the way, we're totally in the same religion there and it's really great for entrepreneurs and it's great for society. But one thing I'm noticing with Node is that the scale point for success is increased. As you say pitching out of your league, meaning when you get a prototype up and running you get something out there and then shit hits the fan and starts breaking and you don't have your VC money, you can do more with this. So you can actually do a little bit more back end headroom if you will, if you think about it properly. Would you agree with that? I would absolutely agree with that. And I think this is kind of increasingly I think what you're seeing is that the products that people are taking to investors are much more developed. They're much more sophisticated. And I think in general, tools like Node are giving people the ability to really push the boundaries of what's kind of considered a successful pitch. Are you in the Bay Area? I am in the Bay Area, I'm based in San Francisco. Well we have one minute left so we want to wrap up but I wanted to say really enjoy the conversation. I think we want to talk to you more with our DevOps angle as we get more into this. Just on a final word, what's your feedback to the folks out there around what's the community like around Node? Obviously we're seeing great tight knit, a bunch of people small still and growing. What's the community like with Node? I would say the Node community has pulled some of the best people from a lot of other communities because they see this as an opportunity to really do things right. And I'm really excited because I've never seen a community grow this fast and I've never seen one that's been quite so respectful. So I feel like the Node community is really embracing if you're not sure what Node's about. Try the mailing lists, try the chat rooms and you'll find a place where people will openly welcome you and really help you get started. I think I would add, respectful is a great word, I would also add professional. There's a lot of professional and range of, it's not just one class of folk if you will. So the Node community's respectful, professional, great stuff, Tom wrote the book. Thank you so much for being on the queue, appreciate it. All right, we're going to take a quick break.