David Ing's Weblog

My most recent weblog and probably the next one for the chop.


Obvious Software Trends for 2011

December 31st 2010

At this time of year the usual suspects wheel out the prognostications and predictions for the coming year in software trends. It takes a special blend of arrogance and painful vainglorious lack of self-awareness to predict the future in public; you’d have to be a complete fool to do so:

Here’s my predictions for software trends in 2011 – The Easy Ones But It’s New Year’s Eve And I’m Going Out Edition!

Lots and Lots and Lots of JavaScript. Javascript used to be thought in a similar way to pornography, in that the majority of it is terrible but good enough for purpose, no-one admits to using it that much and, most of all, it powers most advancements on the web. At long last we’re seeing competition in browsers again, and the combination of performance improvements and local client resources being used, these things are pushing JavaScript into a credible programming environment not necessarily tied to just shuffling around DOM elements on a page.

My prediction is that we’ll see credible advances in more Server-side JavaScript frameworks, in that there has always been this tension between changing language between the HTTP hop and it seems logical that the tide might turn in the unexpected direction. JavaScript is a under-appreciated language and people are seeing more and more elegance in how it can be written.

It also seems likely to me that as well as faster browsers, better client resources usage and Server-side frameworks we’d likely see better IDE / programming environments appear for JavaScript – perhaps even proficient on-line editors that bring together DVCS teamwork (a la github) combined with ‘immediate feedback’ UI programming. The VB IDE created a noisy whirlpool of new corporate applications and it would be interesting to think what a HTML5/JavaScript/DVCS could do the same to democratize web apps too.

Things to watch in JavaScript land include various model frameworks, parallel network frameworks and various pre-processor like frameworks. There’s lots happening and if you’ve dismissed JavaScript as a ‘secondary environment’ or just something where your callstack disappears then it’s worth another look in 2011.

Mobile, Of Course. In some ways the Mobile years we’ve got coming up seem to smell of a do-over of what we’ve already gone through with desktop software. A fragmented market, different and always changing hardware bases and something where you try to predict the future off the back of how good the developer story sounds to you. Location, cameras and push events, coupled with a device that is intrinsically networked means that some crazy things are going to be tried and it’s an exciting sector to be in. Exciting can also be dangerous too, in that specialization in one platform or another is something that would be hard to bet the farm on. Porting apps is development hell where people who break builds end up.

My prediction in this space is more of a wish-fulfillment. I predict (or hope) that the mobile space starts to rally around the same advances we are seeing in browsers and JavaScript. I would very much like to see special features of phones and pads surfaced through HTML5 in a way that could flatten out all those hills and valleys of platform choice. I suspect that Android will have a very good year in 2011 and that it will take an advertising company to push this browser-centric basis through. Apple will make beautiful devices, Microsoft will make Exchange front-end devices, but Google might be crazy enough to keep cycling their mobile browser specs to take advantage enough of local device resources. The App store might live on, but it might be more of this rather than this. Lots of money and pointless apps will be made regardless.

NoStorage. In terms of overall system design choices the biggest disruptive change in 2010 was the new options around data access and persistence. The relational database is still the storage-du-jour, but with the greater awareness of caching and performance hotspots (memcache’s popularity, really using HTTP etc.) have spawned a whole host of new NoSQL storage options. The motivations for these new storages are all different even though they are grouped under one banner, in that some are about development flexibility of no-schema and explicit indexing of text, some are about through-put or sharding while others are about just plain avoiding disk.

I worry that guidance in the use of these options is still lacking, as many of these tools are so specialized that throwing one in early either smacks of over-early optimization based on a scaling hopeful prophesy or a naive assumption that Facebook’s architecture problems are the same as your architecture problems. It’s not dissimilar to the path we travel from ISAM to SQL, in that concurrency and scale drove a consensus to SQL but only after the options were thinned out a bit and people became confused on when to change from one to another. There is no ODBC for NoSQL. Perhaps, at long last, the quest of Persistence Ignorance features ORM solutions will help, in that rather than changing SQL vendor the data access method can now help hide different storage solutions for different read/write ratio categories of data.

My prediction in Storage is that we’ll see a marked increase of usage of NoSQL followed by an awkward hype-cycle re-adjustment as various things go horribly wrong. ‘Eventually Consistent’ is a phrase to be mulled over in light of practical experience of your data model and the saving grace of many SQL systems was there dogged determination to make anything with a query plan try to work.

What we really need in this area is an updated edition of Martin Fowler’s Patterns of Enterprise Application Architecture too, at least to describe the changes in the landscape we’re seeing shift around in this space. I’d like to predict that for 2011.


I’ve had a really enjoyable month back blogging, but due to unfeasibly large amounts of work and a mild obsession about writing, I now plan to take a short break and start up again in February. Thanks for reading and Happy New Year – have a great 2011.

blog comments powered by Disqus