On Fri, 3 Jul 2020 14:26:34 +0100 Mike Pumford <[email protected]> wrote:
> Done right there is no reason the app has to be either bloated or > slow, that's down to the skill of the developer. So you are being put > off by bad examples rather than a bad platform. Is it a perfect > platform? No, but its not particularly worse than any other GUI > framework I've used (which includes GTK, MFC and Win32). However you > don't tend to see the REALLY BAD native apps as they never escape > outside the organisation that wrote them most of the time. The really > bad web apps escape all the time :( It's more about the design and technology. Web applications rely on HTTP, HTML, CSS, JavaScript, XML, JSON etc. all of which are plain text that need to be parsed and converted into binary code/structures. This is insane for complex applications, as it uses way too much memory and CPU power, draining your battery in no time. I've lost count of how many times I open a page and wait for JavaScript bloat to load up with CPU spinning 100% for about 20 seconds. And it is getting worse, as people are moving everything into web browsers. I had to write HTTP/1.1 parser a long time ago and dealing with text and parsing tokens is a real pain the ass, as it is error prone, time consuming and resource intensive. Binary code, protocols and structures are the most efficient and can be cross-platform with careful design. You may think web browsers are cross-platform? Well, I remember seeing complex HTML matrix stating which version of browser supports which feature of HTML. What about various extensions and platform hacks that you often find in JavaScript to cater for specific browser? I can still go to the BBC news website and unable to play videos, because I don't have flash or some other extension. How come some platforms have no decent support for any browser, e.g. I've given up on browsing web sites on my Sun Ultra10, it used to be usable many years ago, but now it's just too slow and too many issues with Firefox. I can see the appeal of having a web app that works on different desktop and mobile devices, but the core technology is text-centric, quite inefficient and requires powerful CPU capabilities that you wouldn't need with native binary code.
