Hacker News new | past | comments | ask | show | jobs | submit login
I can't stand developing for Safari anymore (reddit.com)
134 points by thunderbong 3 months ago | hide | past | favorite | 159 comments



I on the other hand am utterly grateful that we have Safari:

1. It is a great browser from the users perspective. Nice UI, very fast, battery efficient.

2. Generally has a good privacy record and does propose and champion web tech around that.

3. Safari is pretty much the only reason we actually have web standards and the web isn't defined by the reference implementation - Chrome.


> It is a great browser from the users perspective.

Not for everyone, maybe for those users whom Tim Cook often sights as "won’t have to make risky decisions" like say installing uBlock origin.

Besides, the rant in OP is not just developer problems but issues which prevent the developer from delivering best experience to the Safari users and thereby the users loose as well.


That is why nowadays there is a WebKit fork that runs uBlock Origin - Orion browser.


Chrome wouldn’t even exist without WebKit/ apples push and contributions.


That’s true. But at this point, I think Chrome might have more dev-rel people than Apple has full-time Safari engineers (!!)

Before Chrome forked WebKit, they were doing the lion’s share of the work in WebKit. And even now a huge percentage of the security fixes in WebKit are credited to Google (according to macOS and iOS release notes).

You have to give the devil his due: Google has invested in the web platform in a way that Apple never did.


Pretty sure Google would have forked KHTML or even Gecko themselves if Apple had not forked KHTML to become WebKit.


3. ...except on iOS.


I, on the other hand, appreciate Safari not being an utter resource-hog and a battery drainer. I don't need all these shiny features. I'm ok with "dumbed down" static sites.


Exactly this. I've tried Chromium, I've tried Firefox. Safari is simply much faster.

From TFA:

> I'll add a banner asking the user to switch to a more modern browser, like Chrome or Firefox, if he's on a Mac.

I believe the phrase is "good luck with that". Is the author's site genuinely more compelling than the user's choice of browser?


Exactly. If the site doesn’t work in Safari, I don’t need it. If you are designing a site for my consumption, you damn well better be designing it to be usable on my devices. Especially my iOS and iPadOS devices which account for about 70% of my tech use.


How odd to demand anything of a free content producer, no?


There was a free concert in a park of my city recently. I wouldn’t mind hearing it, but traffic and parking was too much of a pain in the ass so I stayed away.

How odd that I would let things that irritate me get in the way of hearing a free concert.


I'm not sure I understand you correctly, but I think it would be a more apt comparison to complain about the songs performed at the free concert rather than all the externalities of it. If that's your complaint, then I stand by my observation: how odd...


Safari on osx makes requests to URLs you type in but before you actually hit enter.

No doubt this makes it feel faster


I've got that turned off. Still much, much faster than anything Chromium-based.


Wait until you try the new Safari Tech Preview. It seems significantly faster. So far, I don't hate the new UI, but I need to add more tabs.


Humm. Maybe some of us want our browsers to be, you know, browsers! Not full-blown virtual machines. I'm quite happy with Safari. I don’t want web apps, I want web pages!


Notifications wouldn't waste any CPU cycles that aren't already there. There's no excuse for not implementing them other than forcing devs to use their app store.


I don't want notifications on any webpage. if I need to see an update on your website, I'll click a link/bookmark or type the URL, thank you.


I don't want any notifications from my apps either. If i want to see the latest news from my (bank app), or an advertisment from a local electronics store (from Viber), or to find out what happened "on this day" (from the OneDrive app), or that Customers are noticing me (from the Gmaps app) . What's the difference?


The web is literal hell when every damn site you visit wants to know your location, enable notifications, and all this other stuff.

Switching from Chromium based back to Safari was nice for me.


Point is I don't care if Safari doesn't support notifications, since I don't want them anyway. So I see it as a plus.


Imagine if you had to disable one feature toggle though? Better yet: imagine if they were only optionally enabled when you added the PWA to your home screen??

Seems like we could both easily have exactly what we want.


This would be ideal, in my opinion.


PWA-s are just one point amongst many, if you read the post. There are heaps of basic document rendering issues, and on anything except macOS Safari is the only browser choice.


In that case, Safari should make it clear that its users should not expect web application to work well. OP proposes helping Safari do that by displaying informational banners when appropriate.


Applications work just fine. Developers have to be a bit more precise. For features not supported, really a non issue, considering the Android update and support cycles


That's not true, there are numerous bugs especially on ios. What all browser vendors have figured out is that browser updates should be decoupled form OS updates and this is what Google and Microsoft are getting right,frequent updates, new browser engine features and fixes are available almost immediately.


A lot "features not supported" by Safari is supported by Android > 4.4.4. I can target >90% of users on older Androids and still have compatibility issues with Safari users. Unacceptable.


So if I want a full-blown virtual machine I can put that on "my" phone right?

Oh wait Apple controls that too.

I guess in the absence of allowing us to have full-blown virtual machines we'll have to settle for asking Apple to update their browser.


Yeah, this. ~95% of our usage is on chrome (our app is education so lots of chromebooks) and yet safari makes up 50% of the problems.

