Most active commenters
  • alganet(6)

←back to thread

Is Chrome the New IE? (2023)

(www.magiclasso.co)
281 points bentocorp | 20 comments | | HN request time: 0.448s | source | bottom
1. taf2 ◴[] No.42169642[source]
Not even close. IE 6 didn’t get any updates or new web features for years. It was closed source. It was dead and everyone used it. float:right; zoom:1; was a common necessity… to compare them is an insult to the immense progress and effort spent over the last 24 years… (yes chrome started in 2007, but the teams from Firefox get credit too, many of them went on to build chrome ). The open source movement won, IE is dead - MS shipped edge. We can argue about how Google is evil all day but it’s night and day compared to what the web was like in 2000
replies(3): >>42175394 #>>42175445 #>>42175554 #
2. alganet ◴[] No.42175394[source]
Then why does it feel like standards lost?

We don't have float:right;zoom1: but our "necessities" nowadays are even crazier. Babel, vdom, frameworks provided by browser-vendors. Those are several orders of magnitude more complex than previous "workaround" approaches to the web, all unstandardized.

How about Electron? Do we see any Firefox-based desktop apps around or is that market completely dominated by the Chrome runtime? Are app developers happy having only Chromium as the viable solution? (my guess: they're not, but they have no choice).

Where we're going is even nastier than clearfixes and table layouts.

replies(2): >>42175435 #>>42175669 #
3. m4rtink ◴[] No.42175435[source]
Isn't this a Firefox/Mozilla fault as well ? Afaik there is really no API or support for embedding Gecko & anyone who tries to do that, is on their own, having to periodically rebase large patch sets for embedding.
replies(1): >>42175545 #
4. purplejacket ◴[] No.42175445[source]
Ummm ... 2024 - 2007 = 17
replies(2): >>42176120 #>>42178180 #
5. alganet ◴[] No.42175545{3}[source]
Possibly. I guess XUL was that API, but XUL is no more.

It helps if your company uses the embedded stuff in other products. Like Microsoft used the Trident engine from IE6 all over Windows components. In that way, allocating resources for developing an embeddable engine is justifiable. Can Mozilla do that? I don'know. Google can (and does it! why wouldn't they?).

replies(1): >>42177242 #
6. bunderbunder ◴[] No.42175554[source]
The open source movement has been co-opted. Its core values were laid out in a world where people owned their own computers and were custodians of their own data. There was no cloud, there was no saas, and that meant that owning source code meant you had some level of control over your digital life.

You're right. It is night and day. In 2024, access to source code is no longer, in and of itself, an effective proxy for autonomy. And using how the world worked a quarter century ago as a yardstick for measuring the relative merits of Google's influence on the digital domain nowadays is specious.

7. darepublic ◴[] No.42175669[source]
Babel/vdom is not necessary for web dev. Can't blame chrome for electron.
replies(1): >>42175760 #
8. alganet ◴[] No.42175760{3}[source]
If something uses DOM and JavaScript, to me it's web enough to be called web, even if it is rendering outside of regular browser expectations (some React Native stuff or similar). The whole premise of this tech is to approximate app development to web development.

Anyway, it's not about _blaming_. Web technologies are being laid in a landscape by multiple parties, it's about understanding that landscape.

replies(1): >>42175894 #
9. bawolff ◴[] No.42175894{4}[source]
Sheesh, the existence of libraries does not mean standards have failed.
replies(1): >>42175996 #
10. alganet ◴[] No.42175996{5}[source]
Sometimes it does.

Would normalize.css exist if the standards were more specific around default styles?

Would jQuery/sizzle exist if CSS selectors were available as a DOM API in the first place?

Would vdom exist if DOM was faster?

replies(1): >>42179398 #
11. Dylan16807 ◴[] No.42176120[source]
> (yes chrome started in 2007, but the teams from Firefox get credit too, many of them went on to build chrome )
12. notpushkin ◴[] No.42177242{4}[source]
There is GeckoView on Android: https://mozilla.github.io/geckoview/

On desktop, it used to be available as an ActiveX component and a GTK widget, at least: https://www-archive.mozilla.org/projects/embedding/embedding...

Wine still uses WineGecko as a replacement for IE engine – might also be worth looking into.

replies(1): >>42181367 #
13. samatman ◴[] No.42178180[source]
Blink is a fork of WebKit, itself a fork of KHTML and KJS.

2024 - 1998 = 26

14. kccqzy ◴[] No.42179398{6}[source]
VDOM would still exist if the DOM was faster. It's a different abstraction that reconciles the differences between the simple data->elements flow and the inherently stateful DOM. If you don't understand why VDOM exists, here's a nice experiment: in your next web app stop using VDOM and always set innerHTML. You'll find that (1) it's actually fast enough so you can conclude that VDOM doesn't exist just to patch over DOM slowness; (2) you are missing some features you get in VDOM.

The answer is that the DOM inherently has state. It could be a textbox's text input and its cursor state, or the focus state, or whatever. But developers don't want to think about this DOM-managed state to simplify their mental model.

replies(1): >>42179801 #
15. alganet ◴[] No.42179801{7}[source]
Let's ask the next why. Why make the interaction with the DOM stateless?

Because walking the tree sucks, and more specifically building upon the tree sucks a lot (createElement, appendChild, etc). That's why innerHTML, which was _not_ a standard, became a standard after being widely implemented and used.

So, the solution was to almost never read the actual tree, because it is slow and weird. This was solved before React (libs like Backbone and others kept track of state).

Regarding DOM mutation, the browser goes through possibly a lot of stuff (reflow, repaint, etc) when the DOM is changed. React is designed to allow components to optimize this lifecycle. It is very easy to misuse though. You have to know the lifecycle to be able to use it effectively, so, you have to think about the state (or just be allowed to use off-the-shelf components, or be ready for unexpected pitfalls).

It seems something like VDOM could be introduced to the standard DOM API. Some kind of detached DOMDocument that is very sterile and fast. It should be faster than doing it with JS. Remember when we parsed JSON with libs written in JS? Or when CSS selectors were parsed inside jQuery? Do you notice my point?

replies(2): >>42180737 #>>42183903 #
16. Thiez ◴[] No.42180737{8}[source]
> Remember when we parsed JSON with libs written in JS?

No, when was that? Because it was always possible to `eval(jsonString)` and get the parsed result. Indeed, that was the whole point.

replies(1): >>42180851 #
17. alganet ◴[] No.42180851{9}[source]
It was always possible but never safe.

We're oldschool, not savages!

18. iggldiggl ◴[] No.42181367{5}[source]
> There is GeckoView on Android: https://mozilla.github.io/geckoview/

But sadly on Android the alternative is simply using a Chrome/Blink-powered webview, which is capable enough for most people and importantly comes at a zero APK size hit. So you need to have pretty special needs before including a complete custom browser engine inside your app becomes an attractive proposition.

(Whereas on Windows for example for a very long time the only OS-provided browser engine was IE, so if you needed more advanced web features, you couldn't avoid shipping your own browser engine in your application anyway.)

replies(1): >>42191356 #
19. ◴[] No.42183903{8}[source]
20. notpushkin ◴[] No.42191356{6}[source]
Hmm, you’re right, I think GeckoView is “marketed” specifically for making browsers:

> However, Android’s WebView is not really intended for building browsers, and hence, many advanced Web APIs are disabled. Furthermore, it is also a moving target: different phones might have different versions of WebView, all of which your app has to support.

It might still be an okay choice for an application shell sometimes (e.g. if you use a web API that is not supported by WebView and no polyfill is readily available for Cordova/Capacitor).