Safari is the last man standing before a ChromeOS world.
Except it isn't. Maybe I'm being slightly obtuse here, but the world is not "Chrome Vs Safari". It's "Chrome Vs Safari Vs native apps". If Safari dies we'll be in a world of "Chrome Vs native apps", and that is what Apple wants. Browsers represent a way to deliver software to users that's outside of Apple's revenue mechanisms.
Apple have every incentive to keep Safari being good-not-great at running web apps, so users prefer the native version (even though most of the time that'll be Electron.)
I think the only full-featured browser with a prosocial funding model is Konqueror, where what little money there is mostly comes from EU grants. Not coincidental that its code quality was so much better that everyone else based on its rendering engine.
Chrome's Manifest v3 forcing UBO into becoming UBO Lite only strengthen my original decision.
Hopefully this move by google would push more people toward Firefox. Although considering the amount of people who happily surf the web with zero adblockers (including every single of my IT colleagues), I'm not holding my breathe.
The end user is always served better by native apps.
Imagine if Microsoft was able to just ban any competing browser from running on Windows. We wouldn't be here debating if Chrome is the new IE. IE would be the same old IE (and the web would be a lot worse off today).
> Apple gets away with stuff today that would have made Bill Gates blush in 1998.
Can you provide some examples?I think that this idea that Apple is making Safari deliberately shitty to stop PWAs from taking over may have been true at some point, but I think by now that battle has been lost and Apple doesn't have to defend that moat anymore. There's just a plain reality of installing native apps being a better user experience regardless of platform, even though it is more locked down and has its own significant list of disadvantages.
More recently, I have difficulty seeing what's so bad about Safari in this regard. It lets you add web apps to your home screen and works with notifications since iOS 16. Safari has features like picture-in-picture that the native YouTube app doesn't have. It also has extensions. Maybe there are some PWA features that I don't know about here that I'm missing?
Maybe this is my dumbest opinion: say what you want about Electron, every Electron app I've used has been a better experience installed as a native app than used inside a browser. Not much better, but better enough that I didn't want to keep using them in the browser (regardless of choice of browser). Slack comes to mind. I greatly dislike using Slack in a browser, and it's hard to point my finger on exactly why that is.
I know several of them, because Google doesn’t let e-commerce apps in my country sell cigarettes and other products containing tobacco. The android version of these apps guide users into installing their PWA version if they wish to order such products.
And if it is bluntness that you want, native apps should wipe both of them, lets get back to the days of Internet protocols and leave browsers for documents, nothing else.
Last man being held up weekend-at-Bernies style?
It's worse than that, even - IIRC the renderer that other browsers have to use is slower and more limited than the one Safari uses.
So other browsers are effectively reskinned hobbled Safari.
Browsers on iOS can't - they are required (legally, not technologically) to use (a worse version of) Safari's engine. Chrome for iOS is not the browser that the chrome team wants to distribute, it's a browser Apple made that has been customized to the extent that Apple allows it to be customized. What is that if not reskinned?
I mean, imagine if DOJ forced Apple to divest Safari and treat it the same as other browsers. What would happen? Parsimonious answer: the same thing that happened everywhere else.
I think the biggest issue with IE6 was not the hostile moves Microosft did, it is that it didn't do anything. The browser was just frozen. That's why it was relatively easy for Firefox to take a marketshare.
Frankly, with some of the APIs Google are adding to Chrome, I'd rather they'd do a little less.
But by that point it was clear it was already dying and IE7 et. al. were introduced late as an attempt to catch up. During the period when the real bullets were flying, IE6 was actually a really great browser, just one that forced you into using a menu of Microsoft technologies because it didn't support the "standard" stuff. Remember that XMLHttpRequest, the basic tool underneath all modern dynamic web UIs, was originally a non-standard Microsoft invention.
And yes: eventually this proved unsustainable and innovation in the standards-based browser world eventually proved too fast for MS to keep up, and it lost.
But the tool that broke the back of that monopoly absolutely wasn't Firefox. It was Chrome.
Sure IE6 had many non-standard APIs, but even the fact that all hobbyist browsers back then were implementing tabs and IE6 never had that, speaks to its stagnant development. To be honest I'd prefer some things Google is now pushing through th W3C as standards to be left as Chrome specific APIs and leave the rest of us alone.
I mean at least we still have websites like this from over 20 years ago that still document the bullshit, people who weren't there CANNOT fathom the how despicable they were.
99% of the time I use Chrome it's because some site does not support Firefox (and that often includes Google sites/apps). (The 1% are for APIs that Firefox, consciously or out of resource constraints, does not support.)
In what sense am I "freely installing" Chrome in this situation?
Just today I had a family member reach out to me, unable to use government e-signing on their phone after I'd switched their default browser to Firefox (they were getting tons of ads in mobile Chrome, which does not support plugins and accordingly also no ad blockers). Turns out they support only IE/Edge, Safari, and of course Chrome...
> every device I've ever had Chrome on I've had to seek out and install/make default Chrome
My Pixel came with Chrome preinstalled, as far as I remember. (I don't recall if there was a browser selection screen.)
Sure, that's a Google phone, but then again Windows is a Microsoft operating system.
> the arguments of a closed source subscription service that wants me to switch to the bundled browser of the wealthiest company on earth's most popular consumer OS
Oh, I'd also not advise anyone to switch to Safari. Apple absolutely would pull exactly the same or worse as Google if they could, I have no illusions about that.
I can't wait for the day they're finally forced to actually allow alternative browser engines on iOS and switch to Firefox everywhere.
In my case, an example of a non-exotic site is Youtube streaming 4k 60fps videos. I tried with latest Firefox a few months ago and it was still stuttering and glitchy. But Chrome plays smoothly with no issues. I previously mentioned that 4k playback has been a long-standing issue: https://news.ycombinator.com/item?id=28783904
On one hand, my computer is fairly old ... but then again, Chrome works fine on that same old hardware.
What firefox cannot do and chrome can is HDR playback.
No, even if I download the 4k 60fps file using yt-dlp with forced h264 codec settings locally to my harddrive, Firefox still can't play the mp4 file smoothly.
So it's not really a streaming issue or h264 vs VP9 codec issue. The Firefox core engine doesn't seem optimized to playback 4k and 8k high-frame-rate videos with low cpu utilization. Even VLC for 4k and 8k isn't as smooth as Chrome. I don't know what the Chrome team did but they really optimized that code path to play back hi-res videos.
Oh and a while ago I noticed (on a more modern system) that enabling hw decode makes chrome ignore the aspect ratio of the video and displays it like the pixels are square. Again Firefox handled it fine.
(Linux, h264 in both cases)
And look no further than Google themselves: https://labs.google.com/search/install
I'll give you one example: I sometimes can't open OpenAI API documentation due to some stupid Cloudflare captcha checks. No, on Firefox, however many times I click that checkbox, I can't go through the verification, just to read some static content. Not even if I disable adblock and tracking protection.
I don't even see a checkbox at all on Chrome or Edge.
Sure, technically nobody is excluded: Just solve the captcha! Fraud heuristics are only reasonable, right?
But it's all fun only as long as your situation occurs within the 90th or 95th percentile of all data labeled "good customer". Good luck if you're out side of that...
I mostly use Chrome on Linux (fully Google distributed, closed source Chrome...so not Chromium) and I see those cloudflare captchas at a much higher rate than I do when using Windows or macOS.
Enabling JS is not enough, so I think its liked to privacy plugins, or running inside a container.
What if it's Google themselves? From my original post:
> [...] and that often includes Google sites/apps
What google site or service requires Chrome?
Sure, it's a lab experiment or whatever, but these are just words, and the effect is that I have to use a different browser to be able to use them, for absolutely no technical reason. (The LLM is running on Google's servers and provides plaintext. I think Firefox could handle that.)
Just visit this on Firefox if you want to see for yourself, including a big "install Chrome" call to action: https://labs.google.com/search/install
On Google Docs, paste as markdown, copy and paste from menus, paste without formatting, etc. only works on chrome. This functionality could be done with standard APIs, but instead google uses a hidden, pre-installed extension to implement it.
Offline mode doesn't work on firefox for either gmail or google docs.
Google doodles don't show up on Firefox Mobile, unless you spoof a chrome user agent.
Youtube has repeatedly had serious performance problems on Firefox.
Do you happen to have any examples? I’m curious to see how broken/what the issues are.
A few sites would silently break, e.g. restaurant online order pages, but work in Chrome. Never really looked into why, it was just annoying and intermittent (might work one month but not the next).
YouTube occasionally had some issues. For a while it was on an old version of Polymer that used Shadow DOM V0 (experimental) instead of V1.
A good list is here https://webcompat.com/issues?page=1&per_page=100&state=open&... keep in mind some of these are "is extremely slow in Firefox". Sometimes that's just that Firefox didn't have the same set of optimizations (not necessarily even fewer optimizations, just not ones built against) and other times that's deeper seeded like the Shaw DOM V0 example where the fallback for the page was to use some older.
Among them: Logging into some of my financial accounts doesn't work on Firefox. Enterprise software and gear like VMware and management UIs of various devices on the network. (They foolishly hard-coded their devices to reject any UserAgent strings that weren't Chrome, IE, or Edge.) Sites that use some kind of poorly-implemented tracking/fingerprinting to make sure you're a human. (I would routinely get stuck in infinite CAPCHA loops even on normal sites.) For a while, Slack video/audio calls did not work on Firefox because Slack chose to use codecs that FF didn't support. Video calls on FF are still hit-and-miss on various platforms, ran into it on Facebook just the other day.
These are all just off the top of my head, of course. There are plenty more that I've forgotten.
That is just the nature of using a niche platform. I primarily use Linux on the desktop. I have to keep a Windows install around for the times that I need to do something that can't be done on Linux. Resources are limited and so high marketshare platforms are prioritized. That's just how it is.
> I have to keep a Windows install around for the times that I need to do something that can't be done on Linux.
Can you share some examples?In that small complaint, I would agree. But I think the fault is mostly with the website owners, not with the browser.
Feature sniffing generally doesn't work for anything interactive. Many bugs in controls, animation, events are not sniffable. Yet developers still need to deliver workarounds.
Feature sniffing works best for static HTML documents - and even then the code to actually do the sniffing can be demonic code (a side-effect or correlation or an obscure discovery).
Using just feature sniffing is a great goal but it simply isn't a perfect solution. I do believe us developers should avoid parsing user agents unless there is no other good solution (never a crutch for lazy bad developers).
And detecting the browser for obsolete browsers is usually a perfectly fine solution. The bugs won't get fixed and the browser won't change. There are exceptions of course!!!
But there are a long tail of user agents and the average web developer does a terrible job at identifying those in the long tail. My password manager on iOS uses the newest Safari engine, but all websites think it is an outdated/obsolete browser because it uses a user agent string they don't recognize.
Also, my bank doesn’t use highly interactive features you mention. It’s almost exclusively links, forms and a little validation JavaScript. Feature sniffing would have been a much better experience.
SSE's
W3C draft standard in 2012. Supported in Safari in 2010.
web sockets
This one is true. IETF standard 2011. Supported fully in Safari 2013.
IndexedDB API
W3C recommended standard in 2015. Supported in Safari in 2014.
animations
If we're talking the Web Animations API, it hasn't been standardized yet (W3C working draft) and level 2 isn't even that far.
relative color syntax
Not standardized yet. It's currently a W3C working draft.
container queries
Not standardized yet. It's currently a W3C working draft.
a bunch of <video> stuff
Need specifics.
flexbox
W3C candidate recommendation 2018. Supported in Safari 2013.
Google implementing a draft they themselves authored with minimal review doesn't make it standard just because w3c publishes the draft.
Rather than go through every single point (because I don't have all day), I'll just pick one:
> IndexedDB API
> W3C recommended standard in 2015. Supported in Safari in 2014.
No.
It didn't work in 2014, it wasn't working until 2016. (see: https://gist.github.com/nolanlawson/08eb857c6b17a30c1b26)
So what? It was recommended in 2015 and was working in 2016, what's the big deal?
The big deal is that if you tried to see if you could use it at all, you would get false information:
```js
function indexedDBOk() {
return "indexedDB" in window;
}```
This returned true on Safari, all of the functions did, and a bunch of them looked like they worked too, until they completely bugged out.
So we couldn't use them until it was fixed, *and* because you can't reliably use features until the last two major versions of a browser support those feature and because Safari releases updates locked to OS updates, that means that it wasn't what most would consider "supported" until nearly 2018.
That feature that every other browser had working since 2012 wasn't "working" until almost 2018, for Safari, and worse than that 6 year difference, they lied about it working.
So you could spend 6 months working on a project, release your product, then get inundated with bad reviews because it didn't work for half the population with iPhones.
And instead of improving your project, you have to either try to retrofit the base storage layer of your app, or build a new product based on a different tech. That's assuming you were lucky enough to have the runway to continue and not just have your project fail.
They weren't just late, they lied and those lies harmed developers.
Maybe a bit of a nitpick but this particular comparison is exactly the same with any other browser.
Sure, Safari is locked to iOS version, but iOS adoption rates are insanely fast, about as fast as browser updates. We are talking 90% current major version adoption within 5 months. Here's a source with some historical info: https://worldmetrics.org/ios-version-statistics/
So really, at worse you're looking at being one year behind to cover 95%+ marketshare in iOS.
The latest version of Safari runs on the two previous versions of macOS, so it's even less of a problem on macOS.
> So you could spend 6 months working on a project, release your product, then get inundated with bad reviews because it didn't work for half the population with iPhones.
That could happen to you if you don't test your software on popular platforms.
Let's not forget, Safari and Chrome have the exact same open source core with proprietary commercial applciation development model. Safari has about 1/4 of the user base as Chrome. But here we are expecting the open source community around Webkit to fix bugs just as fast as Chrome?
You could have fixed the indexDB bug yourself if you wanted to. I would say that what you are framing as "Apple lying" about capabilities can be more generously interpreted as "Apple has 1/4 of the community developer resources to find and squash bugs in Webkit compared to Chromium." Really, it's far less less considering that essentially every other browser besides Mozilla uses the Chromium engine. Microsoft is of course another huge company also contributing to Chromium, and once you put Google and Microsoft together Apple doesn't look like such a behemoth anymore. The only thing that makes Apple "bigger" is the fact that they sell a lot of high margin hardware. In reality, the software businesses at Google and Microsoft are far larger and more complex than Apple (e.g., Apple has no enterprise cloud computing business, and essentially no enterprise software business at all).
Mobile Safari would regularly break WASM. Like iOS 10.1 and 10.2 just broke it for no good reason. It had a broken WebGL 2 implementation for a long time. This hobbled Unity games.
The compressed textures support for WebGL was also broken for a long time.
The lowest latency WebRTC codecs that Stadia and Xbox Cloud Gaming used were also purposefully not enabled by default. Google had to smuggle in an obscure WebRTC feature for low latency via libwebrtc that Apple just didn't know about.
I have no idea why you guys are going out and defending this stuff. Android Chrome has much better support for web standards that Mobile Safari does, even in situations where the codebase was shared like libwebrtc, because of strategic Apple decisions.
For all we know WebXR immersive just isn't ready yet, just like WebXR wasn't ready for VisionOS 1 and shipped in VisionOS 2, which also makes sense considering that Apple's VR/AR business is years behind its competitors.
Broken stuff can just be bugs and regressions.
And I think it's also contextual to point out that Google really badly needs you to prefer Chrome and have the browser with the most features a lot more than Apple needs Safari to be anything more than a functional basic web browser. Examples like Stadia or even Unity in the web browser are essentially features that nobody asked for and that have worked better as native applications for decades. In other words, Google depends on the web browser being "the only application" as much as Apple depends on their users turning to the App Store first.
I totally get where Apple has a vested interest in boxing out competitors in the way you describe, but at the same time some of the complaints end up sounding a lot like bugs or just being generally behind in development velocity.
Chrome, Firefox and IE had buggy implementations in 2012. Firefox didn't support IndexedDB from worker threads and would corrupt data. Chrome couldn't write blobs and would corrupt data.
Safari certainly required more workarounds due to more bugs than anyone, but the truth is that the IndexedDB standard sucks. For goodness sake, there's still no standard for locking to prevent corruption between two tabs (while everyone supports the Web Locking API now, it's not actually a standard).
We would have all been better off if we tossed it and replaced it with WebSQL.
You spent 6 months developing against an unstandardised technology on a platform with well documented compatibility complexities, and you didn’t test it on one of your larger target devices?
I think that’s on you, friend.
And so you'd purchase a new iOS device for ~$1000 and test against it.
Then you realise that you're getting bugs from some customers that you literally cannot replicate on your device.
Then you realise that the bugs are type of device independent, so you need to purchase one of every kind of device apple offers for ~$10,000 and test against those.
Then you realise that the bugs aren't just type of device independent, they're actually dependent on a combination of OS version AND type of device.
So you spend another ~$10,000 for a second copy of each device, and set them up to never auto update.
But now you need to wait 12 months for the next iOS update so you can test the current and the previous version, but waiting 12 months won't do.
So you want to rollback iOS versions, but Apple doesn't let you do that.
But they do let you simulate combinations of iOS devices and versions through xcode. So you buy a macOS device and you're out another $5,000 and spend time simulating, but then you realise that the simulations don't actually replicate the device bugs, they're just running sandboxed versions of desktop Safari on the host machine that are scaled down and streamed into the simulated device. And so we've learnt a $5000 lesson on the difference between simulation and emulation.
So here you are, out ~$25,000 and dealing with customer complaints and troubleshooting, the you find something unexpected... You find a customer with a combination of type of device and OS version that you have, and you can't replicate the issue.
So it's not just type of device plus OS version dependent bugs. The bugs are independent to the devices themselves. Yes, really!
So what do you do at that point?
You have no way to reliably test if a feature works, the only thing you can do is take Apple at their word and recommend to customers that they can still access your product through other platforms (Android, macOS, Windows) and just put up with the angry complaints and reviews from iPhone customers that you can't help.
--------
The above comes from personal hands-on experience.
We have purchased multiple of the same device on the same day from the same shop with the same OS on factory settings and have witnessed different behaviours.
Reporting issues to Apple is useless, their responses are absent at best, and hostile at worst.
Monocultures that allow for one company to make it hard to avoid advertising and data tracking on the web are even worse.
Firefox has mindbogglingly bad performance with :has() even if their superficial tests tell you otherwise. I experienced minute-long lockups just because I used :has() on a large element like body. Chrome and Safari had no issues with those selectors.
MS in their IE days did the exact opposite, trying to make as many proprietary IE only features as possible.
I was there, I suffered through it, Google would have to make TONS of hostile moves for that fact to change.
I have no interest in the arguments of a closed source subscription service that wants me to switch to the bundled browser of the wealthiest company on earth's most popular consumer OS, lecturing me about using the 4th wealthiest company on earth's browser that I freely installed.
The most important one from an anti-trust perspective, every device I've ever had Chrome on I've had to seek out and install/make default Chrome, that includes my mobile devices which used the manufactures browser by default.
If I want to use chromium I can, Safari has been VERY late in implementing certain industry spec standards (SSE's, web sockets, IndexedDB API, animations, relative color syntax, container queries, a bunch of <video> stuff, flexbox, the list goes on and on.)