Over the past few months a few things have become extremely clear to me: web technologies are exploding and the capabilities for software on the web is soon to meet that of desktop software if innovation continues along this path.
The web technologies I’m talking about are webGL, websockets and node.js. WebGL enables web developers to utilize many of OpenGL’s features inside a web browser and bring 3D applications to the web. Websockets allow a client to communicate with a server with significantly less overhead than ajax, making real time applications on the web much more doable. Node.js allows the server to salably handle all these websocket connections. The real kicker is that they’re all coming to maturity at the same time and cater to each other in a huge way.
When you think of 3D on the web, you typically think of games first. Games in 3D are fun, but what if you could do multiplayer gaming inside a web browser, with a server that could scale? This is a reality that I think is now upon us and on a night before YCombinator starts announcing who gets into their summer program and developers are showing off their apps, I’d like to share with you a simple app I made to demonstrate what I mean. I made a simple chat application using the above technology stack (and others: socket.io, now.js, three.js). Keep in mind its mostly just a proof of concept, I wrote it in a few hours and is very primitive.
You can move around with the arrow keys and hit enter to send the text you have written. Its extremely simple and there are plenty of bugs/errors/vulnerabilities I’m sure, but it gets the point across.
I personally can’t wait for 3D to come to the web (hopefully its in the form of WebGL instead of Adobe’s Molehill) and think its just a matter of time until it happens. One of the things that people are instantly going to want to do is interact. In 3 dimensions that means sharing 3 position variables, chat and actions all in real time. Luckily enough node.js came along just in time to make the process nearly trivial and in 57 lines of server side code I can share 3 position variables and let users chat with each other. The individual pieces are themselves very cool, but with all of these technologies coming to maturity at roughly the same time the opportunities and possibilities are huge. Things like a web based MMO game, 3D shopping with friends in realtime (something I’d like to pursue here soon if we don’t get accepted to YC) and more are all possible at this point.
Whenever new technologies or server stacks come out, it seems there is always a company that succeeds and champions the tech. I look forward to what comes out of these technologies in the next few years and am excited for the company that gets it right.