Hacker News new | ask | show | jobs
by MichaelEstes 1467 days ago
I’ve had to opposite experience as someone who’s worked extensively with platforms that utilize webviews, when Safari 15 released it broke a lot of WebGL things with their shift to using Metal and all I can say to users that are experiencing problems is update your OS or disable the experimental feature to use Metal with Safari, which both feel like awful answers. Safari has become the modern IE in my mind.
2 comments

> Safari has become the modern IE in my mind.

Fun fact: even with the latest release of Chrome, Safari is surpassing Chrome in Interop 2022[0]

Say what you will about Apple, but I think the team behind Safari has been doing some fantastic work to make up for its reputation

[0] https://wpt.fyi/interop-2022

> Fun fact: even with the latest release of Chrome, Safari is surpassing Chrome in Interop 2022[0]

There's only two things that Chrome is noticeably behind Safari on (Interop-2022-wise).

1. Colour spaces and functions.

-- Easy enough to implement, it's just some matrix math in the graphics stack.

-- It's not something that web developers in particular are crying out for just yet.

-- It's more for designers who want to remove the scss build step out of their build stack while still being able to make hue changes (using css' custom properties instead of scss' variables). But scss won't be going anywhere until css nesting has broad browser support. I'd argue that nesting is much more desired than expanded color support.

---- In fact, I just had a look at the last state of css survey. Nesting was the third most requested feature. Color spaces didn't even appear in the list. Going further, a search over the ~2k comments shows 47 responses using the word "color" and 168 using the word "nest".

2. Subgrid.

-- Google has/had been working on a new layout engine (LayoutNG) for chromium for quite a while. Subgrid support is/was easier to implement and maintain on the grid component of their new layout engine (GridNG), so they didn't bother making an implementation for their older layout engine. Microsoft and Agalia have both been working on the Subgrid implementation for the chromium core to push it forwards faster.

-- Personally I'm fine with this delayed approach to make sure it all works. It's more reliable for web developers than Safari's often maligned: "Hey we released this feature and don't care that it's broken. If 10% of it works we consider it a success." attitude.

> Say what you will about Apple, but I think the team behind Safari has been doing some fantastic work to make up for its reputation

I'm not going to give Apple a pat on the back for trying to catch back up to web standards only after lawmakers start eyeing up Apple's monopolistic and destructive web and app store practices.

Edit: Grammar, layout

> I'm not going to give Apple a pat on the back

I feel like I was pretty explicit in my attempt to separate Apple from the team working on Safari :P

Regardless, 10 years ago Microsoft was OSS Enemy #1. Today they've done a complete 180.

I don't think you have to be a dumb optimist to buy into this. Personally I think Microsoft's change mostly came from realizing that being a government contractor is much more profitable than serving consumers directly and playing nice with open source is really important for attracting talent. (And they've also innovated on ways to profit off of open source with things like Copilot)

There's some really great people working on Safari right now. I don't think a lot of this talent would've been attracted to the team if Apple didn't at least do some open source virtue signalling

> I don't think you have to be a dumb optimist to buy into this. Personally I think Microsoft's change mostly came from realizing that being a government contractor is much more profitable than serving consumers directly and playing nice with open source is really important for attracting talent.

Most likely, it came from them realizing they had lost their platform monopoly due to floundering so badly with consumer mobile.

Apple invested tons of resources to accelerate their initial iPhone OS efforts, and had a polished experience you couldn't get from third party integrators. Google capitalized on the technology gap for most non-smartphone third parties in releasing a quasi-open-source mobile platform, seizing the market that Microsoft would normally sell their platform into.

Their emphasis on backwards compatibility (and general developer distrust of Microsoft's long-term support of new API) wound up making it very difficult to get support for newer platforms, especially on new architectures like ARM.

My opinion however this wound up being overall healthy for them, because they have always mostly sold to companies and strived for more recurring revenue via support contracts and the like. The explosion of new platforms and of mobile devices meant it was easier for them to sell SaaS products like Office 365, and to treat Azure as their new platform play.

Microsoft's Open Source policy reflects that they now need to attract new customers in a diverse technical landscape, vs try to lock in existing customers to a Microsoft-created ecosystem. It also reflects the difference in their revenue being services vs software.

Meanwhile some other developer is really glad their software, that only supports iOS [previous-version] and hasn't been updated for the latest Safari, isn't generating shitloads of bug reports because some of their users updated the browser separate from the OS, and they aren't having to test multiple OS/webview combos.

Your particular case might have worked out better, but in general being able to test on an OS version and not have that change out from under you is really helpful.

Tying web browsers to the OS release was a disaster on the Mac and PCs, to the extent that both Apple and Microsoft have stopped doing that.

I don’t understand why iOS would be any different.

It's a fundamental piece of functionality that you target with a release, if you're using webviews, and a ton of apps do. It's possible to argue that it shouldn't be, but it is, and that does come with some real benefits for developers.

On desktop, the popular solution to the same problem is to bundle an entire web browser.