跪拜 Guibai
← All articles
Frontend · JavaScript · Developers

Frontend Isn't Easier Than Backend — It's Hard in a Completely Different Way

By ErpanOmer ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Dismissing frontend as 'just drawing pages' misses that production client-side engineering is a discipline of environmental resilience. Teams that treat it as a junior task end up with white screens, corrupted state, and financial display bugs that no backend log will ever catch.

Summary

Backend complexity lives in a controlled world of Linux containers, where scaling bottlenecks have standard answers: more machines, caching layers, and database sharding. Frontend code, by contrast, gets dumped as obfuscated JavaScript into an uncontrollable zoo of devices, browsers, and network conditions. A request race condition that looks trivial on paper can corrupt a financial dashboard when a weak mobile network delivers responses out of order. Chrome extensions silently intercept API calls or rewrite DOM nodes, crashing React's virtual DOM diffing and white-screening the page. Some Android WebViews even monkey-patch native JavaScript APIs, breaking standard functions that run fine everywhere else. The real frontend job isn't painting UIs — it's building a reliable system on top of an inherently unreliable runtime, where 80% of the effort goes into compatibility and defensive engineering rather than business logic.

Takeaways
Backend environments are closed and stable; frontend environments span unknown devices, browsers, extensions, and network conditions.
Request race conditions from slow or out-of-order responses can corrupt UI state and cause financial display errors.
Chrome extensions and translation plugins can intercept network requests or mutate the DOM, breaking framework internals like React's virtual DOM diffing.
Some Android WebViews overwrite native JavaScript APIs, causing standard functions to throw errors in production.
Frontend engineering is dominated by compatibility and defensive code, not just business logic.
Modern frameworks and the V8 engine absorb enormous complexity, creating the illusion that frontend work is simple.
Conclusions

The 'frontend is easy' perception persists because frameworks and engines have already solved the hardest problems invisibly — the rendering pipeline, task scheduling, and reflow optimization.

Backend and frontend difficulty are incommensurable: one is about scaling data consistency under load, the other is about maintaining correctness across a hostile, unpredictable runtime surface.

Judging a discipline's difficulty by its entry-level tooling is a category error; scaffolding a dashboard in two minutes says nothing about running a million-user interactive system.

Concepts & terms
Request Race Condition
When multiple asynchronous requests are fired and their responses arrive in an unpredictable order, causing the UI to display data from a request that no longer matches the user's current state — for example, showing Tab A's data when the user has already switched to Tab B.
WebView
A system component on mobile platforms that renders web content inside a native app. Some Android WebViews are known to modify or break standard JavaScript APIs, creating a runtime environment that differs from normal browsers.
Virtual DOM Diffing
React's mechanism for efficiently updating the UI by comparing a virtual representation of the DOM with the previous one. If external code mutates the real DOM directly (e.g., a browser extension), the diffing algorithm can fail and crash the page.
From the discussion

The discussion splits between those who see frontend as simpler, often reduced to drawing pages or basic forms, and those who argue difficulty depends entirely on business context and engineering ambition. A strong counterpoint rejects the article's framing of environmental chaos as a uniquely frontend problem, noting that backend faced the same runtime inconsistencies and only later adopted Docker. A more extreme view declares both disciplines equally doomed or already being replaced by AI and the 'big frontend' trend.

Frontend is easier than backend, especially when limited to UI rendering.
Drawing pages is comfortable; business logic and data handling are the real pain points.
Both frontend and backend are equally mundane at average levels, just different beasts of burden.
Difficulty cannot be assessed by technology alone — business context determines where the complexity lies.
Trivial CRUD work is easy in both domains; high standards for performance, security, and maintainability make either one hard.
Most frontend work is just forms and tables, with narrow browser support requirements.
Frontend is dying or being absorbed by AI and the 'big frontend' trend.
The runtime environment chaos cited as a frontend-specific hardship is a problem backend also had to solve, and frontend's complaint reflects lazy thinking rather than a genuine asymmetry.
Advanced frontend work involves deep systems programming, like implementing filesystem protocols in JavaScript.
Featured comments
用户96109856670 3 likes

I hand-wrote an ISO9660/UDF filesystem in ES6, and used WebSocket and USB protocol to instantly mount a client computer's folder to an in-band server via out-of-band BMC, without needing the server IP. This is what a senior frontend dev should be doing.

ErpanOmer

Impressive [facepalm]

pe7er

Frontend or backend, if you're just slapping together CRUD, it's all easy. But if you aim for high performance, high security, readability, extensibility, maintainability, and robustness, both are hard.

大作手

The whole article is full of holes. Just pick one — the runtime environment problem. Backend has the same issue; they only came up with Docker later, and many small companies still don't use it. Frontend doesn't solve this problem but just emphasizes all the difficulties, as if Docker was something backend was born with. Lazy thinking is unacceptable.

See top comments, translated →
Source: juejin.cn ↗ Google Translate ↗ Backup ↗