So in that alternative universe we would likely have a non-responsive rectangle kind of UI that has to be loaded upfront. Despite all its shortcomings I much prefer the web, thank you very much.
Simply granting access to the host browser's DOM and event loop was intractably, technically, logically, morally, plantatively, confectionately, legally, politically, and in all other ways utterly impossible.
> non-responsive rectangle kind of UI that has to be loaded upfront
You probably never heard of the Shockwave/Flash runtime. Like Java Applets, Flash was also stillborn, for similar reasons.
Ha.
That said, Netscape's brain dead thread implementation, and seemingly unwillingness to even try to fix it, is what borked Java Applets. The success of the JavaScript, and now WASM, VM & runtime is proof enough of the feasibility.
##
Mea culpa: Upthread, I lied by omission.
Speaking of GUIs, you reminded me of Netscape's awesome Internet Foundation Classes. It greatly informed the subsequent Java Swing. https://en.wikipedia.org/wiki/Internet_Foundation_Classes
Architectually, IFC is Qt, more or less, but written in Java. As the successor to IFC, Swing is also awesome.
With the benefit of hindsight, Swing's embrace of MVC was an error. But "we" didn't know that then. (Design Patterns, amirite? It was phase. Sure seemed smart at the time.)
Ditto direct access to components vs requiring all state changes to go thru the event loop.
I can't defend AWT. I'm sure they had their reasons. Probably peer pressure. (Edit: An unintentional pun! Peer! Like AWT's component peers. Get it?! Gasp; I slay me.)
EVERYONE was so certain components had to be native and owner-drawn. Of all the prior cross platform GUI frameworks, AWT was simply the most ambitious, and so therefore the easiest to criticize.
Having previously shipped a few cross platform products, with the scars to prove it, I was completely against the strategy.
Everyone had a braindead thread implementation at that time. Even Sun had to fix things in Solaris so that Java would run happily.
With the possible exception of Windows, you can than the Java Hype Cycle if you had a non shitty thread implementation in your operating system in the late 90’s.
NCSA went with Win32s to get threads and 32 bit addressing. I’m not sure what Netscape did, but by skipping Win32s it allowed them to ship on a single floppy for a long time. Which people found to be a feature.
NSCA has special dispensation to redistribute Win32s, so if you ordered a free copy of Mosaic you could get a copy of Win32s on another floppy.
Improbably, because I had no idea which way was up, I did some contract work for Adobe bridging AutoCAD with Curo (a doc mgmt something). Win16 to Win32. Or vice-versa, I can't remember. "Thunking." An apt name. Seems like it shouldn't have even worked.
> thank the Java Hype Cycle if you had a non shitty thread implementation
I'm sure. I helped "Alligator Descartes" with the Magician OpenGL bindings for Java, around the time of Java3D. After much fussing, I managed to reliably get multiple contexts to render in sync. On Windows at least. Thank god for Doug Lea's work. Watching a bunch of cubes spin, each in their own window, was pretty neat for the time.
I watched this "Birth of the Browser" episode. It was a nice stroll down memory lane. Plus I dug a bit more to find corroborating stories. marca's recall of history and arcana is very impressive.
My low esteem for marca's acumen, abilities, and accomplishments was very wrong. Most importantly, his instincts and advocacy wrt HTML, HTTP, etc. was right, whereas I was mosdef wrong. (Repeatedly.)