zstd
I’m torn about React and PyTorch :)
zstd
I’m torn about React and PyTorch :)
Maybe I'm exaggerating slightly, but I think we should judge frameworks compared to what other things existed at the time.
It's, by the way, another example of how the only good thing Facebook did was deny Google complete dominance.
Well, yes, but... its popularity is not completely accidental. It's good - even by today's standards, but certainly by the standards of the time.
I like that it's a framework with opinions vs React which is a "Library".
Vue is probably the only outsider of that age that stayed even somewhat relevant (really by just doing what Angular 1 did but correctly), Angular seems to have kinda survived in some niches but other than that I haven't heard of the other similarly aged frameworks in a long while.
Arguably React does have a 'disadvantage' in the sense that it doesn't do two-way data binding, and chooses to update as little of the DOM as necessary to render a change (which it's good at, and gets right), but that's sometimes more than just changing a text node or a value. I suspect that if React hadn't come along there'd be lots of homegrown frameworks doing something similar in a worse way. React is well thought-out and well designed.
Also, every reactive framework can have the same problem. It's not a React thing; it's a library-that-tracks-changes-and-updates-the-DOM thing. Used poorly you'll end up in a re-render loop.
We could just have static HTML pages and that would eliminate the whole problem, but then we'd be complaining about the electricity used on network roundtrips and people using badly coded desktop apps instead. Ultimately, libraries can be as bulletproof and fool-proof as you like, and developers will find new and novel ways to use them to build crap software. The responsibility (mostly) lies with the developers much more than the library.
But most apps don’t need a persistent counter that updates without browser refresh. Further, there were other easy solutions like http request polling, or even websockets. They weren’t solutions for Facebook because they had to support lots of devices that couldn’t handle something like websockets. But instead of the industry realizing this was a specific tool for a specific niche case we just piled on to the design pattern and built a massive lock in ecosystem that may the web worse.
Rich Harris makes the point that React isn't actually reactive: "React doesn’t have any understanding of the values running through your app. It is not Reactive."
Rich Harris - Rethinking reactivity:
https://www.youtube.com/watch?v=AdNJ3fydeao
>Modern JavaScript frameworks are all about reactivity. Change your application's state, and the view updates automatically. But there's a catch — tracking state changes at runtime adds overhead that eats into your bundle size and performance budgets. In this talk, we'll discover an alternative approach: moving reactivity into the language itself. Your apps have never been smaller or faster than they're about to become.
He starts with spreadsheets as the archetypal reactive system.
Defines reactivity as values automatically updating according to dependency relationships.
Contrasts that with React's model of rerunning component functions and diffing virtual DOM trees.
Argues that React "doesn't understand the values flowing through your application" and therefore isn't reactive in the traditional sense.
Virtual DOM is pure overhead:
https://svelte.dev/blog/virtual-dom-is-pure-overhead
>But it turns out that we can achieve a similar programming model without using virtual DOM — and that's where Svelte comes in.
React tracks component renders; reactive systems track data dependencies. React doesn't react, it repeats.
I think React should have been called "Repeat", "Re-Run", "Regurgitate", or "Retch".
But I found the best development cycle as a rails/django multi page apps developer. Anytime I encountered something I needed to update without a refresh it was easy to solve with polling or eventually websockets.
There are sometimes well meaning people in corporations that do their best to at least get something out there and kudos to them, but corporations running Open Source projects should receive no goodwill for it, it's basically a scam.
Russ Nelson: "Blacks are Lazy"
https://en.wikipedia.org/wiki/Talk:Russ_Nelson#Blacks_are_la...
Eric S. Raymond: "The people who knew Russ as a Quaker, a pacifist and a gentleman, and no racist, but nevertheless pressured OSI to do the responsible thing and fire him in order to avoid political damage should be equally ashamed. Abetting somebody elses witch hunt is no less disgusting than starting your own. Personally, I wanted to fight this on principle. Russ resigned the presidency rather than get OSI into that fight, and the board quite properly respected his wishes in the matter. That sacrifice makes me angrier at the fools and thugs who pulled him down."
https://news.ycombinator.com/item?id=47232296
>Guido is not racist like ESR is, and it would have been a disaster to have somebody as racist and obsessed with dragging the organizations he leads into the pro-racism side of political culture war battles that have absolutely nothing to do with their mission, as ESR has a track record of trying to do: He threw down the gauntlet and attempted to drag OSI into supporting Russ Nelson after his infamous "Blacks are Lazy" blog posting that caused him to resign for the good of OSI, who ESR wanted to spend their resources and reputation fighting his culture war against (dog whistle alert:) "thugs" who don't want to follow a racist leader. That kind of blatant racism and totally non-python-related racist culture warfare bullshit political battles would have been extremely detrimental to the python community, just as his other antics and his and Russel's racist rants were detrimental to the open source community. OSI has enough problems attracting women and minorities that they don't need white male leaders telling black people they're lazy and accusing people who disagree of being "fools and thugs".
Russ pulled his own "Blacks are Lazy" post down and resigned of his own free will and was not fired, so ESR was unwittingly calling Russ a fool and thug for pulling himself down, even though he was actually attacking anti-racist people, who didn't believe blacks are lazy, and thought racist white people who publically called all blacks lazy (then patronizingly lectured them on why they are justified to be lazy) didn't deserve to lead OSI.
https://en.wikipedia.org/wiki/Russ_Nelson#Personal
But his actual lifelong ideological religious cult is Libertarianism, obviously. And they epitomize what's wrong with the open source movement, ESR having based his career on tearing down and shitting all over everything RMS has done with Free Software.
ESR and Russ and their ilk just love playing a tired little game I call "Libertarian Chicken":
https://github.com/SimHacker/moollm/blob/main/skills/no-ai-g...
For many more examples, just look at the decades long consistent pattern of ESR's obnoxious inflamatory posts to the linux mailing lists, before he got kicked off for playing said games.
Yes, but also “damning with faint praise” immediately comes to mind