5 ms·
MVVM was invented by Microsoft for 2-way syncing in WPF. Today we know 2-way syncing is a mistake. Who uses MVC in 2026? Pretty much every framework out there,
by flowerlad 7mo ago
MVVM was invented by Microsoft for 2-way syncing in WPF. Today we know 2-way syncing is a mistake.
Who uses MVC in 2026? Pretty much every framework out there, including Java frameworks and Python frameworks and .net
- ozim 7mo agoYou have any more sources on MVVM being a mistake? I found WPF rather nice to work with. Same with knockout.js and Angular I don’t see much downsides. Everyone can write bad code of course in each of them but I think it was working quite well.
- aloisdg 7mo agoIsn't Vue also MVVM?
- ozim 7mo agoYes VUE is quite a descendant of knockout.js. People confidently write strong opinions on the internet.
- lateforwork 7mo agoWhen React launched in 2013, its defining idea was strict one-way data flow: parents pass data down via props, and updates happen in a clear, explicit place. Children can't mutate parent state directly; they signal changes through callbacks. The result is predictable, traceable state changes. This contrasted with MVVM frameworks like early AngularJS, Knockout, and WPF, which relied on two-way data binding. That automatic syncing felt convenient for small apps, but at scale it often led to hidden coupling and hard-to-trace update chains. Over time, many developers came to view pervasive two-way binding as a design mistake in complex systems. React's unidirectional model gained traction because it favored clarity and control over "magic."
- ozim 7mo agoThanks GPT but I know all of that. I was expecting some eye opening new evidence because person I was asking seemed really confident and using strong words. But that’s just generic „blablabla”. MVVM is not a mistake and is still plenty useful.
- lateforwork 7mo agoIf it is useful for you then it is not a mistake. For you.
- recursive 7mo agoI've heard many people assert that 2 way binding is a mistake, but I didn't think it was settled. It still seems simpler to me than so called uni-directional data flow.