Evolution of web development

Introduction

Websites may be developed in different ways. We can code a website from scratch or we can use libraries and frameworks. Or a combination of both approaches. All websites have a front-end end, which is displayed in a web browser to the end user. The website front-end may fetch data from a server. The data provided by the server may reside in flat files or in databases. The server may return raw data or it may process the data and combine it with presentation code.

There are numerous web development frameworks that use different approaches, but the end result is the same. It is code that runs in a web browser, which may or may not access a web server after the initial load. Thats how websites used to work. A web developer was concerned only with developing websites for browsers.

During last few years, website usage has become very common and the role of the web developer has consequently evolved. As the demand for websites grew, there was a need for websites that work across different browsers and operating systems. Technologies such as response website design and poly-fills were introduced to meet this demand. Responsive website design is a collection of design practices that allows a website to look the same, irrespective of the browser’s view-port size. Poly-fills provide modern features to older browsers that do not support these features.

Cross platform development

More recently there has been a demand for websites that can be accessed from mobiles applications and desktops. The web developer is no longer making websites only for the browser. Businesses want their customers to be able to access their websites from any browser and device. This demand has resulted in technologies such as Electron, Cordova and Capacitor which allow mobile applications to be developed using the familiar HTML, JavaScript and CSS technology stack. Frameworks such as the Ionic framework, allow websites to run on mobile devices, desktops and browsers using a single code base.

The HTML, JavaScript and CSS stack

HTML, JavaScript and CSS are the basic technologies that power websites. Over the years there has been a lot of changes to these technologies. For instance the HTML standard has had different versions such as HTML 4, XHTML and now HTML 5. Similarly CSS has had two major versions. CSS 2 and now CSS 3.

JavaScript has also had different versions based on the ECMAScript standards. The ECMAScript is a set of specifications for a scripting language. JavaScript implements the ECMAScript standards. ECMAScript has been revised over the years. The most recent version is called ECMAScript 2019.

Extension of JavaScript and the ECMAScript standard

JavaScript was initially designed to run only in web browsers. But now it has been extended and modified to run on servers as well. Frameworks such as Dart, CoffeeScript, Flutter, TypeScript and Node.js are all based on JavaScript and ECMAScript standards. They provide new capabilities to the JavaScript language such as static typing and server side rendering.

Previously JavaScript code only ran on the client side within a web browser. Now it can run on the server side as well. Frameworks such as React and Angular, which are based on Node.js involve JavaScript execution on server side as well as client side. These frameworks are becoming very popular and are commonly being used by web developers these days. These frameworks can be used to write applications that can be deployed across different platforms. For example an application based on React framework can be run as a Hybrid mobile application using the React Native framework or as a desktop application using the Electron framework. The application may be accessed as a normal website from a web browser or as a Progress Web Applications (PWA).

A Web Developer who is experienced with HTML, JavaScript and CSS should not have problems with learning the new frameworks such as React, Angular and Vue. The main difference between these frameworks and the pure JavaScript approach is that these frameworks use a declarative approach towards programming as apposed to the commonly used procedural approach.

Declarative vs Procedural approach

In the declarative approach the programmer is simply concerned with flow of the application. He is not concerned with the low level technical details. In procedural programming the programmer is concerned with the low level details. Procedural programming has limitations and may not be suitable in certain cases. For example development of a website that needs to work across various devices and browser sizes, is not feasible using the Procedural approach. The developer has to be concerned with too many low level details.

Conclusion

The role of web developers is becoming more and more specialized and focused. New frameworks and tools are being introduced for accomplishing work efficiently. Basic knowledge about the new tools and technologies can be very useful. For example having a good knowledge of a framework such as Gatsby can allow one to develop websites efficiently and according to customer requirements.

Previously a web developer was only concerned with making websites following a simple workflow. Web Development has changed and now requires knowledge of many different subjects. A Web Develop may benefit from knowledge of Software Engineering methodologies such as Agile. He may need to add features to a website that requires knowledge about machine learning and artificial intelligence. He may also benefit from knowledge outside the domain of computer science that is relevant to the website.

Web Development is an exciting occupation that can provide opportunity to learn new things. The main requirement for becoming a successful web developer in my opinion is to keep learning and refreshing ones knowledge about areas that are related to ones work.

In my opinion, it is important for a web developer to keep him self updated about the latest trends in web development. Instead of focusing only on the day to day businesses requirements, he should learn about the new trends in web development. Learning new things keeps the mind healthy and productive and helps in all areas of life.

Published 13 Apr 2020

Tutorials about Web Development, Server Management, Computer Science and more