beginnings to become an important and full-fledged development
James Duncan (@jamesaduncan), the chief architect at Joyent, is one of
through the Node.js platform.
In the following interview, Duncan shares his thoughts on
For a lot of us who have been in the industry for a while,
James Duncan: The big change started when Google
launched Maps. All of a sudden, there was this highly-interactive,
highly-usable, fun-to-play with web interface. It just blew away
almost every other map provider’s offering, and it was all constructed
millions and millions of edges of our network. If you think of every
all of them. Every web browser has it, every smartphone has it.
In the same way that C has become permanent at the systems level,
edges of the network, it really can never be eliminated. For better or
first-class programming language, though. Some vendors that use it for
scripting in their products pitch it as an easier language to
programming community the “dark development team in the sky” because
everyone actually has. I can use this same positioning to explain why
it’s important: You walk into an enterprise and say, “Why are you
doing all of this high-ceremony .NET/Objective C-style development?
you already have the skills. That makes it an easier sell.
much defined by what it’s embedded into. Because it originates in the
browser, we think of it as being easy and unsophisticated, but if you
dive down, it absolutely is sophisticated, capable and powerful. It’s
just that our mindset — and certainly the corporate mindset
the next iteration of the same problems?
James Duncan: You’re right, the browser
environment is a nightmare. That’s becoming less true just because of
the nature of libraries like JQuery
and Prototype. Those
libraries have improved circumstances so that, for the most part, if
someone’s writing code in JQuery and really sticking to JQuery,
they’re probably not going to have many problems anymore. Or if they
do run into issues, they’re either impossible to fix because something
is fundamentally broken or the fix is trivial. There doesn’t seem to
be much in between.
HTML5 is fascinating. If you look at things like WebSocket and the
Web Worker specs, they seem to be implemented pretty uniformly from
browser to browser. So I think it’s getting better. The browser
vendors have learned their lesson: Trying to fight the standard isn’t
sensible. Even Microsoft with IE has gotten much better with this
— they’ve got a long way to go, but they’re much better than
We’re currently seeing somewhat of an arms race regarding
James Duncan: The cool thing is that we’re just at
the tip of the iceberg. There’s no doubt we’re going to see huge
performance improvements, which we’ve already seen in part over the
last year. It’s going to plateau eventually, but I think there is still
room for it to get faster and faster. We’ve had decades of compiler
research going into making the fastest or most optimizing C compiler possible.
That sort of research spend has not happened for dynamic languages in
non-academic environments before, with the possible
still going to see performance improvements.
A hot topic in computing is parallel programming in languages such
join the party?
James Duncan: Node, in some ways, has a similar
view: it’s all asynchronous-based programming, all asynchronous IOs.
Where it steps away from what Erlang is doing is that it explicitly
says, “You shall run as one process.” You get one CPU to play with.
What we’re going to see inside the Node space is some capability to
have messaging between CPU cores and, therefore, Node processes
running on different CPU cores. I don’t know if anyone’s going to go
to the same extreme as Erlang, but some of the things Node is doing are
James Duncan: For me, the two points are: One,
don’t break the web, and two, it would be great to see some sort of
concrete class system. That’s not to say I dislike the prototype-based
confused by its capabilities. Rather than understanding it as sort of
a liberating thing, they see it as a limiting thing. Putting some
syntactic sugar around classes would go a long way toward easing
people into the language from other sources.
This interview was edited and condensed.
Associated photo on home and category pages: Node Globe Pics by Dan Zen, on Flickr
Learn about Node.js this July at the O’Reilly Open Source Convention in Portland, Oregon. For a comprehensive orientation to Node, attend Monday’s Node tutorials and then join us all day Tuesday at Node Day for total immersion in the people and technologies making up the Node ecosystem. Save 20% on registration with the code OS11RAD