In Critical Defense of Frontend Development
Published on Jan 12, 2021 (updated Oct 19, 2022), filed under development, html, css, javascript, quality, design (feed). (Share this on Mastodon or Bluesky?)
Frontend development is a field thatâs not unfamiliar with being misunderstood, and its value being underestimated or missed. We had another opportunity to experience that when the other week, Shopifyâs CEO made frontend development an affair only of junior developers. The comment may have been impreciseâit was published on Twitterâ, but that doesnât save it from appearing disconnected from the scope and importance of the field.
Contents
- What Is Frontend Development?
- Problem 1: Frontend Development Is Much Larger
- Problem 2: Frontend Development Is Much More Complex
- Start Respecting Frontend Development
What Is Frontend Development?
According to Wikipedia, frontend development is âthe practice of converting data to a graphical interface, through the use of HTML, CSS, and JavaScript.â
For someone who thinks lowly of HTML, treats CSS as if it was a programming language, and knows JavaScript from exposure to a JavaScript framework, problems may start right there, because viewed this way the frontend development world looks unappealing and irrelevant.
With this understanding of frontend development as unappealing and irrelevant likely being more common, weâre dealing with two problems: On the one hand the definition is inaccurate, as thereâs more to frontend development than HTML, CSS, and JavaScript; on the other hand the definitionâs interpretation is faulty, as HTML, CSS, and JavaScipt alone are more complex, more interesting, and more important than perhaps most of what information technology offers to study and practice today.
Problem 1: Frontend Development Is Much Larger
First, frontend development is much more than HTML, CSS, and JavaScript, and our definitions, like the one quoted from Wikipedia, seem too narrow. (For an account of how I personally thought that frontend development was too small, and how I almost became a software developer, check out my story as told at beyond tellerrand 2018.)
What more is frontend development? In essence, frontend development is user-facing, and as such, the user is at the heart of the different priorities of frontend development. Frontend development is not just development:
- Engineering
- Accessibility
- Security
- Performance
- SEO
- Internationalization
- Design
- Typography
- Information design
- Graphic design
- Interaction design
- User experience
- Information architecture
- Usability
- Human-computer interaction
âŚand the list goes on. (A quick note, while that list may be useful to make a more organized attempt at redefining frontend development, it does not imply a frontend developer would need to be an expert in all of thisâbut rather to have some basic understanding, and recognize and consider the respective avenues for further specialization.)
In order to become a better frontend developer you donât become a backend developer, you become a better designer and advocate for the userâin a sense of acquiring an understanding of design as well as empathy for users.
When other developers look and talk down on frontend developers they donât only show ignorance of the scope and size of frontend development, they then also distract frontend developers from their mission *âbecause that mission is not to walk further into the server room, but to open the windows and look at the users out there.
Problem 2: Frontend Development Is Much More Complex
Then, frontend development is also much more complex than commonly thought, even if it was âonlyâ HTML, CSS, and JavaScript. That one part above, about HTML thought lowly of, CSS being treated as a programming language, and JavaScript only being explored through frameworksânow that part already gives it away:
Frontend development is not properly understood.
HTML, from what we can observe, must really be thought lowly of. Many developers (including frontend developers) invest a few hours into âlearningâ HTML, think they got it, and then, 1, 5, 10, or 20 years later still write lowest-quality markup. When you look at how poorly HTML is written, by professionals, the situation is an embarrassment. Given how much goes wrong around HTML, whether itâs the decades-lasting refusal to validate HTML code â , the under-use of HTML elements, or the rare optimization of HTML for production, itâs downright pathetic whatâs going on in this part of the field, even if HTML was not the most important (document) language on the Web.
Howâs this for CSS? CSS has long spun out of control. Symbolically, I peg it all on the day we introduced custom properties: On the server side we were always able to work with variables, but somehow the mindset snuck in that CSS better was a programming language and that therefore, variables had to be brought into the spec. Iâm bending the story but it matters littleâCSS has exploded and while that has had many benefits, it also threw a wrench into us ever understanding, mastering, exhausting CSS. We will never get there anymore: No one will ever fully understand, master, and exhaust CSS. Except for the junior frontend developers, as we now get told, who also better take on other engineering positions.
And JavaScript? Who actually writes native JavaScript? Doesnât everyone now go for the Node ecosystem, plus one or more JavaScript frameworks on top? What has happened with CSS had earlier already begun for JavaScriptâthat developers started to go for abstractions instead of mastering the language. jQuery is still the most prominent example, but other frameworks like qooxdoo are even older; and these days we donât even hire anymore for native development skillsâwe hire by abstractions.
What these paragraphs want to say is that HTML, CSS, and JavaScript aloneâthe key technologies for frontend developmentâare so huge, so important, also so messy, that learning a programming language is a joke. A bad joke, it turns out, ending with people outside the field ridicule it, and people inside take shortcuts at every opportunity.
Start Respecting Frontend Development
That bad joke now, and our bad joking, must stop.
That joke-telling, this false narrative, has cost us dearly.
While the digging started early, with web design and development becoming commoditized (thanks first to FrontPage and Dreamweaver), it was a small part of the field then (vendors and standards contributors) that made web development super-cool, but also super-complex. That commoditization and complication of the Web that has progressed over two or one decade, respectively, was accompanied by a large part of the field that looked on, and that thereby helped frontend development perhaps not to a grave, but to quite a spacious hole.
Where weâre at now, the baseline quality of the HTML, CSS, and JavaScript that professional developers write is abysmal. A way you can tell this is when you consider that in the 90s and the early 2000s, we complained about career jumpers, people who had just learned HTML and CSS and who called themselves web designers (rather: web decorators), and who in consequence undermined the fieldâs output quality and reputation. For years now weâve instead been complaining about our own, our peers. Exclusively. Those peers, who may well not be able to write a document, style sheet, or script by hand. And now, thanks to the easily disparaging remarks of a tech company CEO, we get reminded that this pendulum swung so far, so hard, that we get the idea frontend development was irrelevant. Thatâs how messed up this is by now.
Itâs time this changes. This was in parts a rant, but here are some suggestions.
Respect HTML.
Respect CSS.
Respect JavaScript.
Understand that these three languages, especially in conjunction, are more complex than any programming language. Frontend development is document, formatting, and script language territory.
Understand that frontend development rests on a robust understanding of these languages, an understanding thatâs near impossible to obtain (and ridiculous to ask for from a junior developer).
Understand that frontend development goes beyond HTML, CSS, and JavaScriptânot in the direction of where software development may want to have it, the backend, but towards the user: accessibility; performance; usability; design; information architecture; &c. pp.
If youâre not one of them, leave frontend developers alone. They donât tell you how to do your work, either.
Respect frontend development.
When we do that, we quell the insinuation that frontend developers were second-class developers who should at the first opportunity become backend or âfull stackâ or other types of developers.
No: We would recognize frontend developers as first-class developers, and support them to get order into the chaos that âweb development as a commodityâ and âweb development as software developmentâ have caused.
Finally, as frontend developers and frontend development managers we need to show more respect to our own field and ask for more from ourselves, too. That some of the industryâs output is patheticâI will say it againâis largely our own responsibility. While others need to understand what frontend development really means, we need to clean up our own backyard.
Letâs all do this. Thank you.
Many thanks to Jad Joubran for reviewing this post.
* Letâs admit, however, that frontend developers are also quite easy to distract. I donât know a single one who would not aspire to be a great software developer, too. When that part of the frontend developerâs ego kicks in, we look behind us again, to the back end, and not ahead, to the front end.
â Weâve for too long played down the validation blind spot, not realizing how all the invalid code would eat the craft and the profession from the inside. Imagine your mechanic, your lawyer, or your doctor would go about their craft as frontend developers go about HTML. If they did they would end up in the same mess frontend developers find themselves todayâevidently lacking basic professional standards, in a field constantly in or at the brink of identity crisis, questioned and bullied by neighboring disciplines, andârightly soânot trusted by everyone.
About Me
Iâm Jens (long: Jens Oliver Meiert), and Iâm a web developer, manager, and author. Iâve been working as a technical lead and engineering manager for companies youâve never heard of and companies you use every day, Iâm an occasional contributor to web standards (like HTML, CSS, WCAG), and I write and review books for OâReilly and Frontend Dogma.
I love trying things, not only in web development and engineering management, but also in other areas like philosophy. Here on meiert.com I share some of my experiences and views. (I value you being critical, interpreting charitably, and giving feedback.)