The issues recently with localstorage being broken ( https://twitter.com/jaffathecake/status/1389493762129375232?... ) have been particularly egregious, there's lots of users losing content on safari and we have to explain it's due to Apple breaking their browser (again).


What do your developers use as their "daily driver" browser? I bet it's Chrome. Reminds me of a decade ago, when IE6 was the bane of everyone's existence, yet no developer actually used IE6 regularly enough to catch bugs themselves. You've got to dogfood at least in proportion to your users.

This also sounds a little like when application or game developers complain that some very high percentage of their bug reports come from Linux instead of Windows, but when you ask how many of their developers primarily develop and test on Linux, the answer is zero. Well, of course you're going to get most bugs on a platform not regularly used by the devs!


It’s a mix of chrome and firefox, though also some safari to make sure we notice issues. What I’m talking about is obviously broken web apis ( another recent example: https://news.ycombinator.com/item?id=27509206 ), or missing features, not so much compatibility issues that would be explained by that. We have far fewer issues from Firefox for example, and certainly not major data loss bugs like those.


What about your choice to use technology that you admit is broken? Or at least imply that Apple will break?


I just read Cory Doctorow's column about quitting tobacco: https://doctorow.medium.com/i-quit-9ae7b6010c99

He notes how big tobacco authored the playbook for all disinformation, that everyone uses right now: "a denialist doesn’t want to convince you that smoking is safe, they just want to convince that it’s impossible to say whether smoking is safe or not."

Apple is intentionally making a "not truly shitty, just bad enough" browser to have us all eternally question whether PWAs, web apps and other open web technologies are inferior to apps. It's worth billions to them to do that. And, its awful that they are destroying a sphere where open culture could thrive and blossom while they do that.


I mean, in what world aren't "PWAs, web apps and other web technologies" inferior to real apps? I have complex real-time 3D video games that do things like fluid simulation and have dynamic maps that take fewer system resources than any Electron or QtWebkit/QtWebEngine app I've got. I can use CSS for GTK and actually-native Qt, and they don't wreck my system as hard. I see no benefits to PWAs; it sure seems like Apple's doing everyone a favor by making them less common, and I say this as a Linux user who kinda likes having more professionally-crafted apps. I'm pretty much the target audience for them, given that if they don't exist, people are still going to make apps for Mac and Windows. And yet, I would sacrifice every single one of them without a second thought. They don't add enough benefit to be worth it.


> I see no benefits to PWAs

Creator of https://rpgplayground.com here, which features game tech running in the browser, so I definitely disagree with this statement :).

Here is a list of benefits that I see:

1. One build runs everywhere, Windows, Linux, Mac, Chromebook (used a lot in schools), Android, iOS, I even have someone running it on an XBox web browser.

2. No download and install, so barrier to entry is way lower. Also great for locked down systems. "Wanna play my game? Play it here"

3. Everyone runs the latest version.

4. Easy update scheme: I update the website, and everyone gets the latest version.

5. Not giving away % of revenue to platform owners.

I code in Haxe, so I could easily build a native version for any platform. But I am a one man shop, and maintaining all those versions and updates is way more work.

The world is all about trade-offs, and claiming PWA's are either superioir or inferior is a very naive way of decision making.


>1. One build runs everywhere, Windows, Linux, Mac, Chromebook (used a lot in schools), Android, iOS, I even have someone running it on an XBox web browser.

This also exists outside of web development (e.g. Qt)

>2. No download and install

The client must download the source code, same as any other platform. The installation part occurs when the user had to first install a web browser before being able to use your software. Outside of a monstrous application, installation is almost instantaneous these days.

>3. Everyone runs the latest version.

Nothing new here. For instance web browsers: They download in the background and silently install upon next restart. Also, running the latest version isn't necessarily an advantage, especially if it wasn't the end user who installed that latest version or otherwise has no control over whether it gets installed or when.

>4. Easy update scheme: I update the website, and everyone gets the latest version.

This might be the only advantage. Though, if such deployment is a requirement, setting up the necessary servers to facilitate the communication with the client isn't nearly as difficult or complex as it was even 5 years ago.

>5. Not giving away % of revenue to platform owners.

Unless you're talking about an iPhone app, then this isn't a requirement.


>I see no benefits to PWAs

For games, sure, native is much better. But for any other app, which doesn't require a lot of rendering and simulation, PWAs are actually a great option.

You can have one codebase for both platforms. Through the use of Cordova you can actually use native apis very easily. Also, using PWAS gives you access to the thousands of useful packages in the npm ecosystem. How about the tens of thousands of themes you can use to enhance your app? Or things like Vuetify or TailwindUI to quickly craft attractive UIs

If you're not making an app which needs a lot of computational power I would say a PWA is a great option.


> But for any other app, which doesn't require a lot of rendering and simulation, PWAs are actually a great option.

Slack and Spotify are both resource-hungry applications that would benefit immensely from being native applications. Yet we are stuck with the worlds laggiest IRC client and an application that you’re actually better off running in the browser so it doesn’t destroy your SSD (again).


Electron is somewhat different than a PWA. They are not the same.

Electron packages up its own browser and something akin to a node process along with your code. There is effectively no sandbox on Electron. Last I played with it the minimum bundle size is ~80MB, depending on the platform and feature set and it runs somewhat larger on disk after install.

A PWA uses the existing browser on your device and must abide by the browser's sandbox and limitations. It's basically running as a page tab but skinned to look like a native application.

For both Slack and Spotify, I would prefer a PWA over electron. They work fine within the sandbox and then it's simply smaller/faster and your browser, the one major dependency, updates separately. That's less bandwidth to keep everything up to date, less resources both on disk and in ram. Given you advocate using the browser for Spotify, it seems that you would prefer it to be a PWA as well.

There are pros and cons to both approaches, but from a resource perspective, PWAs are potentially quite lean. The last PWA I published has a download footprint of about ~800k, uses ~3MB on disk, and ~30-50MB of ram when running, and ~1s load time on my phone. It's pretty much a big ball of javascript, light on pics or media other than the icon set - but runs an inventory system and allows some modest camera assist from the device. Contrast that to a React-Native application I produced of the same complexity at a previous employer, it was 30MB download, 50MB on disk, and even more ram, and 3 s load time on my phone. PWAs potentially open faster than similarly complex native app if the browser is already running and in memory - which is a common case.


> Given you advocate using the browser for Spotify, it seems that you would prefer it to be a PWA as well

Ideally I’d like us to stop trying to force every single application into the browser when they don’t belong there. I prefer to use Spotify on web over the electron app only because it’s only marginally less-bad there, I’d prefer it more if it was a native application like Apple Music is because all my music is on disk anyways.


Even using Slack in a browser indicates how heavy it is. Abysmal.


That is kind of the exact opposite of the point I was making. Games would be fine as PWAs in theory: nobody expects video games to use few resources or to be power-efficient. Anything else isn't a good fit, because PWAs are ridiculously bloated for fundamental reasons even for basic applications.


What do you mean by "ridiculously bloated"?


Here's a good example! Open up this page in your web browser; not the site the thread is linking to, just the thread:

https://news.ycombinator.com/item?id=27576937

Opening it up, fresh, it's taking 49.9MB of memory for me. For a tab I've had open for a while, of the same page, it's doing 60MB. And that's despite it not being a "web application": it's barely a web page! So here I am, doing exactly what everyone claims I should be doing, and using a web browser for my web content. And one of the most spartan sites on the internet, Hacker News, has mildly-active threads that take up 60MB of memory. For the tab. Not for the browser, for the individual tab.

The best Electron application I've ever came across launched with 100MB of memory consumption and pegs a CPU core. That's not even getting into how nearly every single Electron application puts 150MB+ on your hard disk, because that in particular isn't incredibly relevant.


Just trying to understand you... When I open it, it takes 6.37 (sometimes 6.18) MB of memory. I look at the 'Memory'-tab in the webdev tools in FF browser. For a second I thought uBlock or NoScript made a difference, but when I disable these I get the same result of around 6 MB. What am I missing?


Using about:performance for Firefox 88.0.1 on GNU/Linux. As far as I know, this is the most accurate way of measuring single-tab performance on Firefox.


Thanks. I still hover on 5 or 6 MB. Your point still stands if you ask me, even simple webshit is unnecessarily heavy a lot of times.


I (and I think most users) don't care about how much memory an individual webpage uses, as long as it feels fast.

I'm sure there are many like you who want applications to be frugal with memory and cpu consumptions, but I think most users don't really give a damn.


They care when the computer slows down and the battery drains faster.


I personally like having battery life and the ability to multitask. I don't think it's something that only non-technical users want, or even something particularly rare. Surely most users like their phones lasting longer on a single charge, given that's sort of the root of the discussion.


Memory consumption of that level has no noticeable impact on battery life.

There are bloated web apps that should be improved for sure, but they also exist with "native" languages.

The issue has always been runtime computations, PWAs are perfomant if you keep them low.

I wrote myself an ebook and webnovel reader PWA which tracks progress by pixels and percentage amongst other things. There is no noticeable difference between fbreader (native) and this angular app. I get the same amount of drain per hour as I repeatedly verified when I switched.


The very nature of HTML and CSS which are designed to display some text and maybe a few images make them ridiculously unsuited for literally anything else.

You as much as glance at a web page, and it causes a repaint and reflow of the page.

Everything else stems from that.


HTML+CSS is a layout system that has been refined and heavily used in many screen sizes for several decades now. Try to find an equivalent system that works from 4/8k down to 320px width in any native system.

I mean, there ARE downsides to using web tech, but as a flexible layout system that can gracefully describe very large ranges of targets I have not found it's equal.


> Try to find an equivalent system that works from 4/8k down to 320px width in any native system.

You probably mean literally every native system. Because it's not like native toolkits didn't exist on the same systems as HTML+CSS.

> a flexible layout system that can

There's significantly more that's required of UI than just layout. And HTML+CSS are horrendously bad for anything beyond a static page of text with images.


You just keep repeating that claim and don't bother to present an argument. There are plenty of effective dynamic web pages that are not painful to create as a counter point to your claim.

For layouts, I've used various toolkits including Qt, Java AWT and SWING, and Visual Basic way back when. Creating a GUI that scales gracefully on these, in my experience, is time consuming and highly difficult. Most everyone favors static layouts because of the challenges. Learning responsive design on a web page takes a bit of time but it has the tools to reasonably manage a variety of layouts on a wide range of screens.

I would even accept an individual native system's layout manager as a counter argument of something that is at least competitive. It really isn't an easy problem.


> You just keep repeating that claim and don't bother to present an argument.

These facts are obvious to anyone who has seen anything else besides just HTML+CSS.

Adding a simple box shadow on an element will trigger reflow in most browser engines [1] Efficiently animating anything that as much as breathes at layout is impossible. Efficiently displaying anything beyond a few hundred elements on a page? Equally impossible (and there are no virtual lists on the web).

But the actual argument is this: given "the most advanced and powerful layout system in the world that has no parallels anywhere else, it's so unique", why is it that most CSS frameworks struggle to implement anything beyond the most basic of controls (buttons, links, may be tabs)?

> Creating a GUI that scales gracefully on these, in my experience, is time consuming and highly difficult.

Ah yes. "Scales". Because this is the area that only HTML and CSS have to deal with. Because, you know, resizing windows didn't ever exist since the earliest days of GUIs.

However, being able to work at different sizes isn't what "scaling a GUI" means, or should mean. Desktop apps have been able to work at different sizes for close to 40 years now.

[1] https://csstriggers.com/box-shadow


Yeah, that is until you don’t want a webpage as an app. Proper accessibility, controls, behaviors, memory usage.

I can only applaud Apple. Please do that Cordova stuff on your own phone. There are enough frameworks that aren’t that bloated if you really don’t want to develop for a platform


Proper accessibility, controls, behaviors, memory usage

All things which you can implement in a pwa. Do you have any experience building native, hybrid or pwa apps?


Many mobile apps just exist to browse a certain web site (HN, Reddit, etc) at which point making a native app makes little sense if you're just copying the design of a site. This also extends to desktop (Spotify, Steam, etc). The problem with Electron (or CEF or QtWeb*) is that it's running an independent rendering engine adding a significant overhead. If you're already running a browser even complex web apps such as a WebGL sculpter[0] add a minimum usage on the session. Of course there's the problem of persistently running a web browser which may lead to high energy consumption.

[0]: https://stephaneginier.com/sculptgl/


Link to a post in this thread that I wrote partially as a response to yours but don't want to duplicate:

https://news.ycombinator.com/item?id=27601802

On a whim, I also opened the front page of reddit (again, in my web browser that's already opened) and the tab is taking 140MB fresh.


Is this page resource usage on the browser or the total? Else, you used the browser's (about:performance in Firefox) or you system's task manager to get this figure? If the later, that is exactly what I meant with engine overhead. You should consider that initial figure shared among tabs/apps.


I used about:performance; I'm not stupid. Is there no expectation of good faith here?


Strange. It shows only 1.7MB on FF 89.0 (Linux, x64). That's why I thought you're checking the total memory. Then again the total in there is far smaller than what the system usage is, so this manager is unreliable.


I know we don’t do this here but this made me chuckle. Favoriting this.


Not to mention that PWAs/web apps, while being "open web technologies", are inferior in that [0] by default all the data/secret sauce is for all intents and purposes proprietary and outside the control of the user. Big whoops if you have an open web technology frontend if you cannot escape the platform, with your data, stay on an older version, etc.

[0] I'm aware of web apps that use local storage and other strategies to keep user data out of a silo, but these are the exception not the norm


The web is by far the most portable and secure application platform in history. There are definitely advantages to native apps, but you can't pretend that web apps don't have some major advantages.


> in what world aren't PWAs, web apps & other web technologies inferior to real apps?

Apple controls the iPhone ecosystem. That's how they're worse. It's the single most dictatorial move our industry has seen, and it's damaged our industry to the point we have to go through a single company to reach consumers.

The minute native Rust/WASM with custom painted UI and the ability to call device APIs lands, it's game over for app stores. Or it would be, if Apple would allow this stuff to exist on their platform. (They won't.)


No, it's not because of the iPhone ecosystem that PWAs are bad. It's not because of the iPhone ecosystem that web technologies are ridiculously bloated with no intention of actually fixing the problem. It's not because of the iPhone ecosystem that web apps are inferior to every other type of application you can find.

You can't blame every single problem on "the iPhone ecosystem."

I certainly don't like the iPhone or its software; this doesn't mean that it's somehow responsible for PulseAudio being bad. Not everything can be tied to the iPhone. Really!


I think in fine the PWA problem stems from a lack of education: some developers were exposed only to Javascript and think of it at the alpha and omega of programming. Ironically the web isn't even a platform for developing software to begin with. And because they can't be bothered to even try any other programming toolkit, they want everything else to come in the browser (GPU, SQL, USB, etc), duplicating existing OS functions in a weird half-assed, incomplete, buggy and security-wise questionable way. I don't know what the fix for that is, but probably taking what pure web developers say less seriously would be a good start (in this thread for example, the reference to NPM, a package manager known for the vulnerabilities it enable, is laughable).


Just want to point out for appreciation: Using in fine in an English sentence is fantastic and not done enough.


Somilarly, the strategy for the Conservative Party in the UK for many years has been to systematically underfund the NHS so that the cracks start to show and they have to fly in with private healthcare or private healthcare insurance provisions. Many party members hate the NHS, but the UK public love it. So they're stuck making claims to support it, but in reality funding per head in real terms falls and falls.

They just have to make it bad enough.


I don't love the NHS. I think it has shown what happens when you combine the potentially endless expense of healthcare with the beauraucracy of government.

How many other countries justified their Covid lockdowns with statements like "we need to protect our healthcare service"?? Our healthcare service is to protect us.

I live in Wales, where the Labour party has been in power at all levels of government for decades, and the Welsh NHS is practically non-functional.

Personally, I think an ordered transition to something like every other European country has (a mix of very basic public healthcare and various levels of private healthcare) is the best way forwards.


Would you be surprised to learn that the NHS is cheaper (both in terms of cost per person treated and as a proportion of GDP) than the healthcare systems of France, Germany, Belgium, the Netherlands, Norway, Sweden, Japan? Its also way, way cheaper than what they have in the USA but I guess that isn't surprising.

Basically every comparable country has a more expensive healthcare system than the NHS. The NHS is incredibly efficient (or systematically underfunded, take your pick).

https://www.ons.gov.uk/peoplepopulationandcommunity/healthan...


Yes, and it shows. Anything other than critical or emergency care is of a distinctly lower grade. I thought it would be a fun idea to do "healthcare tourism", where I fly in people from other countries to experience nationalised healthcare. US citizens in particular would be horrified.


It sounds like you should be voting for parties that want to put more funding into the NHS then, right? Its both way cheaper than its "competition" (healthcare in other countries) and apparently lower grade than you want?

To me it sounds like there is a super simple answer to that - don't vote tory.


The NHS is a money pit, with endless layers of middle managers and expensive consultants leeching off the system. I don't think that pouring more money into it will fix anything. I think it currently offers terrible value for money, when you take into account the general quality of healthcare you receive at all stages of your life. Do you have a niggling pain, sports injury, or condition that turns you from a fit active person into someone who can only perform average daily tasks? Tough, you have to wait until it's a real problem.

https://www.telegraph.co.uk/news/2019/10/28/nhs-manager-allo...

Edit: and to your "don't vote Tory" point - as I've already said, I live in a place (Wales) where the Labour party has controlled the Welsh NHS for decades, and we enjoy about the worst healthcare in Europe.


The NHS provides very comparable treatment to France and Germany in my experience, given that it is cheaper than both do you have any evidence to back up your claim that it is worse value for money?

I have also lived in Poland for a time, believe me if you think Wales is close to the worst healthcare in Europe you are blinded by your privilege.

I think you and I are used to different standards of evidence. I provided you the statistics showing you that the NHS is cheaper than any G7 country except Italy (which has substantially worse outcomes) you provide me with one guy living in Marabella. You see how I find the first more convincing?

Edit: to address your last point, the government in Wales is pretty much a function of the money they get from Westminster.


I can't speak to your personal experience, but picking on Germany - for a relatively small incrase in GDP spending on healthcare (11.7%, compared to the UK's 10%), Germany has three doctors per 1000 population. The UK has two. Germany has three times as many hospital beds compared to the UK. France has fairly similar numbers to Germany.

50% more doctors, and 3x the number of beds - I'd call that a whole lot better.

It's not deniable that the NHS is "cheaper", and I have not tried to do so. I am saying that the quality of care is not sufficient, and may even be less efficient than other (more expensive) healthcare systems.

Edit: The Euro Health Consumer Index puts UK healthcare at 16th out of 35, putting it below all of the "tier one" countries in the EU. You certainly can't argue that the NHS is providing comparable healthcare to countries like France and Germany, for a lower price.

As for the "Wales can only spend what Westminster gives them" argument - the Barnett formula assumes that the average taxable income to the government per head is the same across the UK. As this is not true, it actually results in relatively more tax revenue going to the nations (like Wales) than the taxes those nations raise, per capita (yes, I know you can make arguments about which expenses the central government defines as "local" and "national" spending, etc etc). Welsh Labour has squandered huge amounts of this money. If anything, I am in support of each nation only having access to the tax revenue that it generates, as that would very starkly show just how under-performing the Welsh economy is (and I say this because I want it to be better. Knowing what the problem is is the first step to fixing it.).


The need to avoid overloading the system exists regardless of whether it’s public, private, or a mixture of the two. Just look at New York and India for examples from very different cultures and political systems.

Edit: not to mention Italy’s early example also


Bullshit.

We hear this all the time about education in the US. "Oh, we just don't fund it enough because of those eevviiill Republicans!"

There's plenty of money. It's just poorly spent.


The UK spends less per capita on healthcare than almost any other G7 nation (except Italy) [1], while maintaining a good standard of care [2]. That suggests that compared to other countries:

1. There isn't plenty of money

2. It's spent quite effectively

[1] https://www.ons.gov.uk/peoplepopulationandcommunity/healthan...

[2] https://www.kingsfund.org.uk/publications/articles/big-elect...


Bullshit.

We hear this all the time about stuff happening outside the USA. "oh x can't be happening because its different to my super-narrow experience of one country that I've randomly decided is universal".


Maybe it's the other direction, and Apple is trying to get website builders to realize that you can just serve an HTML page with a simple stylesheet, some images, and some forms, and it can be a great User Experience (UX).


The New York times consistently creates amazing online experiences using current tech, and the result requires fewer resources, is more accessible, and works significantly faster than any project of any people that whine about Safari on Reddit and HN.

Just a few examples:

- 50 Reasons to Love Joni Mitchell’s ‘Blue’ https://www.nytimes.com/interactive/2021/06/20/arts/music/jo...

- A 3-D Tour of How the Senate Was Transformed for the Impeachment Trial https://www.nytimes.com/interactive/2020/01/23/us/politics/i...

- The Climate Change Pledges Are In. Will They Fix Anything? https://www.nytimes.com/interactive/2015/11/23/world/carbon-...

And so on and so on. Can't quickly find the biggest and the most complex ones, but they are there.


A bit off topic, but I felt compelled to comment, because I have strong feelings about these "news experiences" on NYT and other websites (I think Wired has a few).

I think they are beautiful to look at, and perhaps they are smartly built. But personally they make it so much harder for me to absorb the actual content. In the climate change example, the text is large and framed in isolation from the other elements, to the point that it's difficult for me to parse the overall context of the article. The Joni Mitchell article is a bit better, but the text on the right is squished to the point that it feels stressful to read. I understand the goal is to frame the image on the left, but it feels like overkill.

When it comes to news I prefer the content to malleable and customizable (accessibility, content size, color pallet). I don't mind that these experiments exist, just pointing out that they are a bit anti-web in my opinion.


Yeah, their news are just text and images. But then they have these larger features that live at `/interactive/`. But I can agree with you that the interactivity can interfere with you trying to understand what's being presented.


I would love to be able to see these…if only there want a pay wall. Now reader mode takes all that beauty and effort out.


Interestingly enough, they were available to me. I wonder if I haven't hit the "you've reached the limit of free articles on NY Times"...


You can't deploy Unreal Engine, Netflix, or Spotify as a nice experience with plain HTML. (Maybe if the web had evolved differently, but that's an alternate history without Steve Jobs purposely crippling the web.)

