Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
“Safari's buggy” is valid criticism, “Safari's behind Chrome in features” is not (twitter.com/lapcatsoftware)
173 points by dmitriid on July 30, 2021 | hide | past | favorite | 239 comments


Recent and related:

A critique of Safari's influence on the web - https://news.ycombinator.com/item?id=27985783 - July 2021 (184 comments)


> I personally think we should abolish JavaScript and not allow arbitrary remotely loaded code to execute on our computers.

> "I want web sites to do everything a native app can do" is a suicidal mistake.

If you think you're ceding a lot of power to Google and Apple when it comes to browsers, I fail to see how "That webapp you're building can't use Javascript so build it in Objective-C/Swift for iOS instead" would cede less power to Apple.

At least I don't need Apple's approval to build my website...


> I personally think we should abolish JavaScript and not allow arbitrary remotely loaded code to execute on our computers.

Yeah this is honestly where I stopped reading. The ship has long-since sailed on this one - on-demand software clearly wins on utility over local software in most cases, a fact which is proven by how dominant web is over native software despite it's many shortcomings.

I actually think what we need to advance software is a better stack/tooling for web to bring it closer to the native experience. I.e. I can imagine a world where my laptop is mostly a platform for running WASM/WebGPU code downloaded from network on demand - and it would be nice if that type of software was not so reliant on the browser as a middle-man.


I think we need BOTH a platform for on-demand apps AND a platform for documents with some dynamic content. That we've tried to put both together into one platform is, I think, part of the problem. I would like to be able to read the news on my phone without the cpu going to 100% and draining my battery. I would also like to be able to do collaborative document editing and video calls without having to install an app that takes up space even even I'm not using it. Today I feel both use cases suffer from running on a platform that tries to handle both.


Exactly. And I don't even think the separation would be hard on a technical level.

I spend a lot of time on websites where I rely on JavaScript (Google Maps, navigating GitHub etc.), but it's always the same handful of sites. Having a "Trust this Website" button to whitelist these places would totally work. Everyone else can serve me static HTML or lose me as a visitor. (I realize that's kind of what NoScript extensions achieve, but they're not a standard with enough momentum.)


In some sense I agree, but I think it's really difficult to understand where you would draw the line.

For instance, the modern web is a UX nightmare - every time you go to a site, you get bombarded with popups, requests to send notifications etc.

But how can you define which level of interactivity is allowed on a document without limiting creativity and the potential of the platform to grow?


For an extension like noscript or ublock, yes, it's hard to draw a line. One site uses one feature set, another site uses a different feature set, and if you draw the line around the union of those feature sets then it's too broad. Ads complicate things even more, because a simpler technology makes it easy to filter them.

I don't think the solution is in trying to draw such a line. I think the solution is to build something that covers 80% of the use cases, AND makes it sublimely easier than the technology we use today, AND is backed by someone with the power to deliver it to users.

There are examples in our history where we rejected a complex technology in favor of a simpler one, so there is some precedence. Remember HTML 3.0?


> a fact which is proven by how dominant web is over native software despite it's many shortcomings.

I wish it was, perhaps may be by numbers i.e. websites vs native software but if we take mobile ecosystem, native applications rule and many of the web pages are just landing pages for those mobile apps.

Smartphones are the first computers for majority of the world and significant population among them would have never opened a browser to enter an URL but perhaps would have used WhatsApp to click a link and opened it in built-in browser.

Even in web, mobile visitors has long overtaken desktop but again how much of it is organic i.e. direct or search when compared to those from social media, chat apps which again are likely to be native apps(and opened in built-in browser).

After a decade of developing mobile(native) apps for all major platforms I've quit native mobile app development and have started to focus my efforts back on web; My audience are intentionally those who wouldn't mind using a web application but I still occasionally receive questions from a new user like 'Is there an app for this'.

I strongly believe that until the duopoly in mobile ecosystem is fixed, Web is under serious threat.


> I wish it was, perhaps may be by numbers i.e. websites vs native software but if we take mobile ecosystem, native applications rule and many of the web pages are just landing pages for those mobile apps.

Largely because iphone doesn't let you install a proper browser that doesn't lack most features from the past decade, and iphone users is where the money is at so that is what companies targets.


Although iOS browser locking is troublesome and dangerous for free and open web it's not the reason for why native apps are preferred on smartphones; It's because mobile apps are easy to access, faster to use and Big Tech invest humongous amount of money in promoting those apps as it can siphon more data.


> mobile apps are easy to access

Easier than typing a web page once and then maybe clicking "add to my home screen"? Which is how PWAs work. They are great on Android, but iphone has deliberately not supported the standard.

> faster to use

Citation needed.

> Big Tech invest humongous amount of money in promoting those apps

Again, apple doesn't support the web, so companies that want to leverage web capabilities are forced to develop native apple apps.


Yes, that would be great! Except Apple deliberately hobbles their browser to prevent competitiveness with native apps.

But I guess that's the whole point of the discussion :)


> Apple deliberately hobbles their browser to prevent competitiveness with native apps.

It might be true that it’s not competitive but no evidence that it’s deliberate.


If it wasn't deliberate they would let you install Chrome instead of forcing you to use Safari with a chrome skin. And why do they have Safari with a chrome skin? Because then most gullible users thinks they can actually use chrome and that chrome and safari are mostly the same, when they are actually really different and they therefore don't understand what they are missing. Even here on HN where people should know better you sometimes see users say "if you don't like safari you can just install chrome!".


> If it wasn't deliberate they would let you install Chrome instead of forcing you to use Safari with a chrome skin.

Because browsers allow remote code execution and Apple wants to limit the attack surface.

This is about gullible users being protected from attackers by Apple.


No need to even go this far. Just have Javascript as an option, not a default. People seem to have lost sight of the fact that the web was and still is functional without all the added browser features. By all means, have the features, but making them defaults is something very different. It is denying the more basic functionality of the web. In some (read: many) cases, using the web in a more basic way without certain features reduces the amount of risk a user undertakes. Sometimes it is just plain faster and more reliable, too.

This developer-dictated "defaults" strategy is developer-friendly but user-hostile; it's why we end up with power users commenting on HN along the lines of "I can't turn off X, because then all sites will break." Most users (non-power users) cannot even turn off X because they do not even know they can. They haven't got a clue. Developers like it this way. This is some highly manipulative maneuvering; this is unethical IMO, but I think like a user not a developer.

Defaults are definitive. Perhaps that's why the current CEO of Google, before he became CEO, worked so intently to get vendors to make Google the "default search engine". Users do not change these defaults.


It is an option, the web has just evolved past no-javascript sites.


Or in other words, it's actually not an option.

You disable JS, you make most websites unusable out of the box. You don't even need to go that far; disable web fonts and half the websites' buttons become undecipherable.

Technically those might be options, but in reality you have no other choice if you want to use the web.


I would like to see something in the middle. Instead of defaulting to no javascript, default to "javascript lite". But make "javascript lite" full-featured enough that it makes building websites _easier_. I know a lot of people have tried this already, so clearly it's a hard problem, but I think there's a market for it. There's a reason why wordpress, geocities, myspace, medium, and even AMP all exist. Limiting a content creator's options can make things simpler, and people want simple.

Imagine a technology where I can test my page on one browser and be confident it looks right everywhere, not because the browser has market dominance, but because all the hard work of targeting the lowest common denominator has already been done for me. When was the last time you thought "hmm I better check and make sure this markdown document renders correctly in safari"? I think this is where the world is heading, and it's why so many sites are supporting markdown syntax. But there are so many markdown flavors and engines that we've just pushed the problem to a different level of the tech stack. But I think the concept is sound, even if the technology is still evolving toward that ideal.


What you’re describing is/was jQuery. Then we learned how to transpile things back to earlier versions of JS and all bets were off.

If you use today’s jQuery to build out some functionality today, it will likely work exactly the same for every browser since IE10.


> It is an option, the web has just evolved past no-javascript sites.

For many sites it is not an option. If you disable JavaScript then it does not render at all. I've also run across web sites that do not work at all if cookies are blocked.

IMHO this kind of design is just retarded. If you want certain functionality dependent on those features being active, I can understand that. But them being disabled should not prevent the web server from sending me HTML and CSS so something renders on my screen.


> retarded

I know this is HN, and there are a lot of people here who are resistant to social change, but please don't use this word


It is an option, it's just not convenient to you.


> Just have Javascript as an option, not a default.

This is already the case, isn't it? You can easily disable js for good, and then enable it as needed on a per-site basis.


It hasn't been the case for some time now. JS started as something to spice up the html content, to add extra niceties. But The rise of virtual Dom JS rendering Frameworks brought upon pages that don't have any html content, that don't display anything without JS, Just a Blanc page. For some time adopters of such Frameworks would keep a limited functionality noscript page, but it didn't take long for them to drop the extra work. The highest profile website following this theme is Twitter, the dropped noscript a year ago. So JS is not optional anymore, to browse the full web you need JS, without it you get a subset that doesn't include some major social networks or some major news sites.


