Recently, I’ve been posting to my company’s Yammer feed articles about platforms and software in relation to the web. There’s a lot of validation on what makes some of the top companies big players and I believe the key is in the idea of centering the business as a form of a platform. When you look at some of the most successful web products, they exist because of how pluggable they are into other people’s sites through APIs. Typically, the best ones expose some sort of data centric piece where others can hook into.
However, just having an API doesn’t ensure success. I think one key to these APIs is the amount of data that has been collected through the core application. For instance, reviews from Yelp, the number of coordinates and detail provided through Google Maps, the sheer number of users from Facebook, the massive messaging capacity of Twitter or the various flavors of cloud storage.
Companies possessing a wealth of accumulated data are power brokers in this space since they can charge for the data storage, knowledge possession and network usage. I see this as a mistake in the long term at times, especially if the key to these companies’ business plans are centered around selling data. What’s more important is adoption of these services which should scale from a cost perspective over time. Having a lower barrier to entry allows for quicker adoption, which in turn causes other businesses to become inextricably tied to the company, which, imo is where many of these services are shooting themselves in the foot.
But should the future of web technologies just be in data services? I think that they are just one piece of a larger puzzle. My analogy of the way web technologies should be viewed as is like Lego. In the world of Lego, you have a great number of parts to build your ideal set. The more generic the piece, the greater the utility. Having access to a bucket containing parts from numerous genres ensures the maximum flexibility and creativity for the ideal set.
So what pieces are we missing? I think one major missing structure is the UI/UX components. A lot of what’s available are mostly loose frameworks like a jQuery, Less, or Raphael.js, all of which offer very powerful means to building your technologies. However, these elements are like Lego from the early 80’s, where you had slightly more specific parts that could be interchangeably used between genres.
For the power programmer or business, maybe that’s not powerful enough (e.g. Google). Yet, maybe building that cockpit might require quite a bit of parts when all you really want is to build the front of the airplane. So perhaps from the UI/UX perspective, we need to start looking at the specific case as opposed to the generic case. That might involve the creation of standards (or new standards) and conventions for handling things.
Here’s a few concrete ideas. Some generic layouts. I know there’s a few websites out there that provide these along with color options. But what if there’s a precedence set for the “right way” of doing things for a particular genre for a website? For instance, a standard layout, colors, font types, etc. This “right way” would be the result of the accumulation of knowledge for that particular genre of a site (as an example).
I’ve seen some CMS that provide some flexibility, but in my exposure, they commonly prove to be excessively difficult to manage on the basis of their generic presentation. WordPress does a fairly decent job in providing a decent interface, but I do find it lacking at times (maybe I need to become more familiar with it).
Another idea would be some widget builder. Just stuff to fill your site. I’ve seen the web desktops but those felt more novel than useful. If anything, those seem more useful for corporate intranet sites as opposed to be something practical for consumers. Or perhaps this build might be more sophisticated to present different visual styles a non-designer can select through to create a generic stylesheet.
A real test could be figuring out how to build tools to create visual games. After playing with Raphael.js, I got a sense of the potential for how SVG could be used for the web. But the library by itself is inadequate outside of just providing wrappers to create the SVG inside a piece of HTML (for instance). But I can easily see how one could some day create something like a Photoshop or Gimp for the web with that tool without the need for the Flash plugin.
The good thing about my work is that I’ve been forced to move from a purely server side vantage point to a visual one. However, the lessons I’ve learned from the server side with regards to business still provide extremely valuable spots on the visual side, which might not yet be tapped into from a technological point on the web. Think in terms of how something like an ExtJS, Microsoft Foundation Classes or Java’s Swing libraries provided some basic tools. But take those ideas and present them on a far larger scale, again referring back to the Lego analogy with the specific pieces.