Apple are a bunch of crooks that want everything to be in the App Store so that they can control it and twist these other companies' arms. (Yours too, if you're an indie developer or startup.)

Apple gaslighted us into thinking this is okay, meanwhile we bleed money sitting in their stupid walled garden jail. (I'm sick and tired of people caring about what's good for Apple. They have more money than God, and they don't need our welfare. Especially not while they're breaking our backs.)

A nice step towards a better web would be to require that Apple allow non-Safari browsers on iPhone.


Why in the world would you want to run Unreal Engine, Netflix, or Spotify in a browser on your phone, a platform which is notable for being constrained in memory, processing power, and battery life? My original comment was a little glib, but if Apple's evil plan /really is/ to twist peoples' arms into not making software engineering decisions that are prima facie ridiculous, then more power to them tbh.


Then don’t buy an iPhone, and don’t develop for it.

Create the BEST Android and Linux desktop experience you can.


...as if developers are building things solely for themselves.


Great, so ignore half of US consumers?

Apple are totalitarian assholes taking advantage of their market position. They've redefined computing as a "protected" function. (Read: protection = regulated and taxed)

I really wish it had been Microsoft that won instead. You'd all be complaining just like me.


Nobody should be genuinely surprised a trillion-dollar company is trying to defend it's walled garden. If only portable computing devices arrived before the business models evolved. I would love the flexibility of a desktop operating system on my mobile device.