In what other way could JS be an option than it is now?


Ever since JS was added to Netscape Navigator, it's been the case that you need it to experience the full web. The difference is that now you need JS to experience more than a small fraction of the web.


I think more effort should be put into cross browser support, but that said.

> "I want web sites to do everything a native app can do" is a suicidal mistake.

Most Mac users are just using MacOS as a windowing system to run Chromes browser engines multiple times across the bunch of Electron apps they use to do their work.

The age where Mac users were mostly working all day in native Cocoa apps is long dead, I think I might be the only person in my office that uses a text editor running on Cocoa not Chrome.

We didn't get here by accident, end of the day Figma is better than Sketch, Google Docs is better than passing Pages files around, Google Maps in a browser window where your actual research is happening is better than opening the Apple Maps app and Slack is better for work than Messages.

The world moved forward, Jeff might not like which tech stack it chose but no one is making anything written "natively" on Macs that can compete, and it's silly to say that it shouldn't exist while that fact is true.


You forgot the elephant - vscode - built on chrome (electron) and now used by majority of devs.

Also folks who want js go away web sites dont realize how massive the ecosystem is. How many unicorns are SaaS vs Native? You are asking them to go out of business?


We ended here for pure business reasons, and not as a convenience for end users. JavaScript programmers are dime a dozen comparing to Cocoa programmers. What we ended up with is suite of software almost no one uses on their free choice.


“Business reasons” and “convenience for end users” are not entirely decoupled because developer time is not infinite or free. As an end user, the app that exists on my platform (Figma on windows) is better than the app that never got ported because it’s codebase is tied into a bunch of OS native stuff (Sketch). If an app costs half as much because it’s easier to hire developers who know JS compared to native devs, I’ll also be happy. If an app gets features added faster, or is less buggy, or has a better plugin interface, hey, I won’t complain.

There’s nothing that says “as an end user I’ll always prefer electron” - I don’t care what it’s written in. But from my perspective there seems to be a lot of high quality electron software that may not have existed otherwise.


The business decision Apple made to largely ignore Cocoa, especially any semblance of documentation, and then confuse “native developers” by giving them conflicting half-baked solutions like Catalyst and SwiftUI? I guess given the option between a closed-source half-assed framework like Catalyst that even Apple themselves can’t make reasonable apps with (see Apple News), and an open source half-assed framework like Electron where you can at least contribute a fix instead of having to wait a full year for the surprise of whether your reported issue got fixed or not, most people just preferred the latter.


Also we have to consider that porting software or trying to make it work with the same characteristics and UI is pretty difficult and expensive (in time and money) compared with a web app or an Electron application.


>We ended here for pure business reasons, and not as a convenience for end users.

But it's users who are creating these business reasons. Many people, myself included, simply don't experience native software as universally superior as platform purists would have it. So we're not paying for it.

And no you can't simply blame employers either. They may not care much about what their employees find more convenient or more beautiful, but they sure care about productivity and TCO.

Resource constraints are not a capitalist conspiracy. Free software suffers from the same issues and trade-offs between implementing actual features and re-writing software for six different platforms and UI technologies.

A choice free of any and all resource constraints cannot exist.


I also fail to understand how "lets install native code to run on our OS" results in more security and privacy.

The browser is inherently more locked down than native apps. A Facebook app on your computer can read anything on it without any pesky browser security and privacy features getting in the way.


> A Facebook app on your computer can read anything on it without any pesky browser security and privacy features getting in the way

This is not true, at least on OSX.

It will ask the user to confirm whether the app is allowed to read/write to key locations e.g. Documents, Photos as well as access key sources of data e.g. Contacts.


Unlike on iOS, we are unable to determine access per app at a file level on MacOS (OSX). The permissions are at a folder level. Thus, if we give access to the Documents folder today and then pick a single file, the app is actually free to scour the Documents folder and act on its own (scan the meta data of all the files, upload all the files somewhere, for e.g.)


That just leads to decision exhausted users saying yes by accident. Traditional browser policy errs more on the side of not making things that are too often dangerous especially if they are rarely beneficial over safer flows. Trying to make progressive web apps do whatever an app can do is basically being bug for bug compatible with bad ideas that sound "convenient".


>decision exhausted users saying yes by accident

true this. day before yesterday, i had a webapp ask camera and mic permission and after giving yes to both got a third dialog immediately - i read it but gave yes accidentally before realizing it was permission for push notification -

such a dark patterns can be used for exploiting users.


The Twitter thread isn’t discussing security or privacy. It’s discussing who (effectively) controls web standards right now, and who should do so in the future.


"Apple has too much control over the web, so let's build native apps in Apple's walled garden" is not exactly the most persuasive argument.


Agree. I can see why a Mac/iOS developer might feel that way though.


Don't forget to pay your apple tax (TM) on the hardware to actually build said native apps. And your yearly tribute to the apple app store so they flip a coin as to whether your app is listed or removed.


The author never says that - you are misrepresenting them. They are against the walled garden.


But removing javascript from browsers will just make more walled gardens. Browsers are not walled gardens, unless your OS prevents you from installing other browsers (see iphones...).

It doesn't matter what you say you support if the consequences of what you do hurts that goal.


> But removing javascript from browsers will just make more walled gardens

What new walled gardens do you think would be created if JavaScript was removed from browsers?


A walled garden for every OS.

MacOS and iOS apps will need to be written in Swift, so you better hope all devs know Swift and have Macs to write code in.

Windows Apps will need to be written in... uh, C#? Good like finding as many devs for that as there are currently for JS.


I think that goes back even further: The industry has invested a lot to push the concept of arbitrary automatic updates. Today it's not just normal that the code and functionality of your installed apps is constantly changing, it's almost expected. An app that doesn't get updates is considered dead.

Nevermind that this results in a system that is completely impossible to reason about, that this allows companies and corporations to play out business politics right on your hardware and that now suddenly apps can be taken over by malicious parties.

Suddenly, we need a privileged "app store" 3rd party that can constantly monitor apps and ban them, should they suddenly turn into malware.

That is suicidal.


>At least I don't need Apple's approval to build my website...

Yes. But some day you may need Apple's approval for Apple's user to visit your website due to security / privacy / or other ideology them deem unfit for their user's consumption.


Seems like the original tweet is now gone? But I do want to say, full fledged webapps have been an absolute game changer for internal tools at large companies. I can't even imagine maintaining internal tools any other way now.


The author also is critical of Apple’s control of the App Store. There is no contradiction.


These arguments are all backwards.

Yes an independent small-time developer cannot create a browser engine from scratch today, but Apple does not fall into that category. Their choices with Safari are not born out of lack of resources or expertise but deliberate planning.

Yes large companies have seized control over the web from W3C. Apple is one of those large companies. They refuse to follow standards that they themselves dictate for others.

Yes pushing more features to the web is going to result in loss of privacy. But Apple doesn't want vanilla websites, they want developers to make iOS apps (gated behind their store) which are worse in every way.

Plus it doesn't address the biggest argument, which is that even if you say Apple can do whatever it wants with Safari, what is their rationale for blocking other browsers on iOS? It sure isn't because Apple loves the open web.


> Yes large companies have seized control over the web from W3C

The W3C is a consortium, that's what the "C" stands for. Said consortium is comprised of "very large companies" and it always has been. That's the point: cooperative game-theory.


That is not how it has always been. For most of its history W3C was run by scientists, universities and government agencies. Google/Apple/Microsoft came much later.


Umm, I was a member of the CSS, XHTML, and XForms committees back in 2001, and most of my fellow committee members were from big corps, including me, representing Oracle on the committee.

Perhaps you're thinking of the IETF. The W3C was always more corporate than the IETF, but even the IETF had lots of corps, it just had more university reps than the W3C did.


As a Consortium the W3C's members are mostly corporations. For much of its existence individuals couldn't even join, now they can but it's expensive. If Bob loses his job at Big Corp, Big Corp are the W3C member, Big Corp gets to send Bob's replacement to the W3C meetings to represent Big Corp interests. Big Corp votes on W3C work, albeit via Bob or his successor, but Bob doesn't have a vote unless Bob joins individually at his own expense he has no voice.

The IETF doesn't have members. IETF participation is an individual activity for people. Your employer can (and many do) pay you to participate, but they're not the ones participating, you are. The IETF doesn't vote on anything, it doesn't have members so a vote wouldn't mean anything, it is looking only for a "rough consensus".


I mean, it's true, but it's kind of a semantic difference. I also served on the IETF Lemonade IMAP group on behalf of Oracle, and although there's no implicit vote structure, one or two committee members can pretty much torpedo stuff, although my experience was more positive, because even though they torpedo stuff, people tend to be more consensus/cooperative driven, and look for common ground solution.

So for example, we were seeking to make extensions to IMAP that gave standards based email something competitive with the Blackberry experience. Some of the proposals specified protocol proposals specified yet another tunneled protocol for real time notifications over 25 or 143, but I objected that deploying this widescale was more difficult due to firewalls, I counter proposed a HTTP based solution which also was shot down. But the group did consider my concerns over deployment, and shipped a BCP document to encourage network admins to be prepared for Lemonade specs: https://tools.ietf.org/search/bcp143#section-6.1

