I know this sounds bad, but maybe this is a blessing in disguise. Necessity is the mother of invention and maybe browser technology should be funded by governments instead of privately owned advertising megacorps?

  • A_norny_mousse@feddit.org
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    21 hours ago

    It never ends. The browser as we knew it in the early 2000s has become an all-encompassing engine to run all sorts of - well, apps. Can’t really call all of it just websites anymore. Media theaters. Secure banking and shopping. Health provider portals. etc etc etc

    It never ends.

    And the code base has become so vast, so complex, that you can never be 100% sure that it’s “finished”. Figuratively, there’s always someone who dropped a cigarette in the wet cement some time back. That cement will be ever so slightly weaker than the cement surrounding it and might - or might not - break.

    I’m not saying I like this, but it is what it is. The Internet of 2025 has very little in common with the internet of [however far you want to go back].

    • grue@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      21 hours ago

      We had Java Web Start decades ago, but we decided to design web apps as stupidly as possible instead.

        • grue@lemmy.world
          link
          fedilink
          English
          arrow-up
          8
          ·
          19 hours ago

          Well first of all, Javascript is a shitty, poorly-designed language hacked together in a week by an asshole who went on to be famous for other such ‘great’ things as getting fired from Mozilla for homophobia and founding a crypto scam wrapped in a protection racket (Brave browser).

          But that’s not even the whole of it. The entire concept of using scripting to turn a web page into an application is fundamentally flawed from the start, because HTML is a Language designed to Mark up HyperText documents and was never intended to give the developer web designer fine-grained control over the rendering at all, let alone consistently across browsers. It was designed for the user to be able to customize the fonts and colors and margins and whatnot so that he could read the document better! So then eventually somebody finally comes up with the bright idea to quit trying to render everything to HTML and just give programmers a fucking rectangle in a VM they can use arbitrary programming languages to draw on instead, and that’s how WebAssembly became a thing.

          On top of that, even when you do manage to hack together some semblance of a functioning UI library (much like a serial killer crafting a suit made from the skin of his victim), after wasting orders of magnitude extra effort compared with just using an appropriate technology to begin with and while fundamentally breaking the entire design intent of the World Wide Web in the process, you still end up with your shitty UI running inside the page viewport of a web browser with its own UI surrounding it, for no fucking reason. And worse, the elements of that browser UI range from useless to misleading to things that break your app if the user clicks them (e.g. the back button), forcing you to do even more work to break the browser UI so it stops functioning as intended first. So then eventually somebody finally comes up with the bright idea to spend even yet more effort to strip the browser UI out of the browser, and that’s how Electron apps became a thing. But even then, the app still doesn’t match the system’s native UI and has to re-implement shit like dialog boxes because there’s multiple layers of cruft between it and the OS’s actual GUI API.

          So anyway, the gist is that “web developers” have spent the last several decades piling shit upon shit upon shit hacking around a design that was fundamentally not fit for purpose (or rather, that I would argue was very fit for purpose but that purpose was not making goddamn applications!), only to finally start to approach some pale imitation of a decent thing now, by ripping out most of what they did before.

          Meanwhile, all the way back in 2001, they could’ve just fucking written a Java app, with a Swing UI that had only one layer between it and the OS native GUI API and which would open in its own proper application window (that would have its own icon and minimize to the taskbar properly and act in pretty much all the other ways a first-class native application is supposed to act) and let the user launch it by clicking a hyperlink on a web page, just like a “modern” HTML+JS web app does. In 2001! This whole goddamn shitshow could’ve been avoided, with technology that already existed two and a half decades ago!

          So why didn’t that happen instead? Two reasons: one, there was kind of a backlash against Java because of how overhyped it had been and also because it’s a little annoying to program in because of all the verbose boilerplate, and two – and I think more importantly – the entire Java app had to download before it could start running; there was no equivalent to AJAX to allow parts of the application and data to load on the fly. For that, it was deemed slow and unusable and got completely left by the wayside. But that was a huge mistake, because fixing that would’ve been a Hell of a lot less effort than building the entire Javascript ecosystem!

          • A_norny_mousse@feddit.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            16 hours ago

            Thanks, that was a fun read.

            Preaching to the choir wrt js and how it’s just piling on and on. But then I did say I’m 5.

            So WebAssembly could have been a development of Java apps on the web? I vaguely remember that used to be a thing long ago. And Java Web Start is just that? Or is it “to finally start to approach some pale imitation of a decent thing now”?

            • grue@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              15 hours ago

              Basically, we could’ve had more or less what we’re just now getting with WebAssembly two and a half decades ago with Java Web Start. They’re not completely equivalent — WebAssembly can run any(?) language and interacts with the system via browser APIs, whereas Java Web Start could only run JVM languages (which was an even worse limitation back in the day since things like Kotlin and Scala didn’t exist yet) but interacted with the system using the more desktop-application-oriented Java Class Library. I think JWS applications would still have the advantage over Electron/WebAssembly applications in terms of user experience and feeling “native” (especially since a lot of web apps gave up even trying to resemble native UIs), but would probably be clunkier from a developer perspective since whatever solution they came up with instead of AJAX would likely not be as flexible due to nature of Java vs. JavaScript (statically typed and compiled vs. barely typed and interpreted).