Everybody complains about performance. Slow software feels like poison.
Except, anything written with a large JavaScript framework is allowed to be slow. In fact slow as syrup is strongly encouraged. To prove it just ask the developers. Mention it could be 8-50x faster just by not using their favorite framework and note the response. Even better, show them a proof of concept and take note of their unemotional objectivity.
This has nothing to do with the frameworks though. Almost every listed step of delay there is due to specific software design choices, not JS level stuff. For example search - why isn't every possible next letter prefetched before you even select it? It's trivially cacheable at local nodes anyway. Why isn't the first few seconds buffered by the time you open movie description? How is the UI even possible to be laggy - there are way larger services using react without issues.
Non-constructive reply: Developers have been burned too many times by snake oil vendors and "solutions" that only work for toy examples. Also, I've never seen being slow to be encouraged anywhere. Most consider it an acceptable tradeoff though.
Constructive reply: What would be an approach to writing a large web frontend (large as in, many pages and controls) without using a large framework?
I'm asking this because I know how to do it in React but also how to do it "the old jQuery way" (or equivalently, using today's standardized builtins). Productivity is easily 100x larger with React.
edit: Ideally, together with a link to an example open-source application that does it that way, to understand how it works and feels at (code) scale.
I have explained this countless times. It rarely sinks in and quite often is met with hostility, so I don't bother any more. The problem is simple: its where people stake their career. Do they build their career upon writing original applications or upon using a tool? This difference is rather extreme.
By the way, without React shouldn't default to jQuery. If that is your perspective of reality you are already at the maxim of your potential.
> By the way, without React shouldn't default to jQuery
I never claimed it does. I stated my experience to give context for my question for other solutions than React.
> The problem is simple: its where people stake their career
I meant my question to be about building a large frontend without a large framework, purely in technical terms. This has nothing to do with career choices.
It works fine. Clients don't complain about the interface. The project has been going on for 20 years or so now, and doesn't need big refactors every time a dependency gets updated because it avoids dependencies.
Thanks for your reply. This seems like it builds the UI almost completely in server code, which I usually avoid these days because in my experience, it causes other problems. I should have mentioned that in my question.
That is a rather generous comment. As a former JavaScript developer I can tell you the qualities of concern are not the business concerns of delivery. Delivery will increase just as dramatically by reducing the tech debt imposed from unnecessary code. All that really matters is solving for developer anxiety.
Imagine if you were an Uber driver and that is your full time job. Imagine it pays more than double the national average income. Also imagine you cannot navigate without a digital map and cannot work the car without AI assistance. If someone suggests taking the AI and the digital map away to increase road safety and driver performance you would likely lose your job for failure to perform. The very first thing you would do, as that driver, would make excuses and attack everything that threatens your career identity.
Except, anything written with a large JavaScript framework is allowed to be slow. In fact slow as syrup is strongly encouraged. To prove it just ask the developers. Mention it could be 8-50x faster just by not using their favorite framework and note the response. Even better, show them a proof of concept and take note of their unemotional objectivity.