I own a series of beautiful books from the Post Secret project. The books are large and include full color pages of post cards sent to the project which asked people from all over the world to send anonymous secrets to an address in Germantown, Maryland.
As I followed the project through its blog and eventually twitter I became quite obsessed with the project and bought the books almost as soon as they were published. When I was forced to move out of my house in Oakland I purged 90% of the paper books I owned but the Post Secret books survived and have a place on the shelf in our new townhouse.
The books are a near perfect representation of the project, they reproduce not just the words but the impression you get about a person by their handwriting and choice of card. It's the kind of thing I'm naturally drawn to, finding the perfect form to represent and express an idea.
I have opened these books maybe twice each and haven't actually read any of them for more than 10 pages.
The problem with finding the purest form of expression is that you disconnect from all other practical concerns. As much as I love this project, and the books themselves, I've consumed far more of this content through their blog and twitter and all of my book reading has been dominated by books that are easier to read.
In technology we are obsessed with finding the most correct and technically superior form of expression. This constantly blinds us to the real needs and addressable market of our technology. In the past I've celebrated technical superiority over simplicity and, with time, always found myself on the losing side between competing technologies.
Lately there has been a rush of technologies, some being very well funded, that are seeking to create a better platform. They tend to share a distaste for things that are already built and prefer to build new and incompatible systems. This stems from a need to "do things right" and what they leave behind is more than just prior technology but the entire communities built around them that are growing rapidly. Somehow these platforms, and presumably their investors, believe that by ignoring the communities that contain nearly all their potential future customers they will create something more appealing than the platforms those communities are already a part of and have a hand in shaping.
There is a balance to be found between correctness and accessibility and node.js seems to be finding it. Living with JavaScript, and all its faults, seems to have built an understanding in the community that nothing will ever be perfect. By embracing the warts of the language and of various operating systems node.js lives in a harsh reality. It must be as correct as possible but embrace its constraints rather than fight them or form complex abstractions around them.
I find myself incredibly dismissive of new technologies that tout their "correctness" but lack community. It creates cultures that don't celebrate simplicity and adoption. I don't think node.js will be the last platform to gain adoption and popularity, nor do I think node.js is finished growing, but much of its success is cultural. I won't take any new platform seriously unless it demonstrates a similarly positive culture and community. I had celebrated pure technical achievement for most of my career and was shown too often that it's just not that important.
Node.js will not be the last community I'm involved in. There's always a next thing, but I won't be looking for a technology, I'll be looking for a culture that can balance strong technology with simplicity and a healthy hunger for adoption.