> portable computing devices arrived before the business models evolved

> flexibility of a desktop operating system on my mobile device

There used to be powerful Palm and Windows PDAs with very capable operating systems and lots of complicated software. There were devices like the Nokia N900 (then the iPhone came and destroyed everything and everyone) and there still are handheld devices with full operating systems (like the GPD computers).

People just don't want those. Maybe you do, but for every you there are millions who don't. It's not about the business models.


Maybe, but even on desktop I nearly always prefer a native app over a web app.


And in which cases specifically do you prefer a web app on desktop? I can't think of any that could possibly be better.


I can think of the "desktop" apps that are actually a bundled web browser like Slack and Skype. I utterly detest them - slow and without proper native menus and memory hogs.

If only a native toolkit had been available to build the UI........ oh wait....


  > Apple is intentionally making a "not truly shitty, just bad enough" browser to have us all eternally question whether PWAs, web apps and other open web technologies are inferior to apps.
It is a fact that a company which derives 99% of its revenue from hardware/apps is against PWA (Apple), and company that derives 99% of its revenue from the web (Google) is pushing PWA very hard.

However to me as a user what Apple is doing makes much more sense. If you care for the web, you should be doing exactly what Apple is doing and that is preventing web from touching your hardware as much as possible.


The missing automatic updates part is the thing that bothers me more than anything else. Browsers are very popular attack surface. And if you need OS update to fix those issues, many won't install the updates immediately.


