There’s no such thing as Front-End Web Development

The problem I have with defining “front end development” is that there is no such thing.

Historically there was software called a “home page” or “web site” that was composed entirely of static HTML pages and binary files, connected by hyperlinks. It was then possible to draw a distinction between “real” programmers, who wrote in application languages like C++ and Java, and “web designers” who only wrote HTML.

This distinction was nice, because application languages are compiled, where as HTML is interpreted by the browser. So it was likewise possible to say that “real” programmers wrote in compiled languages, while “web designers” wrote only code that was meant to be interpreted by a browser.

However, since at least 2000, most pages on the Web have been generated in whole or in part by application software. Entire languages have been developed just to generate Web UI. These include Ruby, PHP and many dialects of Java (also called Java frameworks). So it is now perfectly possible to use one of those languages to generate all of the HTML for a Web application, without actually writing any HTML.

To further complicate things, HTML has become much more complex since 2000. The HTML 3 of the 1990s was a simple markup language, consisting of perhaps 75 useful tags, from which it was possible to build a viable commercial Web presence. By contrast, XHTML is a dialect of XML. Additionally, there are now 10 years’ worth of browsers to support, and new browsers enter the market every week. And of course there is the additional complexity of JavaScript, the Document Object Model (at least 5 different browser implementations exist) and CSS 3.

Today, it takes as much skill to manage browser code as it does to manage any other part of the Web application (blurring of skill differences). And the browser code can be generated directly from the Web application without actually writing any HTML by hand (blurring of roles). So we can no longer reliably divide up the programmers by skill, nor can we divide them by role.

Even the title is amorphous. Here’s a list of titles that all can mean the same thing.

Web Director
Web Designer
Web Developer
Web Application Developer
User Interface Developer
Front-End Developer
Client-Side Developer
Presentation-Layer Developer
Interaction Developer
Ajax Developer
JavaScript Developer

Also you can substitute for “Developer” any of “coder,” “producer,” “engineer,” “architect,” etc.

Leave a Reply

You must be logged in to post a comment.