That said, this whole thread really bothers me, because people's attitude isn't "well, Apple should counter propose improvements to achieve use cases, but with better battery/security/privacy", but just "Google bad, don't work with them, essentially boycott the W3C/WHATWG and freeze the web in place. Oh, and let's keep the web like it was 1998."

The Web has changed a lot, people's requirements and use cases have changed a lot. Just take e-commerce or passwords. We all know that sending your credit cards or password credentials to Web sites is bad for security. So login and payments need to be solved and THIS REQUIRES NEW STANDARDS.

You simply can't say "HTML4 was good enough. " because HTML4 meant cookie hacks, HTML4 meant storing your credit cards and password credentials on the server. If Apple cared about these things, they'd make sure to work with Google, and Mozilla, and Microsoft to ensure standardized, secure, private payments and logins were widely deployed and implemented for example.

I really tire of this tribalist fanboyism.

If you think Google is evil or shouldn't control the web, the solution isn't to boycott the standards committees, or to cheerlead a stagnant unchanging web platform (an unchanging platform is effectively a dead platform in the face of changing hardware and user demands), it's to get involved. And therefore, the proper court of action is to demand Apple fully fund their Safari team. It's obvious they's skimping on them, as the accumulated bugs alone are not a philosophical choice, but one based on resources.


Vaguely remember Boeing(?) blocking something in a web spec because would mean upgrading a lot of desktops.


Any details on this? I’m curious


The internet (Arpanet) was invented by the US Government and Universities that worked with them. The www (Tim Bernes-Lee) was created at CERN (scientists) and won out things to other things like Gopher and BBSes.

The telcos almost won the wires for voice instead of IP based systems. It’s been a mix of Government, Scientists, University Academics, and corporations since the late 80s/early 90s if not sooner.

AOL got the masses on the web and things like Prodigy existed before them. AOL is more akin to Facebook nowadays.


Follow the money. For most of its history you had to pay to participate. Yes, their work products and discussions were fully in the open, but you had to be invited to participate if you weren’t employed by a funding enterprise.


> Yes an independent small-time developer cannot create a browser engine from scratch today, but Apple does not fall into that category.

What do you think of Mozilla and Servo? Because quite honestly, I think a moderately sized team should be able to accomplish it with enough time. Yet Mozilla canned the Servo team. It feels like practically nobody can create a standards compliant browser engine from scratch these days.


Mozilla has expenses and revenues approaching a billion dollars a year, employs 1000+ people, and can still barely keep up. I wouldn't classify them as moderately sized.


>employs 1000+ people

How many are actually working on the browser?


The number of people actually working on the browser doesn't change the company size.


One problem is that a lot (most?) of those resources go to things other than the browser.


Add they depend on Googles money. I guess Google is paying to prevent Chromium becoming a browser engine monopoly.


IIRC Mozilla has a foundation is dead in the water


> revenues approaching a billion dollars a year

80% of revenues which the money is from a single partner called 'Google'.

The future of the web is literally in Google's hands, and it is definitely not going to be any more private.

Mozilla appears to have given up the privacy-first browser selling point and has accepted getting paid by the anti-privacy club.


To Downvoters: So this is not true? After looking at this again, this goes back even before Google became a direct competitor.

In 2007, Mozilla was actually going to walk away from Google's millions since they said "We've spent a lot of time and energy making sure that Google understands that it cannot turn us into an arm of Google" [0] This was an effort to make money without the reliance on Google.

Maybe this was the scare that made Google paranoid enough to create their own browser. which first released in 2008.

Since then, Mozilla knew that they were in trouble and Google became a direct competitor whilst they were still funding them and they ended up not walking away from Google's millions. Ever since Chrome came along, Firefox usage was struggling ever since. [1] Google's millions made up for 75% - 84% of Mozilla's entire revenue.

Now today, it has become a two horse race with tons of Chrome-based browsers and only Safari competing against it. With users switching to the Chrome ecosystem, Mozilla (and Firefox) is still on life support and dependent on Google. Even Microsoft Edge even jumped ahead of it [2].

Just like how Nintendo turned Sony into a competitor out of a partnership gone wrong, Mozilla turned Google into a competitor all by themselves and given they are still unable to walk away from them, they have to deal with a partner that is against their entire mission statement.

[0] https://web.archive.org/web/20120105090543/https://www.compu...

[1] https://www.theverge.com/2011/12/5/2612918/future-of-firefox...

[2] https://gs.statcounter.com/browser-market-share/desktop-mobi...


> Their choices with Safari are not born out of lack of resources

Eh, depends what you mean by "resources". Apply is (in)famously a relatively frugal and small company, given it's worth and value. Even it's native platforms, its crown jewels, suffer from this.


[flagged]


There is a difference in philosophy there.

Apple does a lot of design pre-launch and if they can’t make it look like an Apple product, they kill it.

Google throws money and effort and if it’s not a raving success post-launch or something else comes along, they kill it.


> …what is their rationale for blocking other browsers on iOS?

Privacy and security.


> Privacy and security.

That's their stated rationale. I believe the poster was asking for their true rationale.

I would guess it has much more to do with Apple wanting to exert control over webapps running on the phone. This makes sense considering how much money they make from native apps coming from the app store.


That’s also the rationale why a lot of people pick Apple and use iPhones. It just works. It’s secure. You can’t break it. Your mom won’t call you on a weekend to fix some dodgy apps or uninstall malware.


"iPhone shouldn't allow 3rd party keyboards. It's secure and just works."

Then they added support for custom keyboards, and everything still works.

"iPhone shouldn't allow changing the default email app. It's secure and just works."

Then they started allowing you to change the email app, and everything still works.

"iPhone shouldn't allow widgets on the home screen. It's secure and just works."

Then they added widgets, and everything still works.

Same with changing app icons, adblock extensions, dark mode, and so many other user-requested customizations. Every time they have made the phone more open, overall user experience has become better, not worse.

People continue to say the same thing about browsers, locked app store etc., but one they they will open up as well and – guess what – iPhone will benefit from of it.


Someone once asked me how to do a simple task with an iPhone— plug it into a Windows machine and copy pictures from it. It turned out to be impossible without installing iTunes on the PC.

If you have an Android phone, Windows recognizes it as being a USB drive and everything just works. No shitty, bloated, slow, difficult-to-use, third-party app required.


> That's their stated rationale. I believe the poster was asking for their true rationale.

It can be both.

Another example is that Apple believes native apps are the best end user experience. Generally I agree. Native apps also make Apple money by going through the store.


Steve Jobs was talking about privacy since (at least) 2010:

> Privacy means people know what they’re signing up for, in plain English, and repeatedly. That’s what it means. I’m an optimist, I believe people are smart. And some people want to share more data than other people do. Ask them. Ask them every time. Make them tell you to stop asking them if they get tired of your asking them. Let them know precisely what you’re going to do with their data.

> That’s what we think.

* https://www.youtube.com/watch?v=39iKLwlUqBo

What they're doing now seems to simply be a continuation of that thinking. (Sometimes better, sometimes worse.)


>what is their rationale for blocking other browsers on iOS?

Same reason you can’t install custom system fonts on iOS. They want to keep the iOS experience coherent. If you don’t like it, buy Android.

Edit: a system font is a font that system dialogs use. Not just any random custom font installed in the font library.


> Install and manage fonts on iPhone

> You can download fonts from the App Store app , then use them in documents you create on iPhone.

https://support.apple.com/en-au/guide/iphone/iphb2517689c/io...


> But Apple doesn't want vanilla websites, they want developers to make iOS apps

These are not the same category, and that's very much the problem. Well, a problem at least.

Have a website? Make a website! Please! Don't make a web-app, don't make me download megabytes of JavaScript, consume my bandwidth and power, and make me insecure just to read your content and maybe do some minimal form filling. Just give me some HTML+CSS.

If you have something that's an app, please make a real app. Don't make a web-app, don't make me download megabytes of JavaScript, consume my bandwidth and power, and make me insecure when I could be having a native app instead.


I'm on the complete opposite opinion. So many things are native apps but shouldn't be. Not to mention i have no desire to download a random app just to see if it does what i need it to ( consuming bandwidth and power in the process). A website is much more accessible, and can usually do the job.


> So many things are native apps but shouldn't be.

> A website is much more accessible, and can usually do the job.

Not sure why this is the "opposite" opinion, as I specifically wrote that most things should be web-sites. HTML+CSS.

A few things need to be (native) apps.

Nothing should be web apps, because those suck. In addition to sucking bandwidth and power.


If you think even basic websites/web-apps can replicate even 60% of their full functionality without JS, you are terribly mistaken. JS lets you do way more things than <form> lets you do.


"Imagine a small company trying to write their own web browser from scratch nowadays. It's just not possible! "

Imagine the much more common case of a small company (or individual) trying to make a useful app that is available to everyone. If they can make it in a browser, it's possible, if they have to make it for every proprietary platform (iOS, Android, Windows, Mac, Linux...).... often impossible.

