In this episode of Herding Code, the guys talk with avid open source contributor Tim Caswell about Node.js for which he is a community leader.  Listen in as the guys dig into node.js and what it has to offer.

  • Tim gives the node.js elevator pitch and begins to explain what node offers - like event loops, evented IO, callbacks, non-blocking requests, high concurrency, and real-time scalability.
  • K Scott shares that Tim's wheat blog engine which sits on to of a Git repository was implemented using node.js.
  • Tim notes the greatest use case for node is still web development and touches upon how it differs from other framework like ASP.NET and Rails.
  • Scott K explains that he thinks of node as an abstraction over network programming and shares his excitement around the hundreds of interesting frameworks and modules developed with/for node.
  • Jon prompts Tim to talk about the node knockout competition and the various contest submissions.
  • Kevin asks for further explanation of evented IO and Tim provides further detail using a dentist waiting room analogy.
  • Jon asks how one troubleshoots callbacks and loops and how one manages state with node. Tim explains event based programming and why node.js came about.
  • K Scott asks if server-side js interest has recently exploded due to HTML5, web sockets and leaving connections open to the server. Tim talks about long polling and thread counts as opposed to the the node approach.
  • Jon asks Tim to speak about his extensive community contributions - namely his sharing of 47 repositories including wheat, step library for flow control and hamel.js.  Not to mention the howtonode blog.
  • Scott K and Tim talk about sharing javascript code between the server and client.
  • Jon asks about kiwi, npm and node package managers.
  • Scott K asks how the node.js and server-side javascript got so popular. Tim turns to the need for a real-time web solution, social media and community involvement and Ryan Dahl's appealing personality and unique design strategy.
  • K Scott asks about Tim's tutorial on learning javascript through object graphs. Tim explains the importance of understanding that javscript doesn't operate like Java and the guys talk about jQuery's impact in learning (or not learning) javascript.
  • K Scott talks about a time before kids when IBM released an OS in javascript.  Or was it Sun's Lively Kernel?  Either way, it was before kids. You know what they do to one's memory.
  • Kevin speaks of the early, hyper-experimental days of node and asks if the community is starting to settle down and standardize on a set of libraries.
  • K Scott asks for Tim's thoughts on ECMAScript.
  • Via Twitter, Jackson Harper asks about no.de, a submission by Joyent into the node knockout competition, and it's current status.
  • Jon calls out Couch and Mongo and the NoSQL movement and Tim to share the node data story. 
  • Scott K and K Scott talk about running Node on Windows.
  • Scott K dreams of IronJS and porting node modules to the DLR.
  • Jon asks how you get started with node  and Tim recommends the friendly IRC room, the friendly mailing list and suggests a newb move to San Francisco and attend the frequent meet ups.
  • K Scott asks about Tim's everyday development environment and tools.
  • Kevin asks about the Node.js sweet spot. Is it for basic web development or is it geared towards more complex, real-time scalability problems?  Tim discusses the perks and challenges of Node.js in any development undertaking.
  • Scott K throws out the "E" word and asks about node's penetration of the enterprise.
  • The show wraps with general conversation about node, Harmony and Javascript and Tim kind of misses his opportunity to pimp.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 102: Tim Caswell on Node.js

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0102-Tim-Caswell-on-Node-js.mp3]