What is all the fuss about with front-end development?
Evolution of Front-end Development
The truth is that pretty much every enterprise software developer from the last decade should expect an evolution boom on the server-side development instead of the client-side. Just look at how Java, .NET, and Rails have developed across MVC frameworks, web services, cloud connectivity, security, multi-threading, and persistence. As if this wasn’t enough, server-side development trends towards SOA, ESB, EAI and clusterization are very notable as well. So what is going on?
About a decade ago, web applications started overtaking desktop applications (usually developed in Java Swing or VB.NET) in order to improve compatibility with the user’s computers. By adopting HTML for the user interface (UI), we no longer need to worry about the user’s operational system, as long as the user can access a web browser. This way, our software can even support mobile devices!
Now, let’s get back to the server-side enterprise development. While it is continuously evolving, it is still part of a web application bound to the same known limitations for the web such as request, response, session, cookies, and so on.
Buddy, you gotta trust me when I say the end user doesn’t care that the server-side is perfectly engineered when the client-side is sluggish — all that the user sees is the web application as a whole concept. This means that the user experience (UX) must be prioritized as well, otherwise this user might switch to another vendor with a more effective UI.
With the web browser as the ultimate UI software, we need to overcome its limitations and provide the best possible UX in order to attract more users. And all they want are fully featured applications that are fast, responsive, and stable — as desktop applications have been in the past.
This, buddy, is what this fuss is all about — providing the desktop experience to the web user. This is the ultimate goal of every web application. This is the key to win the market.
All in all, it comes down to a few line items:
- Reducing the page load time. This can be achieved with a few optimization techniques such as compiling all JS files and CSS files to a single JS file and CSS file, minifying those files, compressing the response using gzip, and adopting a CDN (Content Distribution Network) to deliver such files from a server closer to the end user. All of this can be automatized using a task runner such as Grunt or Gulp.js.
- Adopting reusable components to improve semantics and save in downloaded content. A new universe of Web Components is coming out soon, and currently can be achieved with libraries such as Polymer and X-Tag.
- There is much more about optimizing web pages, so do your own research about other techniques available. Make sure you look at HTTP2 & SPDY, WebSockets for transmitting binary data, localStorage, and offline mode.
My final advice is that every type of software developer needs to learn more about all these new libraries and stay tuned to the front-end technologies. You won’t regret it — and nor will your resume!
Originally published at www.avenuecode.com/code-highway on August 25th, 2014.