I'm happy that web browsers can do a lot. Many of the "security nightmare" arguments don't make sense. It wouldn't be a security nightmare if, for instance, Safari could allow a MIDI keyboard to talk to the web browser as it does in Chrome (ignoring Sysex support, which is the security excuse for holding it back.... there is very little need for that in a browser). God forbid I want to do a piano learning app. This is just one of many examples that may not affect you, but affects some subset of apps. (there are tons more, that one happens to affect my app) People are quick to say "I don't need that in a web browser", but you could say that about just about anything, for instance camera support.

I do look forward to a day when most apps run in a browser rather than having to be platform specific, or require giant teams of developers to be cross platform.


Warning, unpopular opinion incoming:

Cross platform is, frankly, overrated. Depending on the market you're aiming for you have a very limited set of platforms that matter and directly targeting a native look and feel, as well as accounting for hardware and OS constraints, will always produce a better experience.

Games? Target Windows and the consoles (web isn't a "real" solution on them anyway!), test on Proton if you care about Linux, and Mac isn't worth your time. Office software? Windows. Any kind of appliance (emulation station, kodi, etc), Linux. Developer tools? Linux and Windows. Bullshit addictive eyeball farming social media platform? Mobile. Artsy stuff? Mac-first and probably also Windows if you feel like it.

Even so, people were targeting many more platforms than exist today throughout the 80s and early 90s with native ports for each (or a custom VM target, see: SCUMM, Z-machine, Another World/Out of This World) and they had to deal with assembly and a lot fewer standard APIs and no universal toolkits. And they did it with fewer developers, worse tooling, and no Stack Overflow to copy-paste from. I don't really think having multiple native ports is the herculean task so many developers make it out to be.


I think your opinion is unpopular for a reason.

You haven't given any reason why an app developer would want to rule out a subset of their potential audience. You seem to feel that users either a) have money to spend on redundant devices or b) fall neatly into groups.

In my case, I do music apps. They are educational, fun, and inspire creativity. They run best on a computer (screen size, speed being the main reasons) but work on mobile. There is zero reason I can think of that I should pick Mac vs. Windows. If they are running on a phone or tablet, there is zero reason I should pick iOS or Android.

So why should I have to pick just one? How is it better that, for technical reasons, I should be subdividing users like this? Your unpopular opinion doesn't really cover this.


I did give a reason, maybe it was too subtle: the majority of your market is on one or maybe two devices and focusing on a better experience on those devices will make your users' lives better as opposed to cobbling together some compromised jank interface in the name of capturing a few outliers.


The only reason it should be a "jank interface" is because the browser makers haven't been doing all they can to make browsers capable, which is basically what you are arguing against. That's circular logic.

I don't see browser apps being janky. Certainly not mine, and it is an intensely graphical app that also takes full advantage of the web audio api. (it also does several things that native apps can't do, such as it's ability to synchronize and layer graphics on top of youtube music videos)

Some of them are indeed janky, but plenty of native apps are too. Do you do apps? I'd be happy to compare mine side by side to any native app.

But the main point is, why would you want to invest all your development efforts into a proprietary API that locks you in and is under the control of a single company?


> The only reason it should be a "jank interface" is because the browser makers haven't been doing all they can to make browsers capable, which is basically what you are arguing against. That's circular logic.

What I'm arguing against is the idea that any 'universal' target will inherently feel out of place on every platform, that writing multiple GUI frontends targeting only the platforms that actually matter for your application isn't nearly as hard as developers make it out to be, and that ultimately native GUI frontends will make user's lives much better because they fit the system they're a part of.

> But the main point is, why would you want to invest all your development efforts into a proprietary API that locks you in and is under the control of a single company?

You're not locked in to anything, you structure your code such that the platform-specific portion can be swapped out for each platform. This is hardly a new concept.


"What I'm arguing against is the idea that any 'universal' target will inherently feel out of place on every platform,"

Inherently? Why?

Maybe that's what the companies that make them want you to think, so they keep you trapped in their walled garden. I'm not falling for it.


A few outliers? The mobile market share is about 50:50 iOS vs. Android (at least in North America).


But mobile is an outlier use case for a whole lot of things you might make software for. What's the mobile market for CAD software? High-end photo editing or audio work? Programming?


Yeah and I actually develop CAD software. I worked on stuff in the 90s that ran on multiple platforms, then they gave up on that and went all windows, which sucked. Now (rejoining the same company 23 years later) the new initiative is all web based (and yes it does run on mobile, which makes plenty of sense for a lot of the market which isn't design per se but is typically used on site). The web version is damn impressive, btw.

But again, it sucks having to decide between mac and windows, or having a whole ton of effort going into supporting both. (and linux is lowest priority)


And desktop is an outlier use case for lots of things. What point are you making?


I don't disagree. I'm saying stop caring so much about achieving some 'universal' and just focus on the most important platform(s) for what your application does, and make your application fit those platforms as best it can.


Your advice seems targeted at app developers, and for that, maybe it is good advice. (depends on the product, really. Way back in 1996 Hotmail proved that web based apps could compete with native apps, for email apps anyway)

But this discussion is not about what app developers should do today, given the current state of browsers. It is about whether the browser makers should support enhanced capabilities. This is different.

If the browser makers did support more, of course, your advice would become even less likely to be good advice, since you could make it "fit those platforms" just as well.

I mean, maybe you feel that an email apps that runs on a web page is somehow lesser than one that runs natively. Like, you have to go to a bookmark rather than click an icon, so that is going to feel out of place. I say people have gotten used to that a long time ago. Now it is just a matter of supporting all the things they might expect in the app.


> I mean, maybe you feel that an email apps that runs on a web page is somehow lesser than one that runs natively.

I do, and I think this is obvious to anyone who has spent time using both.

> Like, you have to go to a bookmark rather than click an icon, so that is going to feel out of place.

It's much deeper than that. Native applications using native widgets integrate much better with the way the OS works. You can notice this in the little things like how windows behave, how drag and drop works, notifications, task management, system tray usage, etc.

> I say people have gotten used to that a long time ago.

I think that's a terrible metric. People have gotten used to having shitty local monopoly ISPs too, it doesn't mean that's the way we should be doing things.


Maybe you can clarify what kind of app you are speaking of. I'm using Hacker News at the moment, which is a web app. I am typing into a text area, and in a moment, will press the reply button.

I'm not feeing this "lack of integration" you speak of. I don't see how this could be improved if it was in a Windows app, and that reply button was coded using the Win32 API as opposed to being made in HTML, styled in CSS, and given interactivity with JavaScript.

Oh, you mean some other kind of app? What kind? Which apps should be native and which are ok to be web apps? Even if we restrict the discussion to the desktop (so mac, windows and linux native, vs running in a web browser), do you think that, say, YouTube would be better as a native app vs the web app that I currently use it as?

I use the Google's "messages for web" app that allows me to send and receive SMS messages via an app in a web browser. Drag and drop works as expected. And so on. How would it be better if it was a native Windows app?

I also use apps like Gimp and Inkscape, which are technically native but are horrible (because they are trying to be cross platform). And I use a native video editing app called ScreenFlow, which works great on a Mac. But now that my main machine is Windows, it is a huge pain in the ass to use because I have to get out my aging Mac and transfer large files to it.

I use Visual Studio Code. It is built on web technologies (i.e. electron, but it also can run right in a web browser over the web), and is every bit as slick the competing single-OS native app I recently abandoned for text editing (BBEdit).

In every case I am either using apps that are web based (or at least web-browser-engine based), or I am suffering from the downsides of apps that are not.


> Maybe you can clarify what kind of app you are speaking of. I'm using Hacker News at the moment, which is a web app. I am typing into a text area, and in a moment, will press the reply button.

HN is a forum. It uses forms, which the web was more or less originally built for and for which a web browser is a suitable interface.

> I'm not feeing this "lack of integration" you speak of. I don't see how this could be improved if it was in a Windows app, and that reply button was coded using the Win32 API as opposed to being made in HTML, styled in CSS, and given interactivity with JavaScript.

Browsers used to be simple enough that buttons did use the native toolkit. JavaScript isn't even required for what HN does. My point is that HN is less an "app" than it is a "document" and the web is perfectly suitable for viewing it. The same way you use a native PDF viewer to interact with a PDF. Web apps are like if a bunch of people insisted on treating PDF as an application platform.

> Oh, you mean some other kind of app? What kind?

CAD software, audio software, art software, modelling software, development environments, office applications, diagnostic tools, emulators, video editors, photo editors, management tools...

> I use the Google's "messages for web" app that allows me to send and receive SMS messages via an app in a web browser. Drag and drop works as expected. And so on. How would it be better if it was a native Windows app?

It would take up less memory and CPU time, integrate with the system tray and native notification system, be easier to control with windows firewall, could keep a local log, and it would match the look and feel of the rest of the OS, reducing friction. If Microsoft hadn't bone-headedly remove Windows's theming capabilities it could also match your aesthetic preferences with no special effort.

> I also use apps like Gimp and Inkscape, which are technically native but are horrible (because they are trying to be cross platform).

Kinda my point really: they would be better if they used native interfaces instead of GTK. When I say native, I mean taking advantage of the integration provided by using native widgets and APIs.

> And I use a native video editing app called ScreenFlow, which works great on a Mac. But now that my main machine is Windows, it is a huge pain in the ass to use because I have to get out my aging Mac and transfer large files to it.

I'm sure storing your videos in the cloud for use with some kind of web-based editor would be completely seamless?

> I use Visual Studio Code. It is built on web technologies (i.e. electron, but it also can run right in a web browser over the web), and is every bit as slick the competing single-OS native app I recently abandoned for text editing (BBEdit).

> In every case I am either using apps that are web based (or at least web-browser-engine based), or I am suffering from the downsides of apps that are not.

Doesn't mean its a good idea.


> Developer tools? Linux and Windows

I think it's more like Linux and Mac, and Windows users can use it via WSL if they want.


It’s not that hard to write cross platform code, especially when most developer tools are for the terminal.


The more features in browser engines, the fewer platforms the browsers work on.


The most feature rich browser engine (Chromium) is the one with most adaptation across all the most used platforms so that doesn't make sense unless you count users from something like AmigaOS and TVs and in that way get Firefox out on top by purely counting platforms. Otherwise Chromium on Windows, Mac and Linux beats anyone else by a mile.


Even for platforms that Chrome can't easily be ported to, WebKit itself has a very simple and actually reasonable porting API which led to it for example being used on Sony PlayStation platforms, but also being the most important browser engine on the Haiku OS.

In fact, Chrome originated as - and a lot of its code structure post-Blink-fork still signifies it as being - a meta-platform of its own with a WebKit port to it.


> but also being the most important browser engine on the Haiku OS

May not be the best example since Haiku's browser is often cited by people as a big reason they can't use it as a daily driver.


How so? That doesn't make sense.

I mean, if a platform doesn't support something, I wouldn't expect the browser to support it. Even if they decide that it is too hard to support a particular feature on a particular platform, doesn't mean they have to simply abandon the platform. They just don't support the feature.


As a Linux developer, I can test my site in Firefox and Chrome (including on my CI). I can't test it in Safari. The fact that it differs the most makes it a real pain.

I don't really care whether an iOS developer considers this "invalid". My apps support platforms that I can afford to test on, and those that are compatible.


The officially recommended way to test WebKit on Linux is to use the Epiphany browser shipped in GNOME, which shares the same engine (and a quite similar UI even).

Technical previews synchronised with the Safari Technology Preview available at https://webkit.org/downloads/ too.


can't test stuff like ITP though. I ended up just buying an iphone 6s for $50


ITP is part of Epiphany nowadays too: https://blogs.gnome.org/mcatanzaro/2020/09/16/epiphany-3-38-...

And it is part of WebKit's code base, not separately as only part of Safari. Consider Safari as just a UI layer.


oh nice, it wasn't when I was first implementing ITP related stuff, that's good to know.


I don't know how faithful it is, but I recently discovered playwright and it contains a webkit build (even on Linux) which is (in theory) close enough to Safari for web UI testing.


suckless.org's surf could work too.


Why can’t you use BrowserStack or a similar solution to do your MacOS testing? Because this is the same situation MacOS web developers encounter when testing Edge on Windows.


...except that Microsoft makes freely available Windows 10 virtual machine images for testing. [1] Apple expects you to buy a device (several if you need to test multiple iOS and iPadOS versions) or pay a third-party, BriwserStack, which is laggy and an additional cost.

[1] https://developer.microsoft.com/en-us/microsoft-edge/tools/v...


You probably don't need to test Edge on Windows if you are already testing Chrome since it's the same engine.

If you really want to you can test Edge on MacOS¹ or you can use the Windows virtual machines² that Microsoft provides for free.

1. https://www.microsoft.com/en-us/edge 2. https://developer.microsoft.com/en-us/microsoft-edge/tools/v...


No need to use a VM; just download and run: https://www.microsoftedgeinsider.com/en-us/download


It's the same engine, but capabilities could be different: https://web-confluence.appspot.com/#!/confluence


Edge runs natively macOS


Edge is chromium. You can test it just fine from a Mac.


It depends, if you need to support old Edge (Spartan) you'll need to use one of the freely available virtual machines from Microsoft instead of just installing the browser.

Not a huge pain either, but given that there's still people out there that need to test on ie11 I wouldn't be surprised if Edge has befallen the same faith.


Old Edge is essentially gone, since it autoupdated to New Edge. New Edge has Linux and Mac builds.


I understand why Apple is doing it, but what does it hurt if I develop for Safari on Windows? Oh no you have to compile the app and support on Windows? Gimme a break. $1 Trillion company and they can't make that work is nothing short of a joke. The OS wars are nothing like they were in the 90s. Apple really needs to wake the hell up. Steve Balmer said it best:

"DEVELOPERS! DEVELOPERS! DEVELOPERS!"


And Steve Ballmer really backed that up by making it possible to compile and test Windows and Microsoft products on every Linux distribution


Well it hurts because your company might not buy you a Mac.


honestly why develop for safari anyway? you can't really complain about apple if you keep bending over backwards to support their software


If up to 75% of paying customers browsing on mobile use safari would you serve them a broken website? Remember that 100% of browsers in iOS is safari. Everything else is just Safari with a skin. If I could I would block apple users out with a warning about their broken browser but I doubt any business survive for long if they had a habit of leaving money on the table.


Every single iOS user I know uses Chrome as their browser specifically because Safari is a broken mess in which nothing ever works.


Iphone users aren't allowed to install Chrome. They want chrome, but all they get is a shitty chrome skin on Safari. It does trick a lot of people into thinking that they actually have chrome though.


iOS has around 75% of the mobile apps revenues apparently.


In the US, I assume? Also, note that app stores aren't the only revenue, and precisely because the web does not work as well on ios devices, this number will be slightly biased in apples case.


It appears to be globally, though it depends on what you count exactly (65% of the total revenues, I was off sorry, but 80% of all subscription revenues). The reality is that the hundreds of millions in poorer countries with Android spend peanuts compared to rich countries. https://www.businessofapps.com/data/app-revenues/

But whatever the exact number, the point stands. In most cases, not supporting iOS is a silly business decision.


iOS number includes China Market, while Android's dont. So that distort the numbers a bit. But yes, the main point still stands.


>I understand why Apple is doing it

Do you? It sounds like you're implying that they can't do it, despite also pointing out that they easily could.


They did the technical work to allow WebKit to build on Windows: https://webkit.org/webkit-on-windows/

That's the AppleWin port which relies on non-redistributable libraries, using the iTunes compatibility libraries.

There's also upstream the WinCairo port, which is redistributable. (can be downloaded from Buildbot at https://trac.webkit.org/wiki/BuildingCairoOnWindows#Download...)

It's just that Apple doesn't want to make Safari as a whole available on Windows, while making it easy for others to develop browsers using that same engine - even on Windows.


They used to distribute Safari on Windows. Back then it had little adoption.


Little adoption among users, but still super useful to developers. I wish they still did.

(WebKit isn't enough; I often need to test Safari behavior specifically)


Any time I look at the new features in Chrome, I ask myself, "whose actually using this stuff?". Even though Firefox usually keeps pace pretty well it's pretty common for implementations to differ, and thus you're on the hook for browser quirk issues in any new feature you adopt immediately. Not to mention I've always had the anchor that is IE to temper any hastiness to use a feature (even if you simply don't implement the feature for IE, that's still an extra error state to handle unless you're willing to drop IE support altogether).

It can't even be 1% of websites out there embracing this stuff. I'm guessing the biggest consumer for most of the new features in Chrome is probably Google web developers. There's quite a lot of things that only end up half implemented, too.

Although the RFC these days seems to just be a design spec doc for Google, I suspect you could carve it down to less than half of what it is and render 99.9% of websites out there just fine.


> It can't even be 1% of websites out there embracing this stuff.

This is all good but it's also a chicken and egg problem.

The lack of web push notifications for one of the two major mobile platforms will prevent that feature from being used + any adjacent features that would be used in more viable web apps.

In my opinion, nearly all good-guy arguments for Apple in this debate are negated by them not implementing that single feature. It is not new, obviously useful, obviously not a privacy concern and obviously blocked because it might impact their app store revenue.


Many thanks to everyone who is actively slowing down the advances in web push notifications. 1% valid use cases, 99% spam.


Then Apple should tie it strictly to PWA / installed to homescreen, require an apple Dev account to send notifications and use the DUNS number and other stuff they collect plus lawyers, to hold asses to the fire over any misuse/spam.

I want Apple in this game implementing this stuff in a privacy concious way, rather than saying lol no make native apps and ceding the web to Google.


100% agreed, notifications are another method to spam users.


I can't think of a single website that has prompted me to sign up for desktop notifications that I've ever wanted desktop notifications for.

My argument isn't really a "good guy" Apple argument but more of an observation of the current kidnapped state of the web RFC's.


There's actually a lot of very useful and surprisingly "basic" improvements in recent releases. Things like String.replaceAll(), optional chaining operator, private attributes/methods in classes. These features allow you to write cleaner code. On the CSS side "content" family of declarations help with optimizations.

I usually adopt latest pretty quickly since I can afford ignoring Safari.


I've started building a little app that uses the serial port API. It's a little widget for collecting and processing data from a pretty custom piece of hardware. It'd be a total dream if we could just send people to a web page to use the product , compared to the nightmare which is developing, maintaining and supporting 3 GUI apps.


By IE you don't mean Edge I'm guessing. Do you still develop with support for IE? I haven't seen it as a requirement for some time. I hardly even look at sites in it these days. At most I add a Browser not supported banner and test that in IE.


It called progressive enhancement. You test whether you have a feature and then code around it if you don't.

e.g. When createObjectUrl was a new thing. I ended up doing something using AJAX and doing some processing server side for IE and Edge. Now I could have done all the processing server-side. However 80%+ of the users use Chrome. So instead of checking everything on the server, I could offload 80% of that to the browser.


"Coding around it" means handling an additional error state, which can be in varying degrees of complexity depending on what the feature is doing for your app.


Yes, obviously.. It really depends on how much time you have, what browsers they care about supporting etc.

There is a tooling out there to assist you and most of the compatibility issues are well documented now. 10 or so years ago when I started that really wasn't the case.


>whose actually using this stuff?

Some Google engineer’s promotion case.


The author’s conclusion is that due to the current situation being non-optimal, we should give up on browsers all together? I’m not sure what exactly he is proposing as it’s obviously too late to turn the clock back on the existence of interactive web sites.

I don’t expect small developers to be able to make a top-notch browser engine any more than I expect them to make software equivalent to Photoshop or Final Fantasy XIV. Standards are there to guide compatibility between products of large players and content producers. Apple is not a small company compared to Google or anyone; they’re merely not trying very hard. Mozilla is somehow doing a decent job despite not having $300 billion in cash stashed away.

I do believe that browsers doing what native apps can do is reasonable and useful. The arguments about security are not particularly persuasive. The biggest threats to mobile security currently seem to be apps in official app stores.


> I don’t expect small developers to be able to make a top-notch browser engine any more than I expect them to make software equivalent to Photoshop

Procreate. Acorn. Pixelmator. Affinity.

All small developers. All successful and eating a chunk of Photoshop's lunch.

Sketch and Figma outright stole Adobe's lunch.

> or Final Fantasy XIV.

Not all games have to be FFXIV to be enjoyable or playable. And indie games are thriving.

However, you require a fully-features browser to browse the modern web.


Photoshop isn't a great example, but my point was to reference large software packages that are naturally so complex as to require far more resources than a small company can muster. I can think of at least a dozen major packages that are made by a very large company or major open source project because that's how much labor it requires for the features people expect, and people by-and-large are not clamoring for feature or complexity reduction across the industry.

Sure, less comprehensive games than the most extensive MMOs exist. You could use a stripped down browser that doesn't implement every feature, too. <my question was, could a team of 10 people make games as extensive as the most extensive games like GTA5 or TESO from their own labor? That isn't possible nor would I expect it. I don't expect a small open source project to release something as polished as iOS next year, either. Given the potential security issues of any network software, I also don't want to use a browser made by a small team.


>However, you require a fully-features browser to browse the modern web.

That isn't really true since if it were we wouldn't have had the problem of IE back in the day or Safari today.


I don't understand your logic.

Since 1999 we've added anything from flexbox and grids to CSS to web components to DOM to classes, sets, symbols, workers etc. to Javascript. Even things like standardizing HTML rendering didn't happen until mid 00s.

Fire up a VM and run the modern web in IE 6. You'll fond a surprising number of browsers failing in subtle and not--so-subtle ways.


I think the intent of that comment was to say that almost-full-featured browsers like safari are currently adequate to browse the vast majority of websites. Personally, the only time I run into sites where some feature is Chrome-only is tech demo type pages I find on HN.


>I don’t expect small developers to be able to make a top-notch browser engine any more than I expect them to make software equivalent to Photoshop

Specifically for this example I do strongly believe Photoshop will be dethroned in the next 5 years and the app that will achieve it will be by a <30 person dev team.

Think this is an outlier though because it's so antiquated and barely uses your computing power and the dev team clearly doesn't want to actually do anything challenging to fix it. Yet a team starting from scratch today would build it in a very different way, much more GPU focused and I think it will surprise us just how much better it is.


As a developer who started noodling on 8 bit BASIC, the power of a web browser that is essentially a universal, network-capable application engine is beyond amazing.

As a user, the constant misuse of dark patterns and the glut of careless unoptimized and insecure code and coders is nightmare fuel. Consider I grew up coding, trying to explain modern websites and web applications my folks is simply painful because quite often it just doesn't make sense. A lot of UX never actually asked a user how they want it to work, or disregarded their input.

The best websites for me are still those which adhere to pre web 2.0 design patterns. I find them easier to navigate and use, ie old reddit vs new - the new design doesn't bring anything useful other than nagware to register and install the app - reading a thread and click outside the main area by mistake, it navigates you back in history and you wait 10 seconds for all the ajax to finish popping into place. My old online banking interface was a simple list of my accounts and balances with links to common functions. The "new" app-inspired interface hides everything under animated menus and ugly graphs I don't need to want, while constant monte-carlo simulations mean basic features always move; my wife and I often have completely different UX, it's just another annoying half-baked web app with ajax popping in and out all over the place.

There's good stuff and well design applications of course. Shadertoy is amazing. For music there's fully-fledged DAW's in the browser - fantastic! Collaborative document editing in real time, brilliant!

But I think I am down with the concept of a different engine or mode for "web surfing" vs "web application execution" - it's a completely arbitrary distinction I know, but as a user I've got a completely different set of wants and needs when I'm just surfing, vs when I need an "application."


The salient issue with Safari is where lack of feature parity coincides with Apple's business interest in maintaining control over its App Store and keeping native APIs ahead of web APIs.

The situation is similar for Chrome with regard to APIs that dovetail with Google's business interests (e.g. Manifest v3 extension APIs and content blocking).



Not sure why. It's a very valid point.


Note, the original tweet is no longer available[1]:

> Why did someone post my tweet on Hacker News?

> It's not news! It's not an announcement of anything. It doesn't contain any novel information.

> If anyone on HN is reading this tweet, post a link telling people to stop discussing my other tweet please. :-)

[1]: https://twitter.com/lapcatsoftware/status/142125132814429798...


I can't tell whether that's a joke. People on Twitter are often funny, so it could be a joke. However, people on Twitter are also often clueless, so there could be a genuine desire to publicly post a controversial opinion without that opinion inspiring public conversation.


It's not a joke and he certainly isn't clueless.


Perhaps not clueless on the topic of browser features, but probably on the topic of whether tweeting is a public or private action.


> > Why did someone post my tweet on Hacker News?

HN discusses opinion posts regularly, including ones posted on Twitter, and this one is on a topic lots of people here are interested in.


Just so there is no doubt, I am NOT @lapcatsoftware. I just went to look for the tweet referenced here and I noticed this, so I am relaying it here. I have a feeling anyone reading the discussion here does understand the idea behind HN. If you did want to engage @lapcatsoftware, you may want to do it on Twitter.


I know you're not ;) Hence the ">>"

I don't do Twitter, so that won't be me


Lars Knoll is one of the main authors of KHTML, the foundation for both WebKit (powers Safari) and Blink (powers Google Chrome and Microsoft Edge). And he has this to say about this Twitter thread [1]:

--- start quote ---

He’s absolutely right. Implementing a browser engine from scratch was a lot of work in 1999/2000, it’s close to impossible today.

--- end quote ---

[1] https://twitter.com/LarsKnoll/status/1421121639845187585


It's basically a VM with a monstrously complicated ISA.


* and probably the most inefficient


A small independent team would probably struggle to build an SUV, too. This is not an argument on its own, why is it important?


Websites are either made to only be as good as what the worst browser can render or needs enough developer time to work around it. In other words as if speed limits were set to 10mph on highways because my crap SUV dictate the road for everyone around me. The argument gets turned on its head when using a car analogy though. If only Google-sized companies can build a modern rendering engine then they dictate the web (and they rarely agree with users on what's important). If Ford could dictate roads they would make them impossible to drive on in other cars - or if Google did they would mandate only cars with RoadAd™ turned on, if Apple did only cars with iTires™ and so on. It's the road that gets dictated by the big companies like Apple and Google, not the cars. Roads luckily work just fine in an old or low-production car, unlike the web.


The argument that Google basically decides what a browser looks like is interesting. The negatives are often theoretical, "what if they just built ads into the engine" or privacy-oriented "they slurp your data". I pretty strongly believe that Google (and perhaps Apple in some respects) pushed the web far beyond where it could've stagnated, probably for self-oriented purposes. If you want to see a browser without selfish advancements, compare IE11 to its contemporaries, on their release and then after a few years. Microsoft had no reason to force new technology into their browser experience, so they didn't, and their browser turned into a boring antique.

You mention that "[Google] rarely agree with users on what's important", but I'm not sure that's true. I think the HN crowd, and those adjacent to it, often disagree with Google's practices, but my intuition is that Google's browser changes have been effectively silent improvements for the vast majority of users. If you installed a massively outdated version of Chrome on a random user's phone or PC, they'd probably be almost immediately upset at some missing feature or function.

At some point, these selfish advancements either become obsolete via the "official" way of doing things being implemented, or become themselves part of the spec. Should Google, Apple et al. have this much control over the future of the browser spec? My instinct is "of course not", but when I think about the history of the web, and how important these selfish decisions have been, it becomes harder to decide.

My original point you're replying to was moreso "why should a small independant team be able to build a browser", and I'm not sure you replied to that.


> The negatives are often theoretical

They are not theoretical. Too bad webapicontroversy.com has been shut down (it looked like this [1]), but you can scroll down to "defer" and "considered harmful" in Mozilla's positions here: [2]

There are more, of course, but they are not visible unless you're willing to follow thousands of issues across hundreds of GitHub repositories. One that springs to mind is, of course Constructible Stylesheets. Mozilla and Safari: the spec describes an algorithm that leads to deadlock in trivial code, we wont implement it until this is fixed. [3] Chrome: ship it, because lit-html (developed by Google) wants it and is already using it. And then procedes to gaslight people and misrepresent their positions (cant' find the relevant link, but at this point I can't find the will to dive into the cesspool).

[1] https://user-images.githubusercontent.com/32768/108985355-3f...

[2] https://mozilla.github.io/standards-positions/

[3] https://github.com/WICG/construct-stylesheets/issues/45#issu...


Forcing changes to the spec/implementing non-spec features is one of many possible negatives of browser oligarchy, though. When I said the negatives are often theoretical, I was referring to the other arguments that are commonly raised, surrounding pernicious updates and privacy concerns.


I've never understood the thought process that browsers need to be implementable from scratch cheaply, in general.

Browsers are the new OS. Most attempts at a feature-complete OS that is able to run software intended for other OSes would be incredibly expensive.

Plan 9's been in development for over 29 years, and it's still niche.


Right. Having the big three engines released as open source, where everyone can make a fork or use them like Microsoft is doing with Chromium, I don’t see the point.


My concern would be that Google decides that WebKit/Blink is a dead end and creates a new rendering engine, and not making it open source. Mozilla can just about keep up with new feature, but even Microsoft just gave up and uses Blink.

Also what’s the point of standards if nobody can realisticly implement them?

Yes, I can see that Apple perhaps isn’t giving WebKit sufficient attention, but Google and Chromiums dominans is the bigger problem.


I think google is very happy with their current model of having everyone just ship blink. It means they control what the web can and can't do not just in their own browser, but many others. None of those browsers are running hard forks

And sure, you could disable an API or this and that feature, but it means you're spending a lot of time to keep reintegrating upstream, because google changes a lot of things all the time, so you really have to pick and choose what diversions you afford yourself. you can poke around the brave repo a bit to see the devs bemoan that.


Even Microsoft with their unlimited money and resources couldn't afford to develop their own engine.

Even with the fork they can't keep up: https://web-confluence.appspot.com/#!/confluence

Mozilla survives by whatever money Google is giving them, laid off most of their staff and shut down development on engine improvements like Servo (whether you like it or not, Servo is dead).

That leaves WebKit as almost the only meaningful opposition in the face of Chrome's onslaught. And it's going to get worse.


> Browsers are the new OS.

No, no, that's incorrect ;)


Is it?

I'm doing more work these days in a browser than in any other application environment. The browser loads arbitrary code from external storage and executes it. It provides a standardized abstraction onto the hardware layer (mouse, keyboard, screen, audio, and in my case head-tracking).

One could argue that it's less operating system and more glorified UI toolkit, but I can't name a UI tool kit that also has to provide security sandboxing to prevent arbitrary code from misusing its hardware interfacing.

Perhaps we could consider it a virtual machine running atop an operating system. On the other hand, I think Chromebooks suggest that you can build the host for that virtual machine very thin.


I don't understand the Apple fanboys that continually defend their clearly monopolistic position.

Google and Apple are both anti-competitive in different ways.

A distinction needs to be made in regards to the anti competitive nature of controlling a large walled garden, and network effect stickiness.

Anti-trust laws will catch up and lead to regulation of big tech.

Though, we may actually see something soon with Apple depending on how the Epic case resolves.


Safari is a bane of my life. Simple things just dont work. Like svg rendering just doesn't work unless you display none then block. It's been years since this was reported.


Our computers would be even safer if we airgapped all of them and never ran any new software.


Our brains would be safer too. I think you're onto something!


I think I must be missing something. Is the case here that Mozilla (an entity whose primary active project is a browser) and Apple (one of the largest tech companies in the world) can’t be expected to compete with Google in terms of features for their browsers?

I was already hesitant at the idea of somebody on Twitter telling me which criticisms are “valid”, but that premise threw me entirely.


What you're missing is that Google implementing a "feature" doesn't automatically make it a desirable thing to have. Competing doesn't mean slavishly imitating the whims of the market leader, always a step behind.


I feel like this is whatever the opposite of tautological is? If Google implements a feature for Chrome and I find it desirable as a user, am I not allowed to say “I wish Safari had this feature”? Why would somebody ever criticize Safari for lacking a feature they don’t desire?


I feel you, I'm a macOS user, and I love using Safari, but for Linux users/developers , not being able to test their web apps in Safari, just because they don't have access to a Mac, is ridiculous. If I were in that position, I would not support Safari, until I can afford a Mac, or just throw a warning banner in my site for Safari users.



I have seen Safari bugs that could not be reproduced in Epiphany


> I feel you, I'm a macOS user, and I love using Safari, but for Linux users/developers , not being able to test their web apps in Safari, just because they don't have access to a Mac, is ridiculous

I don't know. Maybe I'm reading too much into it but did you just feign empathy on linux developers and casually leave out the biggest developer group which happens to use Windows?


The guidelines ask you to respond to the strongest plausible interpretation of a comment ( https://news.ycombinator.com/newsguidelines.html ). Raising the point that Linux developers can’t validate their front end code on Safari from their standard workstation doesn’t imply that Linux developers are the only affected group.


> Imagine a small company trying to write their own web browser from scratch nowadays. It's just not possible!

This is also because the web has a firing problem.

APIs and features barely get deprecated, even when they are obviously superceded. When they do its years and years after the fact. We also just except whacky quirks instead of fixing them and moving on.

A very clear example: we do not need CSS float anymore. It can be removed with zero impact on the development of new websites.

There's a new proposal for date-time features that replace the Date class. Except it won't, they will coexist and you have to support the Date class and all its bullshit indefinitely.

Do we really need anything other than template literals for strings?

I'm not sure what the solution is to these but an ever-growing spec seems like a big part of the problem to me.


We don’t need css float for layout hacks anymore, but it’s intended purpose to wrap text around an element is still a valid use case.


A new implementation could choose to not add those older features, but there will always be some websites that still rely on them. Who is going to use a website that isn't able to display the sites they want?


Exactly, this problem is not acknowledged or codified so we have no choice but to indefinitely support everything.

> Who is going to use a [browser] that isn't able to display the sites they want?

Everybody who has more to gain than to lose from it.

The perfect solution would of course avoid this problem somehow.


Google strategy is WebApps.

Apple strategy is NativeApps with AppStore.

Microsoft strategy is half-half.

...

Google workers complain Safari bad. That's their job. So, business as usual


I stopped reading at "I personally think we should abolish JavaScript"


Lest you learn something you disagree with?


When saying "Safari's behind Chrome in features" is not a valid criticism, the fact that the author is opposed to JavaScript is a massive caveat, since the feature disparity will likely come down to differences in the APIs available in JS.

I'm personally extremely worried about the fact that Chromium's eating the world, but if you're dictating what is and is not a valid criticism of the browser space, and you're starting from the premise that browsers shouldn't have JS, it's not surprising that some people aren't interested in what you have to say.


> Imagine a small company trying to write their own web browser from scratch nowadays. It's just not possible!

Tencent do has one pretty much spec compliance browser engine (X5) for their own use. (Obviously not a small company either)

It is also a mobile only browser used mostly in China (so you are unlikely to test it during dev)

And I only got a few incompatibility reports from it (like 2 or 3?).

Compares to the nightmare on safari (dozens of bugs), it actually works surprisingly good.


> Imagine a small company trying to write their own web browser from scratch nowadays. It's just not possible!

PrinceXML seems to be doing reasonably well. Yeah, they're never going to catch up to Chrome, but they've been adding one or two new browser features every day for the last several years. And they have less than a dozen developers.


Doesn't that only convert to pdf? Most modern features are interactive features, like Ajax and add-on APIs. I doubt we'll ever see an interactive facebook.com in pdf, though I'm sure Adobe would love to make it happen.


Is there a name for this fallacy? To say that an argument you disagree with is not "valid criticism" and therefore can be safely ignored.

Surely if I believe that browsers should have many features, then criticising Safari for being behind is valid criticism.


it isn't a fallacy; it is a proposition, not a logical conclusion. One can agree or disagree with the proposition.


> Imagine a small company trying to write their own web browser from scratch nowadays.

Lets distinguish between browser frameworks (Chromium, Firefox) and web rendering engines (WebKit, Blink, Gecko).

Three rendering engines is more than enough. It is the lack of diversity in browsers that is problematic.

Most browsers use Chromium browser framework (which includes Blink rendering engine). Several use Firefox (Gecko).

We are using WebKit and building our own browser from scratch. When I say from scratch that means literally every little feature, menu item, setting, interaction like a toolbar button etc.


>Three rendering engines is more than enough. It is the lack of diversity in browsers that is problematic.

No, it is the lack of diversity in rendering engine that is problematic. When one rendering engine can dictate the web then it makes no sense to point to the rest of the browser as the point of need for more diversity. Chromium and every browser that uses it is part of the problem here. Using Brave for example is just as bad for diversity and the free web as using Chrome itself, likely worse as most users have no idea they are part of a problem even if they are aware it exists.


I beg to differ. Google/Chrome dictates the Web, not Blink (Chrome/Chromium's rendering engine). The most popular browser and its parent company are in this position. For example Chrome may abandon Blink and switch to a new rendering engine in the future (it already did this once switching from/forking WebKit). Or if Microsoft Edge became the most popular browser in the world, then Microsoft would be in position to dictate the web.

This is why we need a fast, capable, privacy-respecting, no BS, no ads or tracking browser with a sustainable business model, using whichever rendering engine (preferably one that is also well designed and fast) to come out.


Google dictates the direction no matter if you look at blink or chromium. If Google wants to dictate a future where Brave cannot possibly do the work on chromium to implement their features because Google turned the code in a direction demanding too many development hours then they can easily do so. I completely agree with your last paragraph but using something Google in the end is controlling is closer to a honeypot than a solution. What we need is "a fast, capable, privacy-respecting, no BS, no ads or tracking browser with a sustainable business model, using whichever rendering engine (preferably one that is also well designed and fast)" on the market that isn't controlled by a big corporation like Google, Microsoft or Apple.

Sure it might be doable with blink but why on earth pick a fight where the opponent basically desides the rules? It's like pissing against the wind. I very much doubt it will succeed and if it does it will likely just swap Google out with another corporate entity (like Microsoft). We need a rendering engine made by someone like Mozilla (or better) to succeed if the open web is ever going to be a reality.


I can’t believe we’re still in this postion. 20 years ago, a fresh new browser entered the market that blew the competition away: Internet Explorer 6. It’s hard to overemphasize what a crapfest the browser scene had been up to that point. Netscape was a buggy mess (remember Netscape Gold?)

5 years later, everyone hated IE 6. It was the new browser to hate. It was a buggy non-compliant mess, much as Safari is now. And again a new browser shook up the scene: Phoenix (which would later become Firefox).

Later, Chrome entered the market. It’s the superior browser now.

Browsers come and go.


> Browsers come and go.

Here's what one of the main authors of KHTML has to say about this: https://twitter.com/LarsKnoll/status/1421121639845187585

20 years ago you needed a fraction of what is in a modern browser today. And it's getting worse. Chrome ships 40 to 70 new Web APIs every 40 days or so: https://web-confluence.appspot.com/#!/confluence


It’s somewhat terrifying that a single person or a small team can develop an operating system, with a GUI, but won’t be able to create a modern web browser to run on the same OS.


The Web seems to be in an unenviable position of needing both:

- an insurmountable amount of work for backwards compatibility, and

- an insurmountable amount of work to keep up with the torrent of new features added to it


IMO if it's buggy, you _are_ behind in features, because those features aren't really done yet -- they are buggy.


JavaScript use should be limited. HTML should be enhanced with the feature set provided by the library HTMX.


Does anyone has a summary or back up of the tweet? I am late and It is now deleted.


"It becomes too hard for a small team to write a browser" can't be both the horrible dystopia you're trying to avert and the catastrophe from a few years ago that you're still mad about.


> "It becomes too hard for a small team to write a browser"

But a browser that is 'Written in Rust™' which that runs blazingly fast, prevents segfaults, and guarantees thread safety can save us right? That should also be a 'selling point' to challenge browsers written in unsafe languages right? /s


so I stopped reading after I learned:

Apple has too much control over the web, we should build native apps, and nobody can compete with Google Chrome - including Apple.

I do agree that Safari is not actually lacking in features too much though, it has features the other browsers don't have. Features that Apple felt were important to develop for Safari.


Yes! Thank you.


This further convinces me that Apple users are experiencing Stockholm Syndrome.


Safari should not be the only browser option on iOS. Microsoft was fined millions for integrating their Internet Explorer too deeply into Windows, why is Apple allowed to act like this?

This would solve the problem very quickly either by users migrating to another browser or by Apple feeling enough pressure to actually care.


> The web is not "open" if nobody new can write a web browser engine. It's the illusion of openness.

Remind me, can I write a new browser engine for iOS if I wanted?


Safari can do what it wants, but telling every iphone user they can only have a low-feature, web-lite, period, is batshit insanity.

This is absolutely a colossal anti-trust violation, doing colossal harm to society at large, keeping the web from being viable again and again, with it taking years to support WebRTC, years to supoprt ServiceWorkers, years to support every single thing, and the gap seemingly growing. This is a huge abuse of colossal market position, restricting the internet itself from competing with a closed platform, purely because it benefits Apple not to allow the situation to be fixed.

Their warchest is huge, they could participate in calls to implement, could ship features, but they dont. Even if they did, I would still prefer users not to be locked in to a monoculture, to have to use a specific browser.

This rhetoric that the standards bodies have been usurped is insanity, is bedlam. Show some evidence, make a case. No one does. This age keeps being swept by cheap, lying, low-grade dismissive politicians & schucksters selling popularist rage, and this post is some low quality grade-A unsupported zeal-filled techie-politics rage. It's not true. Standards bodies are alive and well. TAG is still elected, of good healthy techie stock, who review each of the various efforts & emphasize the better critiques & raise their own.

The only selling out that's happened is that the ad-industry keeps Google from doing good things, and sells to sow dissent that someone is trying to ratchet up privacy, which Google has been slowly doing (yes to the benefit of their search engine, but first party traffic ought to have privileges over third party traffic).

Standards work is hard as heck. There is not enough participation, there are not enough players funding standards work. But I don't see people being blocked, people being cut out from the work. I see Apple standing aside usually & silently refusing the calls to implement. I see not enough people participating. But chalking this up to conspiracy & the web being sold out? Please. These techies care. They want a better web, genuinely. They are trying, really hard. Everything happens in the open, in documented meetings. Trying to ascribe conspiracy & great machinations to this is sickening, is revolting disinformation. Do not market yourself on selling distrust & doubt in the world; do ally yourself with those who do foment & tear down & sow doubts (especially so out of hand, so very lacking a case).


>colossal harm to society at large

Oh please. The native browser on a popular phone not being standards-compliant is not causing colossal harm to literally anything. You may make a compelling argument that it's a bad thing, but to describe it in the way one would describe e.g. the opioid epidemic is just absurd. Get a grip.


it stopped video chat on the web for years, it continues to obstruct open innovation elsewhere & everywhere.

if it were the native browser I might agree with your sentiment. it being the only browser engine otoh is a farce, one far far far more vile than the horseshit Microsoft played for a couple years with IE before facing a massive anti-trust action that made them shape up. there is a real harm to society at large from this, & it's a vile act deserving harsh anti-trust response.


> it stopped video chat on the web for years

How?

If you refer to WebRTC, here's the timeline: https://news.ycombinator.com/item?id=27970623

> it continues to obstruct open innovation elsewhere & everywhere.

How about Google? https://twitter.com/johnath/status/1116871231792455686


If this is such an important issue for you, then you shouldn’t buy an iPhone. Simple as.


apple makes the web itself untenable for use. they harm me, even though I don't own an iphone, by obstructing competition.


How exactly is the web "untenable to use" on Safari?

You can't seriously call Chrome-only web "tenable"? https://web-confluence.appspot.com/#!/confluence


And apple shouldn't bribe politicians nor use their immense wealth and power to lock down supply chains, driving out competition. Free market is an imaginary concept that has never existed nor never will.


Nor Raytheon, Lockheed Martin should lobby politicians for bigger defense budgets, etc... But that's how it goes. Not using Apple products and telling all your friends/family to not use it either is a good start. Go and be that guy.


Huh? There are tons of smartphone manufacturers other than Apple. You are free to choose from them.


sooooo many downvoted whenever safari antitrust realtalk happens. I was up net +8 for these posts last night. now -10. apple Kool aid is strong.




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

Search: