Front End Development

A long time ago, the "action" was on the server-side, with technologies like Struts, EJB, Hibernate, and Spring.  Lately, I'm seeing a lot more movement on the front-end - mobile devices, HTML5, and the increasingly ubiquitous JavaScript.  That dynamism and energy is translating into the back-end, with services like Mongo using JavaScript and JSON as primary interfaces. From a complexity standpoint, it's easy to see how the requirements (in particular, for mobile devices) are driving things.  When Steve Jobs decided to drop Flash, the only way to deliver content to iOS devices without going through the App Store was mobile Safari, and that means HTML+JavaScript.  Throw in the fantastic performance of Chrome's JavaScript engine, breaking out the JavaScript engine into Node.js, and you can see the evolutionary tree taking shape.

Right now, the biggest challenge with JavaScript is the incredible array of options.  Angular, Backbone, Ember, Knockout, and who knows how many more.  We've been experimenting will all of them (Ember is an early fav right now).

As an example of the complexity, check out this blog on building a responsive, Retina-aware interface.  Many (most?) of the tools listed didn't exist a year or two ago.

3D, location, cameras, touch interfaces - things are going to change a lot over the next few years.

Cool, huh?