fw-05 — Broader Ideas

Defaults determine where the work lands

React's conservative default pushes performance work onto every engineer; Vue's precise default pushes it into the framework. Both have a stale-UI failure mode reached by opposite mistakes.

That is a hiring, onboarding, and code-review consideration — and a far better basis for a framework decision than benchmark numbers, which are usually measuring a workload unlike yours.

Generalise it: any library's default is a decision about who does the remaining work. Ask that question of every dependency you adopt.

Compile-time knowledge as an architectural axis

Patch flags let the runtime skip comparisons entirely because the compiler already knew what could change. That axis — how much is known at build time versus runtime — separates React from Vue far more fundamentally than syntax does, and it is a column in the §47 matrix for that reason.

The same axis explains: static site generation vs SSR, typed vs dynamic languages, prepared statements vs ad-hoc SQL, and AOT vs JIT compilation.

The comparison matrix is the real deliverable

Ten axes, seven rows, including Blink's style invalidation. Putting a C++ rendering engine in the same table as three JavaScript frameworks is what demonstrates that change detection is one problem with a small number of known solutions.

Fill it from your own implementations. A copied matrix teaches nothing.

Next

fw-06 builds the compiler whose output this renderer consumes.