this post was submitted on 22 Aug 2023
75 points (90.3% liked)

Unpopular Opinion

7680 readers
146 users here now

Welcome to the Unpopular Opinion community!


How voting works:

Vote the opposite of the norm.


If you agree that the opinion is unpopular give it an arrow up. If it's something that's widely accepted, give it an arrow down.



Guidelines:

Tag your post, if possible (not required)


  • If your post is a "General" unpopular opinion, start the subject with [GENERAL].
  • If it is a Lemmy-specific unpopular opinion, start it with [LEMMY].


Rules:

1. NO POLITICS


Politics is everywhere. Let's make this about [general] and [lemmy] - specific topics, and keep politics out of it.


2. Be civil.


Disagreements happen, but that doesn’t provide the right to personally attack others. No racism/sexism/bigotry. Please also refrain from gatekeeping others' opinions.


3. No bots, spam or self-promotion.


Only approved bots, which follow the guidelines for bots set by the instance, are allowed.


4. Shitposts and memes are allowed but...


Only until they prove to be a problem. They can and will be removed at moderator discretion.


5. No trolling.


This shouldn't need an explanation. If your post or comment is made just to get a rise with no real value, it will be removed. You do this too often, you will get a vacation to touch grass, away from this community for 1 or more days. Repeat offenses will result in a perma-ban.


6. Defend your opinion


This is a bit of a mix of rules 4 and 5 to help foster higher quality posts. You are expected to defend your unpopular opinion in the post body. We don't expect a whole manifesto (please, no manifestos), but you should at least provide some details as to why you hold the position you do.



Instance-wide rules always apply. https://legal.lemmy.world/tos/

founded 2 years ago
MODERATORS
 

At least there was a distinction between web of documents (WWW) and shipped apps with custom canvas. Rendering apps with web's DOM is stupid. It makes websites a mess and relies on everyone using the same monoculture of browsers (like we now have Chromium, WebKit and Gecko, all nearly identical).

If browser does not support one feature (like CSS's transform), the whole house of cards breaks. It's like making ASCII art in notepad and then expecting everyone to use the same notepad app with the same font and style, to not break our art proportions.

We need to split web into websites and webapps, with webapps being browser dependent or full custom canvases and websites being immutable human-readable and editable format.

you are viewing a single comment's thread
view the rest of the comments
[–] grue@lemmy.world 4 points 2 years ago (1 children)

With Java at least, that was by design and arguably a good thing. Instead of the bastardized "web apps" we have now that try to shoehorn an application into a web page, Java Web Start was designed to run a full-featured desktop application (complete with Swing UI that mimicked the native OS's UI) with its own windows and such, just launched from a hyperlink instead of needing to be installed.

The only real problem with it was that "AJAX" style tech hadn't been invented yet, so it had to download the whole thing before it could run instead of streaming parts of the app on the fly, and (I think) tended to interact with server-side code with RPC calls instead of the REST style APIs that folks prefer these days.

In other words, it failed mostly because it was ahead of its time, and Electron apps/PWAs are merely a poor reinvention of it.

[–] severien@lemmy.world 4 points 2 years ago* (last edited 2 years ago) (1 children)

The only real problem with it was that “AJAX” style tech hadn’t been invented yet, so it had to download the whole thing before it could run instead of streaming parts of the app on the fly

AJAX is a JavaScript specific technology, Java applets had access to full network stack so it could do whatever it wanted in this regard. Java supports natively custom classloaders which could dynamically load classes from the network, but it's not widely used and I don't know if applets leveraged that.

and (I think) tended to interact with server-side code with RPC calls instead of the REST style APIs that folks prefer these days.

Java applets had access to the full network stack, so you could use REST style calls or RPC styled network calls if you wanted. Java applets also had native RPC capability (with network being transparent), perhaps that's what you mean. But all this is an implementation detail invisible to the user and not a reason why applets sucked.

In other words, it failed mostly because it was ahead of its time, and Electron apps/PWAs are merely a poor reinvention of it.

I disagree. They sucked, because they were kinda something between desktop app and web app, largely combining disadvantages of both.

[–] grue@lemmy.world 2 points 2 years ago* (last edited 2 years ago) (1 children)

AJAX is a JavaScript specific technology, Java applets had access to full network stack so it could do whatever it wanted in this regard.

Java applets had access to the full network stack, so you could use REST style calls or RPC styled network calls if you wanted. Java applets also had native RPC capability (with network being transparent), perhaps that’s what you mean.

That's why I said "AJAX-style" and not "AJAX." Although it would've been technically possible to do whatever kind of communication they wanted, folks hadn't really thought of trying to stream parts of the app itself after the rest of it was already running the way they do with javascript stuff. You had to wait for the entire .jar to download before it would start, when what it really needed was the ability to download a little stub .jar, start running, and then stream classes on the fly as you accessed them.

[–] severien@lemmy.world 1 points 2 years ago* (last edited 2 years ago)

folks hadn’t really thought of trying to stream parts of the app itself after the rest of it was already running the way they do with javascript stuff.

It kinds of seems like you have some confusion in the terminology. AJAX doesn't mean streaming the app parts dynamically, it's just client-server request controlled by JavaScript, originally used mostly to pull/post data, not code. Lazy loading application parts is a newer concept mainstreamed by SPAs / bundlers and can be done with AJAX/XHR or other means (injecting script tags or await import).

You had to wait for the entire .jar to download before it would start, when what it really needed was the ability to download a little stub .jar, start running, and then stream classes on the fly as you accessed them.

As mentioned above, a native support to do that was baked into Java since 1.0. It's possible some applets even used that. Those that didn't - their problem. But this practice wasn't really common in JS apps of that time either (apps weren't typically SPAs, but still).