NodeConf 2012 was my first real “developer” conference. I had attended conferences in the past, but because of the heavy sponsorship of industry, most had felt like trade shows or job fairs. NodeConf was advertised as a conference for developers, by developers; Mikeal Rogers, the event’s main organizer, boasted that NodeConf 2012 would feature more core committers as presenters than any other Node.js conference.
As the event grew closer, my curiosity about what NodeConf would entail heightened. Mikeal didn’t divulge a clue as to the event’s schedule, and even perusing the twitter feeds of probable speakers and NodeConf’s site on lanyard didn’t reveal any helpful intelligence. At the opening party on Sunday, a general sense of cautious curiosity permeated the crowd. No one had ever attended a conference where the schedule would be revealed in realtime (appropriately for Node); my own conference inexperience left me more curious than most.
Mikeal had revealed two details: the major themes of each day of the conference. Day 1 was structured around the world of Node; Day 2 around the power of Node. NodeConf began with Node creator Ryan Dahl reconstructing the origins of the framework from livejournal entries and blurry photos of late night coding session in Germany. But as the day continued, I couldn’t see how the talks related to each other, or what I should be taking away from them. Each of the presentations, while excellent and often inspiring, didn’t leave me with a consistent narrative. I had expected “the world of Node” to consist mostly of talks like Isaac Schlueter’s “State of Node” presentation: perhaps a roundup of the big open source projects and frameworks that dominate the Node ecosystem, and a discussion of where they were headed. Instead, talks covered everything from realtime solutions with socket.io, to the creation of a whole new language. I had started the first day of NodeConf curious, but ended it confused.
Day Two changed all that.
Node is not just the Node framework: it’s a philosophy, an approach to solving problems. The first inkling of “Node as philosophy” came in substack’s post on Node’s aesthetic, discussing the “limited surface area” approach to Node’s modular problem-solving. But NodeConf demonstrated that the node philosophy goes much further than that:
a virtuous cycle of framework and community: Node’s “limited surface area” design of the core framework, along with the ease of use of NPM for publishing open source code and small useful modules, have led to an explosion of code. At NodeConf 2011, around 1800 packages had been published to NPM; now there are over 12000! Modules range from steaming cups of earl grey, to karaoke bar APIs, to websocket adapters and arduino libraries. The design of the framework drove its community adoption, but the community adoption has further developed the framework.
In the last talk of day two, Elijah Insua discussed the hardware hacking he’d done with Node. At one point, he mentioned that he came up with an idea that needed a midi driver, and he said something along the lines of: he never expected needing a midi driver, but as soon as he needed one, he came across one on NPM. The word that came to mind was serendipity: the contributions to Node, and the explorations of its philosophy, are feeding on themselves and driving completely unexpected innovation.
As I thought of the serendipitous nature of the Node ecosystem, Mikeal’s construction of NodeConf finally clicked for me. The two days of talks had been divided into groups of four presentations around a single theme; neither the themes nor the talks were made public, but each talk and theme bled into the next, with later speakers surprisingly stating how happy they were that a previous speaker had touched on a similar topic. The talks seemed to develop naturally, if unexpectedly; the overall direction was unclear to everyone except Mikeal, and gave the impression of the community simply exploring new ideas and pushing boundaries organically. The serendipity of Node’s development, then, found itself reflected in Mikeal’s construction of the conference. Does this sound ridiculously meta? Yes, but it completely worked.
As Node grows up and attracts adoption, it will be increasingly difficult to maintain the philosophically-driven, community-minded hacker ethos of the Node ecosystem, but I hope that Mikeal and the other stewards of the Node community can continue to foster talks and events that focus on the behind-the-scenes developers who are laying the building blocks for the future of this fascinating set of technologies.