The evolution of web technologies in the last several years has blurred the line between what we usually call backend vs. frontend development. On the other hand, expectations put in front of developers highly reflect that rather rigid distinction based on technology, instead the one that would be based on processes in software production. Is it time for a change?
With the SPA paradigm, a huge amount of what used to be done on the server, by ‘backend’ developers now resides in the browser. Still, I notice that companies who are looking for people are looking for ‘frontend’ developers for such work, or expect ‘backend’ developers working on the in-browser app to do a shiny UI as well, and be efficient at it. That feels like quite of an impedance mismatch to me.
What is wrong with such a nomenclature is an easy question to answer - it’s the application logic that has shifted from the ‘back’ to the ‘front’, not followed by the nomenclature update to adjust to this new situation. Borders once drawn are just not valid any more.
What would be the more appropriate nomenclature was the harder question. Giving it a bit of a thought, I feel confident enough to propose the following - Application developers and UI developers.
Application developers vs. UI developers
This makes the distinction much more natural - application logic and application architecture belong to application developers, not to the server or the client side of technology; while UI, application flow, RWD, styling, and eye-candy together with UI libraries and JS animations belong to UI developers (and designers who actually implement UI designs they make).
If we adopt such a nomenclature, it will be easier to understand the development process better and to match people with the work they’re specialists at. Applications will always remain applications, never mind where are they run, while interfaces will remain interfaces, never mind that they will be radically different across the application consuming media.
The future will include not only desktop vs. mobile/tablet experience, but also a voice, glasses, holographic and who knows what other interfaces that will emerge, and that will need to be tackled. That’s the last moment where today’s frontend developers will need to transform to UI developers.
Why don’t we start that change today?
The border between the server and the client has faded; it’s time for the roles names to change.