Development

The Future of Web Development 2016

By June 3, 2016 No Comments

In this post we will briefly examine some of the current and rising technologies, trends and practices in web development. We will attempt to get a sense of the future of web development in general and what problems, tools, technologies and languages might become increasingly relevant in the future.

The continuing rise of javascript and the web development stack

Javascript has been ubiquitous on the front-end for a long time and Node has grown into a well developed, enterprise ready technology with a massive amount of support via the npm. New tools such as Ionic(mobile) and Electron(desktop) have made it possible to build applications across all platforms using HTML, CSS and Javascript. Javascript and its associated technologies show no signs of slowing down in 2016 and stand to gain much in the near future. HTTP/2 and ES6 will both provide large benefits in terms of both overall performance and development efficiency. HTTP/2 multiplexing combined with ES6 import directives and npm all but eliminate the need for the arguably complex grunt/gulp, webpack/browserify tool chain. ES6 will also add many long desired features and syntax to the language and can be used today via tools such as babel.

More about HTTP/2 and ES6

React, Angular and Isomporphic Javascript

Javascript front-end libraries such as React and Angular are exploding in popularity. These front-end libraries are becoming so prevalent as to redefine the nature of the conventional web server to more of an API endpoint. Some compelling new technologies such as the virtual DOM have arisen out of these front-end libraries which will continue to impact and improve the general Javascript ecosystem. React has given rise to a new kind of web application architecture known as ‘isomorphic javascript’ in which the same codebase can be utilized across both the server and client. This approach addresses several shortcomings inherent to conventional single page applications.

More about Isomorphic Javascript

Websockets, Webcomponents and Webassembly

True ‘real time’ communication via Websockets is growing in popularity as well. Almost all modern browsers have complete websockets implementations. Nearly all popular web development languages and frameworks now have their own websockets functionality and libraries.

The very nature of html and javascript is expanding rapidly while the distinction between the OS vs. Browser is becoming increasingly blurry. Webcomponents redefine what is possible is HTML and may change the way we build applications. Many ‘native’ apps now run mostly on some form of web rendering engine, interacting with the system either indirectly or directly only when necessary. Asm.js and now Webassembly will accelerate this trend, vastly expanding the capabilities of javascript in the short term and perhaps someday providing us with a compile target to run any language and indeed any application on a web platform. Perhaps one day we will all be using chromebooks powered by webassembly.

More about Webcomponents and Webassembly

Newer Challenges, Trends and Technologies in Web Development

Static Typing, Functional Programming, Parallel Processing and Concurrency

As applications become increasingly large and complex, many web developers have started to desire stricter language level features. As such static typing and lately even functional programming have become more prominent. Typescript and Dart provide type features on top of javascript. New languages such as Go and Elixir enforce types by default. Elixir, being a functional language, goes much further eschewing mutable data and shared state altogether. As the number of available cores and processors has increased the challenge has been building applications that can effectively make use of this distributed processing power.

Go and Elixir are both designed with parallelism in mind and make handling concurrent processes easier compared with more conventional web technologies. The challenge of parallelism in web development goes hand in hand with the problem of concurrency. Scaling a web application across a very large number of concurrent connections has always been a difficult problem. This problem will only become more difficult and more necessary as the number of distributed devices across both mobile users and the Internet of Things continues to increase. Go and Elixir both excel in this area. As these languages grow in popularity, more tools and libraries are becoming available. Gorilla is a set of web development tools for Go. Beego is a full web development framework written in Go and Phoenix is a full web development framework written in Elixir.

Go and Elixir, some case studies and comparisons

‘Big Data’ and Machine Learning

As the amount of users and data continues to expand, an increasing number of applications may start to make use of so called ‘big data’ tools to effectively search, store and analyze their users and data. Services built on Elasticsearch, Mesos/Hadoop/Spark could start to become increasingly common. More generally, the ability to scale an application across multiple distributed servers and data stores will be increasingly important. Further into the future, services involving machine learning may also become increasingly integrated into web based applications. These services could manifest as ‘bots’ that interact with and assist users or custom logic that changes the look or even functionality of your application as it tracks and learns the preferences of your users. With companies like Google and Facebook investing huge amounts of resources into machine learning and AI and even open sourcing large parts of their tech, these kind of features are starting to seem more plausible.

We development moves quickly and is an incredibly broad field. Making perfect predictions is obviously impossible. We must also keep in mind that no web development technology is perfect or even unequivocally better then any other. In the end it comes down to your preference and level of expertise. One thing we can say is that the future of web development will be full of exciting changes and interesting new developments.

Web Application Startup Guide

A 30-page ebook that covers positioning, marketing, pricing, and building your startup product, plus more.