Apple installs security updates in background. E.g.:

> Your Mac automatically installs background updates for the security configuration and data files used by macOS.

Source: https://support.apple.com/en-us/HT207005


In principle, yes. In practice my experience is that neither macOS nor iOS is very automatic. All it takes on macOS is for another user to be logged in, or for you not to leave your laptop on charger overnight, or a single app to be open that doesn’t automatically shut down. I don’t understand why iOS can go so long without doing it (I’ve seen it go weeks with an update notification & being plugged in every night)


>I’ve seen it go weeks with an update notification & being plugged in every night

Even tho you switched "Install iOS Updates" on?


Yes


Is Chrome more secure because it has its own update engine?


That article is not saying that Apple installs security updates automatically. It downloads data files and configurations, which doesn’t fix security vulnerabilities.


Good point; a more accurate example: https://9to5mac.com/2019/07/10/zoom-apple-macos-update/


Still no grid-gap in Safari for iPhone.

https://developer.mozilla.org/en-US/docs/Web/CSS/gap#support...

Yes, in order to apply uniform spacing between CSS grid items for iPhone users, you have to use margins, and thus deal with the "last item 0 margin" problem manually like it's 1999. Grid-gap is supported in Safari for OS X, Safari for iPad, but not Safari for iPhone. Apple is a 2 trillion dollar company that can't figure out grid-gap for iPhones.

