AGILE WEEK ON JAXENTER: Tune in all week for interviews and commentaries on the state of Agile.
Mobile and server-side resurgence

Guest post: How I’m preparing for the trends of 2013, by Lincoln Baxter III


Senior Software Engineer at Red Hat Lincoln Baxter III discusses two exciting upcoming open-source projects, Errai and Rewrite.

As the holiday approaches at the end of 2012, I find myself amazed at how much I’ve seen and done this year, and I wonder what everyone else sees and remembers in their own lives. I wonder because when I look at everything I’ve seen and done this year, I find myself aware of how much I’ve seen go by, and how I could barely spare a moment, or passing nod of acknowledgement to most of it.

From what I’ve seen, my thoughts and observations probably echo those of others in the industry, but you better bust out those Android skills because mobile is going to be big, really big. I also don’t think most people have any real idea just “how BIG” it’s really going to be.

As of February 2012, several trend researchers claimed mobile phones accounted for 50% of new phone purchases in the US and you might figure that makes sense, but also consider the fact that only 35% of people in the US own a smartphone! That means there are somewhere over 200 million people in the US alone who have yet to jump on the smartphone bandwagon; now try to imagine the world population, clocking in at around 6.9 billion.

If these trends were consistent (which they are not, the US is one of the countries with the highest smartphone adoption, at roughly 15th or 16th place, and India and China near 45th place with 6-8% adoption,) if figures that there should be over five billion people who have not made the jump to “mobile” yet. So how are we going to be ready for this quickly advancing trend? Is the Java ecosystem ready?

As if mobile weren’t enough, this comes on the heels of the announcement of Google Fiber, which is going to be yet another game-changer for the web-development market. We’ve seen a big swing to client-side programming as of late, enabling mobile devices and those with slower connections to enjoy a much more palatable experience on the web. If I’m not mistaken, however, as broadband internet penetration rises, we’ll see a resurgence of the server-side architecture. I think we’ve learned from this iteration of the client-side boom, but server-side programming is just easier; and, if the bandwidth is there to support heavier frameworks, people will use them.

So what have I been doing to prepare for these trends?

Personally, I’ve spent much of my time working on the Errai project, a client-side web framework that compiles Java to JavaScript, and brings the power of Java to the browser. Designed with these new trends in mind, Errai leverages several Java EE technologies such as CDI (for dependency injection,) JPA (for offline mode and local storage,) and JAX-RS, for communicating with remote servers and other services.

I’ve never seen such a well-integrated web framework that balances both the server and client side programming models so perfectly. Write your code in Java, using the same APIs and techniques that you’re used to from developing server-side apps, and you’ve got a working client-side application that communicates with a server in no time – you can even use the same code in both places. Five years ago, JavaScript was more associated with warnings and errors than as ubiquitous technology we see today, the movement is just getting started; Errai is ready to ride this tidal wave with extreme poise.

I’ve also been preparing for the advent of pervasive broadband connections, by developing a high-performance Java HTTP manipulation library for Servlet containers, called Rewrite – a rule-based HTTP framework that puts a fresh spin on the Servlet programming model. Rules can add/modify/or delete any part of the HTTP request and response flowing in and out of a Servlet container, and at the same time you are guided through established best practices and techniques.

A speciality of Rewrite is its use to fix, or plug, holes in any web framework. For instance: it can be used to provide mobile browser detection; it can be used to secure URLs and validate HTTP requests; its robust extensions can be used to invoke server-side methods using CDI, Spring, or Java Reflection; it can be used to provide HTML5 browser bookmarking support for rich client web-apps such as those based on GWT, Errai, or javascript, and more.

In designing this technology, I wanted to be prepared for the future, and whatever new technologies it may hold. We’re about to see a big new release of Rewrite with Servlet output buffering support (for those of you who might be familiar with the PHP output buffer “ob_start()”, and dynamic file transformation so you can write CSS with LESS, and the files will be compiled and cached for you automatically – no more messy build steps to compile your LESS to CSS.

As we move forward in technology over the next year. I think we’ll see more of this unification, bringing programming models together to ease the lives of developers. Of course we’ll see the rogue framework pop up here and there, but in the end, unless they are prepared to integrate with every other framework, and are prepared to move forward with JavaScript, LESS, Mobile, and the REST, we’re going to see a lot of the same frameworks that we’ve been seeing for the last 2 years.

If there’s a tech that’s about to change the game, I’d place my bets on Errai – or something like it, but until then, enjoy 2013. I’ll be spending it putting polish on what I’ve already got, because I think we’re going to see a lot of the same over the next year while the mobile and broadband trends start up the foot of the hill. This was a big year for us all, and next year will be the time to prove it.

Lincoln Baxter, III is a Senior Software Engineer at Red Hat, working on JBoss open-source projects; most notably as project lead for JBoss Forge. This blog represents his personal thoughts and perspectives, not necessarily those of his employer. He is a founder of OCPsoft, the author of PrettyFaces and Rewrite, the leading URL-rewriting extensions for Servlet, Java EE, and Java web frameworks; he is also the author of PrettyTime, social-style date and timestamp formatting for Java. When he is not swimming, running, or playing Ultimate Frisbee, Lincoln is focused on promoting open-source software and making web-applications more accessible for small businesses, individuals.
comments powered by Disqus