Skip navigation

Opinion

Declarative-Brained & a Myth of Fullstack


Published 2019

An observation on the state of full stack development and they way our brains tend to be wired.

While at my office yesterday, I was talking to a seasoned engineer and he made a comment that instantly opened my eyes and freed me from years of personal frustration over JavaScript. We were chatting about our careers and I was telling him about my struggles with that particular scripting language.

Spoiler alert: I’m just not good at JS. BUT, I’m awesome at HTML & CSS. I understand and execute visual design. I get the big picture. I understand the cascade and embrace hierarchies. I even do well in templating languages such as liquid. Yet, I fall over my own feet once I make forays into JavaScript and beyond. I can copy patterns and get by in JavaSript, but all attempts to deeply understand and KNOW it have so far failed. I’ve often wondered why, after so many attempts to learn JS, I never quite get it.

One reason, as my developer friend pointed out, may be in the fact that two groups (HTML/CSS, JS) are examples of different paradigms: declarative and imperative. Imperative is focused on how we want to do something, where declarative says what we want to do. The two paradigms often (not always) correspond with how our individual brains are generally wired.

It makes sense that different brains would be stronger at one type than the other given the approaches are often very different and require different approaches to tasks. Right now, the industry tends to force a declarative brain (HTML CSS) to be the same person who can do imperative (JavaScript), and vice versa. I think this may be hurting design and the overall tech industry in some ways.

I have met very few developers who have the title “full stack” that are truly good at the declarative and imperative to the point of mastery. Many of my colleagues share the same observation. One end of the stack usually has to give, and in my anecdotal experience, the side that tends to suffer is the all-important HTML/CSS side. This is sometimes because the two are often looked down upon since they are, in fact, declarative. But remember, without HTML, we wouldn’t even have a web!

It may be time to once again swing the pendulum back from “full stack”, and embrace and give targeted roles to those who have strengths in a particular paradigm. I think there is a ready and waiting market of designers who are eager to take on this front of the front end, and leave the programming to those who really know what they are doing.