This is just the tip of the iceberg of nightmarishly annoying "bugs" (too soft a word) when it comes to Safari... don't get me started on the fullscreen API.


> Still no grid-gap in Safari for iPhone.

Ah, you're sad that Safari doesn't implement the full CSS Box Alignment Module Level 3 spec

- which is still a draft version (so is continuously changing)

- whose latest version was published just a week ago

?


Of course if your standard is ‘whatever Chrome does’ it’s different


lol the CSS Box Alignment Module spec started in 2012[1]. it's not exactly cutting edge. it is a bit hard to properly nail down this behavior, sure. but this is far from cutting edge. even when the spec was made, it was more trying to quantify what most of the browsers had already steered towards. apple is a serious foot dragger in every manner on the web. there's endless complaining about the web and "back in my day web pages were pages damn it" (aka demanding we all write & download native apps again for everything on every platform) and griping about modern capabilities (usually notifications (cause they're overtly terrible. and someday someone's going to write a browser that deals with permissions ambiently rather than with modals & Google's going to look like a real shit for permission spamming the web)).

the truth is safari is a terrible dragging scourge and really basic stuff like box model isn't implemented until apple absolutely positively has to, and even then they break their stuff regularly.

trying to be all "the spec isn't finallliiizzzeeddd" doesn't make me feel any better.

I am sad that Safari doesn't have ~33% of CSS Box Alignment Module after a decade of it being reasonably well expectable. I am mad Apple roadblocks the web by refusing to allow other browsers to run or compete.

[1] https://www.w3.org/TR/2012/WD-css3-align-20120612/


> lol the CSS Box Alignment Module spec started in 2012

lol and in 2012 it didn't have even half what it has now

and the last change to that spec was only a week ago

> I am sad that Safari doesn't have ~33% of CSS Box Alignment Module after a decade

gap wasn't in the spec a decade ago. I, for one, am glad that Safari actually waits for the spec to stabilize bit instead of rushing headlong into something that will likely change.


https://www.w3.org/TR/2017/WD-css-align-3-20170906/#gaps

gaps is 4 years old. this company is trash & awful & their pathetic negligence is fucking up the web something wicked. it's obvious as fuck what sabotage this is & it sucks. this isnt caution it's anti-competitive against the internet.

that the spec is changing is a huge cop out. apple can't drag their feet for years on every spec while preventing apple users from getting a better web experience, but they do. it's a trashfire way to treat the web, to hold it back. then to be constantly breaking features? apple doesn't just not care, they chronically underfund & debilitate the web.


> gaps is 4 years old.

Oh, look. You managed to look it up. So, it's no longer "over a decade old" but "this particular thing that I think Safari must implement is 4 years old".

Meanwhile:

- that "4 year old" part of the specification didn't fully specify how percentage lengths work

- the behaviour of 'normal' wasn't specified

- gap shorthand only applied to grid containers (now it also applies to other containers)

- gap shorthand was underspecified (how it's animated, what are initial values etc.)

And that's only the things that I could immediately see. And this is only for one property out of dozens in a single standard out of thousands.

> it's obvious as fuck what sabotage this is

Whatever this is, it's definitely not sabotage.

> apple can't drag their feet for years on every spec while preventing apple users from getting a better web experience, but they do.

They can, and they will. Is the web a worse experience? Can't say a feel a difference because you didn't get that one single toy you so passionately care about.

> it's a trashfire way to treat the web, to hold it back.

Safari is only slightly behind Firefox on the number of features (aka Web APIs): https://web-confluence.appspot.com/#!/confluence


I don't get why anyone would so aggresively go out of their way to carry water for a company that doesn't even allow users to use a modern web browser if they wanted to.

are you paid to write this? what is your reason for being such an apple boosterist? do you really think waiting for specs to stabize is critical important to your day to day, that not having emerging features somehow saves you anything? why does absence buy you?

standardization requires implementation. we need the data. we need people to try things to succeed in making good standards. in my view, waiting till it's done to start is not an option. it's how not to make a standard.

I don't understand why you would work so hard to justify anti-web behaviors, particularly ones users are so vulgarly locked into.


> aggresively go out of their way

> are you paid to write this?

> what is your reason for being such an apple boosterist?

I see you prefer ad hominem attacks instead of facts and reality.

I'm not google to engage in such a dialog.


To repeat, I genuinely don't understand why you would work so hard to justify anti-web behaviors, particularly ones users are so vulgarly locked into.

It seems overwhelmingly weird.

If you want to see that as an attack, well ok. That's not how I intended it. I'm super confused by this. I think you should try to tackle this questioning, not coward out. It seems ultra-convenient for you to dip out at this moment, to refuse questioning, after having been on the attack & aggressive against other people for so long. You have been a knife against choice, & now you are refusing any defense or explanation of yourself. I'm not sorry you don't like how I ask, but it's not ad-hominem. And I think you should be held to account, provide explanation for why you would so aggressively attack user choice & acess to a modern web.


> If you want to see that as an attack, well ok

> coward out.

> It seems ultra-convenient for you to dip out at this moment

> aggressive against other people

> refusing any defense or explanation of yourself.

> I think you should be held to account

What a charming person you are. "I'm not attacking you", keeps attacking. "These are not ad-hominem", continues discussing my person, wants to hold me accountable, calls me a coward.

Oh please, do go on.


this entire conversation you have forcibly dictate terms & refused honest engagement.

to repeat, again, i genuinely don't understand why you would work so hard to justify anti-web behaviors, particularly ones users are so vulgarly locked.

i have tried to support a better future. you assaulted growth & progress & participation & standards, & have dodged ducked & rolled you way around facing the assaulting you've done against progress. you pick only choice quotes & ignore the real meat of all topics.

answer my top question please. rather than shirking my genuine question, rather than taking the lowest offenses & sufferances you can possibly draw: addressing those faults I've described. you find only the lowest forms of disagreement. you should answer with a modest middle or higher level. but you focus only on how wounded & wronged you feel for being called out for your attack dog aggression against the web & user choice. so I ask again: why you would work so hard to justify anti-web behaviors, particularly ones users are so vulgarly locked.

everything about this conversation has indeed, as you say, been terrible, just awful. but my motive & objective are clear. you are a mask. nothing is clear about why you would be so aggressive & restraining & limiting to humanity. I would like you to justify your closed world view, your aggressive defense of Apple's domineering. please answer. please stop this disingenuous dodging. offer something real, offer some truth about yourself. stop dodging. stop trying to assault me & my character. i have made myself obvious, and nothing about your intents is clear. why would you impose your close minded narrow views on every other person who owns an apple product? why would you go against the common, well known expectation that browser makers implement standards before finalization, to learn & improve before it is too late?


And still no zero telemetry from Chrome. Why does a browser need to send hundreds of requests "home" when a user starts the application?


Apple totally broke IndexedDB in the latest version of Safari. It bit me recently and broke a ton of websites that use IndexedDB:

> Apple's WebKit team has managed to break the popular IndexedDB JavaScript API in the latest version of Safari (14.1.1) on macOS 11.4 and iOS 14.6.

> The bug, first reported on June 2, 2021, only manifests when applications first try to use IndexedDB NoSQL manager to store data. Reloading a web page or app implementing the API resolves the issue, according to several bug reports.

https://www.theregister.com/2021/06/16/apple_safari_indexedd...

Here are a few more recent examples:

https://twitter.com/feross/status/1386835131780931587

https://twitter.com/feross/status/1392671684419735552

https://twitter.com/feross/status/1263544033135038464

I mean, look at this list of IndexedDB issues in Safari and tell me this is a reasonable platform to develop for: https://gist.github.com/pesterhazy/4de96193af89a6dd5ce682ce2...


The way the address bar appears and vanishes breaks calculations based on viewport height and just drives me crazy. You work around it with hacks in javascript. It’s marked as “wontfix” according to stack overflow


There’s a proposal for new units to solve this problem: https://twitter.com/argyleink/status/1407026742460440577


I have no words to express how much I hate this.


Like listening (15 years ago) to a spoiled ASP developer whine about having to support browsers that don't have ActiveX.


My app has this funny bug about placeholder on textarea cannot handle newline character.

This is Chrome https://share.getcloudapp.com/QwuA20oY

This is safari https://share.getcloudapp.com/p9uANGol


This item has exceeded its view limit!

The item owner has been notified that their item has exceeded its view limit.


This kind of complaint has popped up quite a lot lately, and despite developing pretty complex web apps using lots of nice modern features I just don’t recognise it. This particular example isn’t even more than a childish rant.

Developing for Safari is broadly fine. Main thing is it tends to get cutting-edge features a bit later than Chrome or Firefox. I encounter bugs at the same rate as any other browser… and that’s it. Depictions of Safari as “the new IE” are ludicrous to the extent they can only feasibly be from people who never worked with “the old IE”.


There is was one huge problem with Safari that can't be denied. Safari does not update itself. All other major browsers by now are ever-green browsers. Ever green browsers update on the go constantly, silently, in the background. Safari major updates are tied to update of the whole OS. This is a HUGE limitation.

https://www.techopedia.com/definition/31094/evergreen-brows


I don’t consider “my software doesn’t randomly change underneath me” to be a disadvantage.

The number of bugs I have hit as a result of Chrome updating itself far outweighs the problems I’ve had from Safari being out of date.


the word randomly does not apply to updates of Google Chrome. Updates in Google Chrome are a literal masterpiece of software engineering and continuous integration: https://developer.chrome.com/blog/new-in-chrome-91/ Clearly regression bugs still happen but when they do happen they get fixed much faster and rolled-over sooner.

Finally, stability gained exclusively by not changing things will turn in staleness and lack of innovation. Apple decreased their innovation efforts in the past ten years in exchange for incremental changes and just CASHING IN. This time they won't be able to re-hire Steve Jobs to come and save the day.


I'm sorry I don't quite understand. In one instance he's like

> Seriously? On iOS, you cannot install another web browser. Well, you can install an application named "Chrome", but it's only Safari with another skin. Because Apple forbids creating a web browser on iOS.

And then later they say:

> I'll add a banner asking the user to switch to a more modern browser, like Chrome or Firefox, if he's on a Mac. Just like IE.

If they're all just Safari, what's changing browser going to do if they're on iOS and your above statement is correct????


He specifically mentions that he'd show the banner if the user is on a Mac.


>I'll add a banner asking the user to switch to a more modern browser, like Chrome or Firefox, if he's on a Mac. Just like IE.

This site is best viewed on Chrome and Firefox. This brings back lots of good ( and bad ) memories LOL.

Is there a single place with a list of things that Safari dont support or work differently compared to Chrome and Firefox? Or Basically a quirk mode list for all browsers?


that would be https://caniuse.com/


Here's a really simple example of something that would benefit standard websites, not just complex web applications: image lazy loading.

<img src="..." loading=lazy>

Sure you can handle this with JavaScript, etc. The point is that this is one of countless papercuts - standard, useful behaviors that work everywhere but Safari.

https://web.dev/browser-level-image-lazy-loading/ https://caniuse.com/loading-lazy-attr


WebKit already has experimental support for this, just needs to be enabled in Dev tools. Which means it will be rolling in to Safari and other WebKit browsers soon.



There's actual downside to this. You now need Mac just to develop the web, otherwise it might break on iOS too.

My latest personal web design works well on Chrome and Firefox, but there were some z-index problem with Safari which I didn't know until someone report it to me. Good thing I have access to Mac, otherwise I wouldn't even know where to start.


OK so let's have a thought experiment here. The only way to solve all these problems is to have just one browser. Because as soon as that number is greater than 1, there are going to be incompatibilities which will lead us to current state of affairs eventually.

Would like a world with just one browser? Which one would it be?


Firefox and Chrom(ium) can be installed on almost all major OS. Microsoft has always provided VM images of Windows+IE/Edge in supported configuration in the common formats (VirtualBox, VMWare, etc) for free.

Apple provide nothing after they discontinued Safari on Windows.

I don't mind testing on all major browser as long as I am not required to buy a specific hardware for all the browsers.


> Just like IE was a pain in the ass because it was the default browser, Safari is here to stay.

IE wasn’t a pain because it was the default browser. IE was a pain because it was IE. Edge is the default browser today and I don’t think many people have an issue


I use Safari for development and the compatibility is great across all browsers.


Agree about the bugs, some of them are ridiculous. Every browser needs to fix bugs instead of adding new features. Firefox on Mac is not a viable alternative, because it's too slow.


Has anyone also noticed that the BBC News website occasionally crashes latest safari on latest IOS? I’ve wanted to report this before but I seriously cannot be arsed.


No, never. And I use it all the time.


.co.uk or .com? I’m on .co.uk everyday without any issues


Safari is the new IE. We have to live with it.


Not even close. Safari is everything a sane browser should be - fast, power efficient, privacy respecting. Few things that it lacks like extensions ecosystem are not making it the new IE.


I do all my browsing and development in Safari and I find using anything else quite unbearable. From the messy developer tools to the lack of system-wide password manager, the other browsers out there just don't do anything to deserve consideration. I recently did some benchmarks, all on the same device with purported support for the same processor, and the Brave browser cannot run one of my apps at anywhere near a usable speed. Benchmarking it produced scores _half_ that of Safari's (meaning half the speed of Safari). I've spent ages in Chrome trying to get it to simply wrap text when viewing the source code of scripts, which can be a literal pain because Google thinks Dark Mode isn't worth implementing for their developer tools. And I wish this left at least Firefox as an option, but every time I open a Firefox window or tab, it tries to read my machine's environment variables--if denied access to this sensitive information, it becomes unusable and unresponsive. No other browsers do this except those in the Firefox family, such as Tor Browser. Yeah, the privacy browser, as it calls itself.

So now the narrative is that Apple isn't supporting PWAs because they want to make money from the App Store. First, they do support PWA features, because PWAs are not a singular thing, but a list of new ideas for web browser features. Second, installing web pages as apps by adding them to your mobile devices' Home Screen is a chore performed only by developers who are also die-hard Apple luddites. Only European developer-managers have brought up PWAs with me as a serious option and alternative to a native app. I can only try warn them that the general population in the West at least, has no clue what a PWA is and such "apps" will have no visibility on the App Store, amongst many other drawbacks. It just seems like a fantasy held by a niche group of developers with a pet argument against Apple that PWAs will ever gain mindshare or usage with anyone but each other--not the flock of average users they need.

Please tell me I'm wrong about my final point--but part of the PWA "standard" is web workers. I understand these as Javascript files that run perpetually or periodically while the "app" is even closed or minimized. As Apple battles cookies and trackers, these web workers seem to be invisible to the user, so far as I can tell. Background App Refresh is another story, you can disable it or toggle it on a per-app basis. For Apple to support PWAs, they must first apply this same control to web workers, and with every other security setting.

The iPhone was launched as a (proto)-PWA-only device, but developers hacked and pleaded for native app development by third parties, and Apple delivered. They're delivering on PWAs too, even though it's kind of redundant (I make cross-platform apps for web and mobile/native easily).

Even as Apple lowers their fees/commission for App Store operation costs, and PWA features are carefully added along side--decades of light-weight competitors desperately spreading FUD and moving goal posts has created a subset of people (gamers mostly but some devs too) who think of Apple the same as people thought of "Reefer Madness" or any other psyop that is less about sound reasoning and engineering and more a battle of attrition.


Care to share what did you use to benchmark it, curious to reproduce the results?


Please don't link to old Reddit, as it doesn't look right on phones


Looks better than the new one, even on a phone.


You need to stop. Stop developing for iphone. Tell your users, loudly, sorry, due to Apple limitations, iphone is not a supported platform.


Yes, stop developing for 1.5 billion people. That’ll do it! /s


Where is the EU in this case ? Here's a company that is intentionally crippling a public standard that governments use to deliver their services all over the EU, and denormalizing it. Some public-facing APIs like web notifications should be mandatory and required to work in all browsers . A public body like the W3C could be making this kind of recommendations.


"Public" web standards my ass. That are only implemented by Chrome, and are at best documenting what Chrome does after the fact. Coming from a self-serving, self-acclaimed "standardization" body (WHATWG) consisting of a bunch of Chrome devs, and having never delivered a single finalized spec. Which is now approaching tens of thousands of pages, with thousands of APIs only ever implemented by Chrome that are never going to be implemented by FF and Safari due to privacy (fingerprinting and other) concerns. And are you seriously calling on W3C to spec out even more absurd CSS complexity split out in tens of fragmented specs piled on top of each other, and superseding one another without explicit reference and lacking any formal semantics? Coming from a pay-as-you-go org? That is responsible for the stagnation of the web when they were busy with redefining the "web stack" in the 2000s (in good faith, but still) and consequently lost to Ian Hickson's WHATWG?

If the EU and/or others are interested in standardization and sustainability, they should begin to demand and stick to standards in public services/tenders, and turn to standardization bodies with proper statue to clean up the mess.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: