The Future of Web Application Development - FullStackMastery

The Future of Web Application Development

By Jim Liao / February 20, 2017

In the early days of web development, all you needed to wow people was to create a CGI script that can return dynamic data based on the user’s input. Those days are in the distant past as web applications are becoming more like their desktop counterparts in functionality and user experience. I would even go as far as saying that some web applications surpass their desktop equivalent in both usefulness and appearance. One thing is for certain; the future of web applications will replace most desktop counterparts allowing online citizens to no longer need a desktop PC or laptop. Some will even ditch their desks and live solely off their connected tablets and smartphones. In this article, I will explore the trends that are shaping the future of web applications.

Web Applications Blurs the Line Between Desktop and Web Browsers

In order for web applications to replace their desktop counterparts, they need to excel in the user experience. In the past, when a user submitted some data or clicked a button, the whole page refreshed. That all changed when the Ajax technique came along. You no longer need to refresh the whole page because Ajax allows you to refresh a portion of a web page. Compare to what we had before, Ajax changed everything. The first popular web application to use Ajax heavily was Google Maps. The interactive nature of Google Maps definitely help it gain market shares. No doubt that was one reason I switched from using MapQuest to Google Maps. Ajax also made possible ubiquitous web applications such as a GMail, Google Docs, Sheets and their equivalent that are heavily used today. With these web applications, a whole new set of information, workers no longer needed to be tied to their desktop because now they can work from anywhere in the world. With everyone expecting the Ajax experience in the web applications, the old generation of page refresh applications will go the same path as the dinosaurs.  Unfortunately, Ajax also made web application development more complex.

Next came the introduction of HTML5 technologies such as Canvas for 2D and 3D graphics rendering, Web Storage for storing more data on the browser client, and a variety of multimedia enhancement that basically provided an alternative to the Adobe Flash plugin. You no longer needed Adobe Flash to run games, you can do everything using HTML5 technologies. With the introduction of these technologies to improve the client-side experience, it also means that a web developer now needs to know more than ever before.

Scalability Needs of Web Applications

Before the rise of Ajax, a web application could be written without using any frameworks. There are two major benefits to using Ajax in your web application. First is using Ajax to make background requests to the web server for snippets of data in order to avoid refreshing the whole page. Second common use of Ajax is to perform a “long server pull” to query for new data. The long server pull technique is use to replicate a server push-style application such as pushing updates to a stock ticker in a stock market site such as Google Finance, Yahoo Finance and MarketWatch. Both techniques put a lot more stress on the web server since the server now has to handle more incoming requests.

In order for webpages to provide the user experience that everyone comes to expect such as fast response and incremental page updates, a variety of solutions and services popped up to fill these needs. Content Delivery Networks (CDN) such as Akamai and Amazon CloudFront became necessary to deliver static content faster by distributing the static content to edge servers in order to be shorten the network reach to all users. Running multiple web and database servers became necessary as the dynamic requests began to overwhelm a single server hosting your web server and database. The need to run multiple web servers gave rise to hardware load balancers such as those sold by F5 and Cisco.  There are also widely software load balancers such as NGINX and HAProxy. New startups and existing companies can make a lucrative profit from focusing on efficiently handling one part of the workflow of getting content from the web servers to the end users. The driving force of this is the incremental enhancements in web technologies that are replace desktop applications and the trend of users choosing to watch videos over written words.   

Web Application Development for Multiple Consumer Platforms

With 70% of the population having smartphones by 2020, the need to support mobile and desktop platforms is no longer optional. Don’t forget about the tablets either. The fragmented landscape of multiple platforms created opportunities for software companies to provide multiple solutions to lighten the developer’s burden of dealing with intricacies of different platforms.

Responsive Web Design (RWD) became a new technique that avoided the need to create multiple version of a website for specially for mobile versus desktop clients. The RWD technique was made possible by the introduction of media queries in CSS. The library that made RWD design very easy is Bootstrap, helping with wide adoption of RWD for almost all content based websites such as marketing, news and blogs sites.

Another issue that developers dealt with are different platform are built with different programming languages and libraries. To abstract developers from writing different versions of the same software for each individual platform such as Objective-C for iOS and Java for Android, .Net for Windows Phone, platform companies have risen to the challenge and promoting using web technologies to hide the developer from the platform. A great example of this is Adobe PhoneGap which provides a software platform for developing application by building your application with HTML, CSS and Javascript. PhoneGap also provide common APIs to access hardware features such as the camera, GPS and file systems. The area of providing platform independence is still in its infancy with competitors to PhoneGap from Sencha and others.

Another trend is the growing use of web technologies in desktop applications. Take a look at the Spotify desktop client. Spotify uses Chromium to create a UI that looks like a web page but runs as a native application. Chromium is using HTML5 technologies to be platform independent while only requiring the developers to write platform specific hooks and exposing those as a Javascript API. This cross over of technologies is driven by the fact that the web technologies have many supporters and contributors while the desktop GUI platforms have lagged behind in providing the last GUI components. In addition, more and more people are exposed to the smartphone interface before ever using a desktop or PC. The expectation from these mobile-first users are driving the evolution of the desktop interface and user experience.     

Supporting Multiple Platforms No Longer Optional

More and more consumers have access to a smartphone or tablet more than a desktop or laptop. Smartphones and tablets are getting more powerful each day, but still lag behind the resources that a dedicated desktop or laptop can provide in terms of processing power, memory and storage. This has pushed many mobile app developers to host majority of their backend in cloud platforms. Cloud platforms such as Amazon AWS, Microsoft AzureGoogle Cloud Platform and others, allow developers to scale their solutions as needed without major upfront investments.

The fact that a single consumer is now using multiple devices simultaneous means that supporting multiple platforms is no longer optional. The recent trend is for a software to be available in all major platforms. Take a look at the recent wave of instant messenger applications, they have a version for every platform. No longer can a developer or company dictate which platform a consumer must use to access their software (the exception is Apple). PhoneGap and other companies have made developing for multiple platforms easier for developers.

An API-first design is necessary to provide support for multiple platforms. Most API are now implemented using the RESTful over HTTP technique. The API-first design became popular in tandem with the Microservices architecture. Many companies now have made a business of solely offering their services via a RESTful API. You can now compose your platform by integrating all these different micro services together. Transactional email can be sent using Mandrill, SparkPost and Sendgrid using their RESTful interfaces. SMS messages can be sent using Twilio’s API. Startups are born solely to provide services as a RESTful API.   

Conclusion

The one thing about the future of web applications is certain and that is that web application development is getting more complicated. This is driven by the demands for a richer user experience and the adoption of different platform as the primary platform. Most consumers can live off solely using their smartphones. Same goes for tablets and iPads. Desktops and laptops are no longer the platform where the new applications must be developed first. There will be no one technology or company that will rule them all, but instead we are moving toward a micro services architecture where the solution is the integration of API-based services offered by different companies. Some of these companies even base their whole business on providing one service exposed via their APIs. Regardless if you are a client-side developer or server-side developer, there is plenty of opportunity to monetize and grow within the web development ecosystem.

Click here to add a comment

Leave a comment: