Hacker News new | comments | show | ask | jobs | submit login
Safari is the new IE (nolanlawson.com)
753 points by nolanl 665 days ago | hide | past | web | 356 comments | favorite

Nolan, I'm not familiar with what you do or have done, but have you ever tried to make a website back in the day? Ever tried to support IE6? 7? 8? IE literally broke the web. CSS rules which worked in every browser ever wouldn't work in IE. Entire webpages weren't formatting correctly, having to spend hours, days, on workarounds. Comparing Safari to IE is just wrong. Safari doesn't break the web, it 'just' lacks support for some new javascript functions, not break standards/rules that had been there for tens of years.

But I'm sure this title gets you more clicks.

What rules that had been there for tens of years were broken by IE6? IE6 was the best browser available when it was released, and the web standards ecosystem was nothing like it is today.

I think the analogy is very clear. If you want to code like it's 2000, supporting IE6 is easy, because IE6 is a very good 2000 browser. If you want to code like it's 2010, supporting Safari is easy, because Safari is a very good 2010 browser. But in both cases, if you want to use any new features that have been standardized and are supported by other browsers, you're fucked.

The main difference I see is that IE6 didn't get any updates at all. Safari gets updates, but many new features are missing or broken.

EDIT: Another difference is that MS never blocked you from installing a better browser, but Apple does that on iOS. That policy is becoming increasingly ridiculous...

Absolutely the truth. There was a reason the only answer was tables for a very long time.

A major source of hatred for IE was the fact the IE team did work prior to the browser standards, a practice which is now standard operating procedure. Where would be without ajax?

"Another difference is that MS never blocked you from installing a better browser, but Apple does that on iOS. That policy is becoming increasingly ridiculous..."

Why has that not resulted in anti competitive behavior lawsuits? MS got in to a fair bit of trouble for similar things. They didn't stop you installing an alternative.

Netscape used to be a paid product* before Microsoft made IE free. What Microsoft did was make a free competitor and install it on every machine running their OS.

So what Microsoft did that was illegal was use their monopoly power to destroy an existing player. That's how they were "anti-competitive".

While Apple not allowing any competing rendering engines to be written for iOS is anti-competitive in the dictionary sense that they are preventing competition to be created, it isn't the type of behavior targeted by anti-trust law.

(IANAL, but my understanding is that if Apple had removed Spotify, Pandora and other music apps from the App Store while releasing their streaming music service, that would be an anti-trust violation.)

*Netscape was $49 in 1996 http://www.fastcompany.com/27743/nothing-netscape

The real issue is just whether Apple has a monopoly or not. IANAL, but as I understand it what's illegal is using a monopoly in one market to muscle into another market via bundling deals. Just doing bundling deals if you're not a monopoly is perfectly OK.

If Apple sold the operating system used on the vast majority of computers you could have a case, as did the government when 95% of PCs were shipped with Windows.

Even by the most generous definition of "computer", Apple holds 20% market share at most.

Samsung won't get sued for anti-competitive practices because you can't switch the browser on their so-called smart TV for the same reason.

They also provided a free graphical text editor, thereby destroying the market for commercial text editors. It boggles the mind that they escaped punishment for notepad.exe.

Apple provides Garageband for FREE! They're getting away with it.

This stuff is rampant.

There were also the facts that IE was deeply integrated with the OS to the point where r was impossible to remove and MS had anti-competitive agreements with OEMs preventing them from providing Netscape bundled.

Netscape screwed up and were standing on the edge of a cliff. Microsoft just gave them the last nudge off.

And while Netscape screwed up on their own too, it also affected Opera (remember the ads?)

MS was deemed to have a monopoly on desktop software, Apple is not. You're allowed to hinder competition for software on your operating system, if the user can reasonably easily choose another operating system.

Apple has a monopoly of taste – a self-defining market that won't switch OSes even if that constrains their other choices. But they could, so the "market of Apple users" isn't a discrete market under the law.

[Edited: gosh I type slow.]

Is it actually reasonably easy to install a different operating system on an i device?

It doesn't need to be. MS in the late 90's dominated, and you could not do work with someone using MS products unless you also used MS products. One person having an iOS device and another having an Android device does not cause any issues between the two, they are fully able to communicate by the nature of cell phones. I would bet that the lawsuits against MS would not go through if they were brought up today (and, of course, MS was still doing the same things), because it's actually possible to switch desktop operating systems without ending up unable to collaborate with your coworkers and family.

I can't tell you how many times I've had to help people who switched away from their iPhone and then saw eternal, intermittent issues with not receiving text messages because their friends iPhones were convinced they should be sending iMessages and not SMS. The situation gets even worse with group messages.

Even tech-savvy users (read: me) sometimes get bitten by that. I wonder if it would make sense to auto-disable iMessage when a phone's SIM is removed? The problem probably isn't even on the radar, though (iPhone users never switch!).

Yeah, I know. In some cases this somehow still doesn't always work for some people. Even after you delete the old conversation, which also sometimes has to be done.

But the very idea that someone has to know this has to be done and disable iMessage is insane to me, and I suspect part of the reason it is the way it is is because Apple doesn't really mind what (to the average Joe) is a major annoyance when switching phones.

To be fair, matters were even worse before Apple released that tool. But this has been an ongoing issue for something like four years.

Oh sure, I understand it's a bit of an issue.

I wonder if Apple could really fix it any way short of asking the phone companies to know when someone switched.

>It doesn't need to be.

Maybe, maybe not. That is what the person I was responding to claimed though.

I don't believe it is reasonably easy to choose/install another operating system on an i device. I could be wrong.

>One person having an iOS device and another having an Android device does not cause any issues between the two, they are fully able to communicate by the nature of cell phones.

By the nature of cell phones? What is the nature of cell phones?

Ethernet existed in the 90's and I personally setup networks using it that allowed Windows and Linux systems to communicate with each other.

You can't facetime or iMessage with an iPerson if you don't have an iDevice.

No, but you can use SMS, Skype, or Hangouts.

Facetime works fine with just a MacDevice, no iDevice needed.

No, but its reasonably easy to buy a non iDevice.

On a particular brand of device just isn't the standard.

Apple does not have a monopoly. MS did. If Apple owned 99% of the smartphone market, they wouldn't be able to get away with this behavior.

So on one hand people say that Android has more market share, on the other hand they're anti-competitive with iOS and Safari. Is Apple preventing you from using another device? is Apple using its position to put Chrome out of business?

This will ultimately hurt Apple. They're giving away marketshare of end users who want or need to use some other browser than Safari.

Web browser is arguably the single most important app on any phone. Or a computer. How many browsers you have currently installed on yours?

I should be able to install any browser on iPhone, just like I can on my Macbook.

While I was still using iPhone, that forced me to always reach for Android phone when I wanted to read any page with wrong size font for me. Which is pretty often.

IMHO, there's just one good mobile browser, and it's Opera. Not mini version, but the proper mobile one.

The big feature? It can always reflow any div (paragraph) text to 100% screen width. Always the font size I want and never any horizontal scrolling.

I hope Apple will finally allow other browsers that are more than just embedded mobile Safaris. Including full Javascript JIT support, because that's what modern web requires. Currently on iOS only app that can allocate executable pages is Safari.

Apple isn't trying to use the weight of the monopoly it doesn't have in a market to try to monopolize another.

Because Microsoft had a monopoly.

I presume because it's not true. I currently reading this page in Chrome on iOS

Sorry, that's not chrome, that's a gui that looks like Chrome.

Might want to fact check before posting.

Because Apple does allow you to install other browsers.

But then again that depends on how you define browsers...

Let's define it as apps that actually use a different browser engine, and aren't merely a reskin of the exact same engine used in Safari. In short, something that is actually capable of supporting new features that Safari doesn't.

This is not possible on iOS without a jailbreak, because Apple simply doesn't allow alternative browser engines to be used.

Why not? Apple also doesn't allow Flash, so the question is, why? Does Apple make money from Safari? Is there a technical reason that might preclude another browser engine?

My understanding was that they don't want to allow executing downloaded code that hasn't gone through the App Store review (such as JavaScript in web pages). I think they allow Lua for scripting in games, though.

So, basically, a 3rd party JavaScript engine is not allowed. I guess you could write your own browser engine that doesn't support JavaScript.

I guess Flash was not allowed for performance and security reasons (lots of vulnerabilities, right?)

Alternative browser engines are forbidden, JavaScript or no JavaScript.

Steve Jobs wrote an essay why Apple didn't allow Flash on iOS in 2010:

Thoughts on Flash https://www.apple.com/hotnews/thoughts-on-flash/

That is an excellent question I'm afraid I have no answer to.

>>> Why has that not resulted in anti competitive behavior lawsuits?

IANAL but folks over reddit explained it as this:

Microsoft was a software only vendor in the past but Apple is the hardware and software vendor. US and EU laws dictate that the hardware manufacturer to have full control over the ecosystem becuase of the industry behaviour in the past and who the end-consumer pays his money to.


I am not sure how correct it is but at least it makes sense.

Perhaps the biggest thing is that IE6 had a broken CSS box model.

Also ironic given that most people have adopted some of that "broken CSS box model" in their CSS.

    box-sizing: border-box;
Now there were many other problems but I'm not sure people appreciate how such features eventually got standardized. Similar issues happened around DOM serialization with APIs like innerHTML, which Netscape refused to adopt because of "series of pointing at standards". Developers ended up adopting the idea and it was later standardized. XHR is another case. There are many more.

In the case of Safari, I can think of canvas, touch (love or hate it vs pointer events it was before any of the alternatives), DPI independence, &c.

It's some of these quirks that seems to show how newer web standards might be rushed through by increasingly aggressive vendor involvement. Apple hasn't changed all that much from when it first released Safari. It's only our expectations for the pace of new additions that has.

IE5.5 had the broken box model. IE6 used the standard box model if the site had a recognized !DOCTYPE and the 5.5 model if it didn't.

Web dev was "fun" in the early 2000s.

Also console.log and javascript debuggers didn't exist. Working with complex JS got really interesting really quickly.

Fairly sure I remember using VisualStudio to debug some JavaScript back in the early 00s.

I only found out about that in 2014, so I didn't include it. But I've heard it was possible.

Or that Safari has no support for WebRTC.

It's so easy to be cavalier about random popular facts. I would love for someone to go back and load up the alternative browsers available at the time on some vms and take stock of their featuresets. Factoring in popularity at the time I'm pretty sure not much would have changed.

You can install other browsers on iOS.

No, you can't. You can install wrappers around Safari, but you can't install any app that uses the rendering engine of Chrome, Firefox, IE, or any other browser better than Safari.

Ah right. I had heard that and forgot about it.

WebKit and Safari aren't synonyms

Chrome for ios is a wrapper for safari? Are you sure? Safari and chrome definitely render certain pages differently when both running on the same iOS device.

Absolutely sure. Apple is totally transparent about this being a requirement for them:


"2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript"

I'm also sure. At least for mobile devices. I can't speak to desktop Chrome. That's why it does the same weird rendering Safari does which has become more noticeable since the split from webkit.

There's one discernible difference between Chrome and Safari on iOS 8- try scrolling on both and you'll see that both render them differently. Much faster on Chrome and less so on Safari. Prior to iOS 8, scrolling on both browsers were very much the same.

They still use the safari renderer/js engine under the hood.

Apple does not block people from installing better browsers (I know a couple). They did, back in the day, when they couldn't find a way to make Nitro (their web engine) secure.

If I'm not wrong, Apple allows you to install Chrome on iOS? Of course for a long time they didn't allow other browsers to use their Nitro Engine (so deliberately forced them to stay slower), but seems now they allow that as well ...

Again, it doesn't allow them to be made as the 'default' browser - which in itself is a big reason to criticize them.

You're not wrong, I'm looking at Chrome on my iPhone right now, I don't know what parent is talking about.

Dig a bit deeper. That is only a Chrome shell around (a slightly crippled) safari.

Aah. I knew it 'used to be' the case, but didn't know that it is still the case, especially after Apple started allowing other apps to use the Nitro Engine (WKWebView). Just came to know that due to other technical limitations by Apple, Chrome still can't use it [0].

[0] : Chromium Bug: https://code.google.com/p/chromium/issues/detail?id=423444

I built websites during that entire period. I saw the rise and fall of Netscape, the "dark ages" of browser development when Microsoft let IE rot - I witnessed the birth of Firefox and the re-ignition of the "browser wars" when Google launched Chrome, and Apple got serious with Safari by moving to WebKit.

The author is right, the details aren't the same but the same attitude exists. The author is simply speaking up before the differences become extreme.

Microsoft didn't "break the web" they created their own web and then let it twist in the wind because they were pissed about the government beat down.

Apple didn't get their hand slapped, but they did build something so lucrative that evolving Safari became a smaller priority, which some would argue aligns well with their push to the App/closed ecosystem model.

"the re-ignition of the "browser wars" when Google launched Chrome, and Apple got serious with Safari by moving to WebKit"

Moving to WebKit? Only if you count CyberDog, I guess. Safari was always WebKit based.

Also, your phrasing could be read as if Chrome came before Safari, but Safari is from 2003 (https://en.wikipedia.org/wiki/Safari_version_history), Chrome from 2008 (https://en.wikipedia.org/wiki/Google_Chrome_release_history).

Not only was Safari always WebKit based, WebKit is Apple's browser engine (forked from KHTML and open sourced) that Chrome used to use until they forked it.

And it's a fork of the KHTML engine used by the Konqueror web browser for the KDE project

Back in 1995, Internet Explorer then was licensed after Mosaic, and for Mozilla the name was coined as 'Mosaic Killer'.

And WebKit was actually forked from KHTML which was KDE's engine.

Apple had little choice other than to Open Source Webkit unless they wanted to violate LGPL licence which forces - source code of any derivative work to be released back to the user.

My mistake, my comment was penned rather quickly and emotionally (typical). I should have verified my memory with actual homework, the revised timeline does not change my opinion ;)

Offtopic, but your first paragraph sounds like Roy Batty's final monologue in Blade Runner. I watched c-beams glitter in the dark near the Tannhauser Gate! :)

Safari will pass like tears in the rain.

  > Microsoft didn't "break the web" they created their own web
  > and then let it twist in the wind because they were pissed
  > about the government beat down.
I was around as well. My recollection is that they let it twist in the wind because SaaS competed with their two interdependent quasi-monopolies: Windows and Office.

Which is another instance of the Innovator's Dilemma: How can a successful company embrace technology that disrupts themselves?

> they let it twist in the wind because SaaS competed with their two interdependent quasi-monopolies

It wasn't called SaaS back then, but in any case -- they let it "twist in the wind" because their market had become the enterprise, and that's a market that wants stability, predictability and no updates if they can be avoided. By then they had killed all competition, so their incentives were to keep businesses locked-in through backward compatibility and security fixes. Add to that the big move to .Net and an effort to replace Flash...

IMHO it wasn't about the antitrust or platform control (they could have broken all the SaaS apps they wanted with each update, they had 95%+ of the market and were n.1 target for every website out there). They just had other priorities: the browser war had been won and attention was now on the enterprise market. Around that time, IIRC, Gates also retired, leaving Ballmer in charge; Ballmer was not the sort of technologist to lose much sleep over "the future of the web"...

I had to do some work[1] with, basically, HTML4. Eventually I reached the stage whereby the feature worked in every other browser (IE8+, including Opera), using clean and completely hack-free code. In 3 days I had done my work.

Then I tested it in Safari. Two weeks later I gave up and basically had to `if (Safari)`. I don't know if the code still has that, but it probably does. This wasn't anything 'lacking'. Sure, it was contenteditable-related but the fact remains that I found a consistent subset in every browser except Safari.

So, yes, Safari broke my web - and it wasn't something that was missing, it was something that behaved very differently compared to other browsers. I can't remember what specifically broke it, but even ~2 years ago I had a significantly better development experience with IE than Safari with no new HTML5 features in sight.

[1]: http://help.k2.com/onlinehelp/k2smartforms/userguide/1.0.6/c...

If your target browser is IE8 and you write a bunch of html4 that looks great in IE8, I would expect it to not work anywhere else.

Not only is IE8 a snowflake but html4 is particularly hard to get a good layout working. Lots of nontrivial layouts in pure html4 (and css 1/2) require tons of browser specific hacks.

You missed his point. He mentioned IE8+ and Opera as working targets to highlight the fact Safari was being lame. He said every browser - that would include complaint ones like firefox and chrome. He also specifically said he avoided browser specific hacks.

Saying "I didn't use any browser-specific hacks" with HTML4 is a strange statement, seeing as how many non-trivial layouts in html4 (and I'm assuming the older CSS standards that would typically go along with it) require browser-specific hacks to work.

But honestly, I can't know because he's not naming anything specific anyway, just an anecdote about how IE8 was great at being standards-compliant and safari wasn't. Which is such an extraordinary claim (and is so contrary to established precedent) that without any extraordinary evidence, I have a lot of trouble accepting it.

(And it's amazing how many people think "I'm not doing any browser hacks" while they're using something like jQuery, which is a library 100% devoted to doing browser hacks for you while abstracting you from that fact.)

> Saying "I didn't use any browser-specific hacks" with HTML4 is a strange statement

I was working on top of a huge CSS framework - the majority of styling work I did was tiny tweaks to styles where the appropriate hacks had already been solved.

Also I didn't mention layout. The specific pain point was contenteditable in combination with JS - by the time I got to the code everything surrounding my little problem-space had been solved by the rest of the team. Again, specifically, Safari demonstrated wildly different behavior within that specific space, where other browsers only behaved marginally different (a relative term, contenteditable is a complete mess, sadly, still in HTML5) in a way that I could find a viable subset of functionality that worked consistently.

> I was working on top of a huge CSS framework

Well, that's the whole thing then, isn't it? The huge CSS framework probably had tons of hacks (as you say) to make things work in IE8... it's a bit disingenuous to say you wrote everything to be clean and without browser hacks, if the hacks all exist but are buried under a "huge CSS framework".

Your whole experience could probably be restated as "I was working with a CSS framework that did a bunch of cross-browser hacks for me, and the tweaks I made to it didn't work in safari", which is a pretty uninteresting statement, because it's equally likely that any issues you had in safari are the fault of the CSS, and not the browser. (In fact, much much more likely.)

> the fault of the CSS

Did you miss the whole of my second paragraph?

> Also I didn't mention layout

Opera went out of its way to ensure non-standard stuff targeted towards specific IE versions also worked in Opera. The downsides of being a browser no one cares about.

Something working in opera doesn't mean it is standards compliant.

> Then I tested it in Safari

(emphasis mine)

I use Chrome as my primary development browser and Safari and Firefox as my second and third choice. When I do get around to testing in IE 9+, it's almost an afterthought. Is it surprising then that IE is the browser that gives me the most trouble?

All browsers have quirks. It's inevitable when you have many competing implementations from companies that have different priorities. The browser you use the most is naturally the one whose quirks you will get used to.

In the same vain, Chrome does break web by introducing various custom features that can't be found in other browsers. See all those Google demos from past several years: "You need Chrome to view this" sounds very much like those "IE5+" warnings.

It's one thing to be the first to implement standards, it's another to completely ignore them for years.

The "Chrome Experiments" was a way to show off the WebGL capability in chrome that no other browsers had at the time. (Now those demos will mostly work in all browsers)

Plus you are forgetting that those are experiments. They were never really meant to be actual "apps". Making an experiment/demo for one browser is fine IMO. Especially when only 1 or 2 browsers have implemented the standard currently.

It's like webRTC. I made a "demo" webRTC app about a year ago, and it only worked in chrome OR firefox (but they couldn't talk to each other). That's not chrome or firefox breaking the web, that's the other browsers not being at the cutting edge, but i don't blame them. WebRTC was (and still is) VERY new, it wasn't even finalized and i was using the app as a bit of a tech demo to see what may be possible in the near future.

The chrome experiments were the same way. WebGL wasn't fully finalized, it was one of the first implementations of it, and people wanted to try it out, so Chrome Experiments was born.

WebRTC is not really new any more - a couple of years old (and existed in other forms long before), and still not widely adopted. In fact, not adopted in a single further browser in that time, and the original two are not compatible.

I'm thinking, its almost time to consider WebRTC 'failure to achieve traction'?

Not an expert, but hopeful that WebRTC will be a success in the end. Maybe I'm just overly optimistic?

> still not widely adopted

Certainly everyone involved with WebRTC wishes that it had the support of IE and Safari, but Chrome + Firefox + Opera is nothing to sneeze at, particularly if you're targeting a savvy audience.

> Original two are not compatible

Maybe I'm confused, are you saying that Firefox and Chrome aren't compatible via WebRTC? I've used them together and had success, but just for basic video calling.

> not adopted in a single further browser in that time

This is fair, but if Microsoft's latest moves come to fruition that will be a big change. There are hints that Edge will likely support WebRTC[0], though I don't think there has been any official word. Maybe that's just for ORTC?


All the important scalable features are incompatible - so-called 'bundling' where many streams use a single port etc. Aggregation of error feedback so an MCU can sensibly report bandwidth limits. Slow connect/reconnect times. No 'supernode' support. Pretty much anything that takes it from a toy with 3 or 4 p2p connections, to a product that can handle up to 100 streams with audio/video switching realtime through an MCU or P2P dynamically.

Other products can do this. WebRTC suffers from being based on RTP/RTCP and SIP-style signaling. There's not enough juice there to get the job done.

>All the important scalable features are incompatible - so-called 'bundling' where many streams use a single port etc.

AFAIK this is being fixed. Firefox should support the standard and Chrome is fixing their implementation to conform as well.

Yes, 2 years after it was released. And there are many levels of bundling. Will they both support all of them? Will the MCUs follow quickly? The WebRTC landscape is a disjoint map of features and support that evolves very slowly.

I'm sure as hell not married to the idea of WebRTC, but i desperately want something like it.

The ability to do peer-to-peer communication from the browser is an amazing tool. It allows the creation of client-side-only web apps which can easily send massive amounts of data to others. With WebRTC (or any other service like it) you can add video chat to a web app with very little work, and no real server side infrastructure that is more secure than the alternatives.

If it needs to be re-done in the name of getting it implemented widely that's fine with me and i welcome it, but if it's just NIH syndrome at microsoft holding it back, that's not okay.

Mostly its an unprofessional wad of code written by some PhD's. It went through some hands and ended up at Google, who mercifully refactored it somewhat and renamed it.

I've been dealing with the code base for 5 years, and never liked it. Had to rewrite the APIs every time we got a new source version, to fit our model which isn't the 'conference call' model. I'd be glad to see something more app-agnostic that just dealt with negotiating P2P streams, without so many assumptions about what/why/when the streams are.

IMO this is directly related to the post. WebRTC is a technology that has huge potential on mobile (given phones have cameras etc) but Apple haven't/won't implement it.

WebGL is a good comparison here - it was pretty dead before Apple implemented it. When they did (in iOS8) you started seeing a ton more WebGL things popping up.

New version is being worked on: https://www.w3.org/community/ortc/

Still another conference-call-specific take on p2p communications. Application assumptions are laced throughout the design. Which in my experience is the usual problem with open source IP - its tied up with so many assumptions as to be brittle.

ORTC is basically Microsoft's NIH version of WebRTC.

Maybe some of the good ideas will end up in an improved WebRTC standard, but ORTC itself is not "the new version".

Google are definitely breaking the web in lots of ways. They even have an audio limitation in Chrome on Android where they have added an explicit exception just for google.com: https://code.google.com/p/chromium/issues/detail?id=178297#c...

That said, there are some cases where things are Chrome-only simply because other vendors are far behind. (eg. speech recognition & synthesis)

Speech Recognition and Synthesis are in Safari -- though I don't know to the extent that it's as complete as Chrome. Safari definitely lagged behind though...

> See all those Google demos from past several years: "You need Chrome to view this" sounds very much like those "IE5+" warnings.

I'm in sympathy with the spirit of this post, but I'm not sure that I agree with this specific example. I think that there's a big difference between an 'everyday' web page requiring a specific browser, and the creator of a browser showing off what they see as its exceptional capabilities.

However much designers (and users) like adherence to standards, I think that it's clear that a lot of the innovations we take for granted have come from browsers leading the way; and there's not much point in having those innovations in the browser if the user doesn't know about them.

(I should be clear that I'm not advocating a functionality free-for-all, though; probably much more harm than good has come from this behaviour.)

I have to support IE11 for corporate software, websites, etc. I'll used it as my main browser for a day or so to test things out and its just incredible how its become a 2nd class citizen and how you pretty much need Chrome or Safari nowadays to get by. I'm partial to Firefox and it works well enough, but designers only have so much time and they'll hit big targets first - Chrome/Sarafi and leave IE be with FF support just working because Gecko and Webkit render very, very alike. Things are pretty much the opposite they've been just a few years ago. Obviously, supporting standards are good and IE11 is better at standards than anything before, but there's still bad blood here.

That said, I was just playing with Edge on Win10. Its like a pre-bundled Chrome. Fast, compliant, etc. It hilariously even breaks MS software, for example, I can't open the address book in Outlook Web Access because some deprecated html control that Chrome no longer supports. So if Chrome no longer supports, Edge doesn't either!

I guess we'll see if extensions ever take off for it. If they do I could see it hurting Chrome's marketshare. Personally, the Chrome/Google juggernaut needs to be knocked down a peg or two. I hope Edge gets popular just to keep Google's sometimes anti-consumer ambitions in check. For example, using FF in Android means Play Store links don't work right and a million other things. Google isn't incentivized to make alternative browsers work well in Android. They want use to use Chrome and all of its spying/tracking/marketing stuff cooked in.

My pet peeve with Edge is that it still doesn't fully support IndexedDB and the developers have no ETA for when that will change.

But it's still better than Safari's IndexedDB support, though, even though they've basically not touched it since IE10!

Nothing personal, but people complaining about how "I have to support IE11" starts the world's smallest violin playing for me - I have to support IE8!

A lot of that is new features that are later implemented in competing browsers though, sometimes features that aren't even officially declared stable in Chrome yet. I'll happily allow "works best in X" for a tech demo. For a site/app I want to use for doing something, this is different of course.

While the title is a bit click-baity, I think the overall point is: Company sees the value in the internet. Company wants to "play too". Company builds good browser that is fast and feature filled. Company realizes that they can throw their weight around and have company specific features. Company starts to care less and less about accepted standards, and cares more about their pet standards. Company refuses to let other, more capable browsers run on their OS. Company thinks that because they're the biggest and richest, that everyone should get onboard with their choices. It'll last for awhile. Something else will come along and give users and developers a better option. Let's hope Apple doesn't screw around for as many years as MS did before creating a decent browser.

Yes, but before that IE fixed the web! :) Remember CSS on Netscape? IE4 was actually a beacon back in its day.

Everything is cyclical: Lean - Average - Bloated - Lean - Average - Bloated

Then, Safari has an amazing energy footprint.

I will readily agree that the evolutionary path of OSX seems to have gone off the rails. But hey, why do I use Safari instead of Chrome?

Apple's model has been apps instead of websites for a while now. It seems unlikely that Safari will ever be cutting edge.

Are we currently in the bloated stage?

- Chrome sucks up RAM like Photoshop.

- Firefox Dev Edition is broken or slow every other build

- IE is "ok"but their dev tools are incredibly sluggish and useless.

We've got one or two last perf fixes for the Edge dev tools going in before RTM, but the current perf in Edge (Tech Preview) is about what to expect. Have you tried the latest builds? Always happy to take a message about what to fix or add (this username @microsoft.com)

Yah, although some more than others. Microsoft looks ironically (or perhaps fittingly) to be the first into the next lean cycle with Microsoft Edge.

The browser game has changed and become commoditized. Before they went towards being monoliths with everything from email, to apps and games, various services etc. Those parts are being usurped by stand-alone services and apps and need to longer be integrated into the browser. I think that's good! Browsers should focus at being browsers. Better to be a 'la carte than bundle everything under the sun.

Also, I think the vision of HTML as a "universal" app/game platform is slowly dying. We're coming to terms with HTML is really good for somewhat basic presentation and interfaces, but not much more than that.

Although doing advanced stuff is possible it seems we're coming to the realization that it's neither practical nor performant

> Firefox Dev Edition is broken or slow every other build

Then just use release? Dev Edition is the alpha version with some different defaults, based on the assumption that "developers" are OK with an alpha quality build that has some new features faster. If that bothers you, use the release. It also contains the dev tools!

I think the Servo engine is going to anchor Mozilla's next transition to "lean".

Only in the sense that its missing all the features. People seem to forget when considering current browsers "bloated" that the bloat comes from the webpages containing all the cruft.

If it lacks very basic functionality, isn't the effect the same as breaking the web?

I think one unfortunate aspect of the article is that it focuses on some of the less common deficiencies of Safari. I would have called out mobile Safari being unable to download files, or Apple's insistence against video codecs that all other vendors are aligned in agreement on when it comes to video.

> If it lacks very basic functionality, isn't the effect the same as breaking the web?

No. If what worked before continues to work, it means it's not broken.

Also: What "very basic functionality" doesn't the latest versions of Safari support?

> No. If what worked before continues to work, it means it's not broken

IE6 continues to work fine for what it supported originally as well.

Well, I mentioned the two that I am most keenly aware of. I only know what I've come across, so I'm assuming there's lots more.

To my knowledge, file downloads worked in all browsers prior to mobile Safari being initially released. So Apple did release a browser that broke some quite basic web functionality.

I don't know how I missed that part of of your post. Sorry about that. Still. I find it quite a stretch to argue that not supporting file downloads "breaks" the web. Users don't perceive websites to be broken just because they can't download files. It would be akin to claiming that a device with no camera breaks the web by not supporting the camera API. Or that the Lynx browser breaks the web by not supporting CSS and JavaScript.

Regarding Apple's insistence on not supporting Ogg (Vorbis|Theora) (I assume that's what you're alluding to), those codecs were briefly recommended by the HTML5 standard, but were later dropped.[1] Again, I think its a stretch to say that Apple broke anything, simply because they resisted a proposed standard. I know a lot of developers were disappointed, but that's how committees work: You don't always get it your way.

[1] https://en.wikipedia.org/wiki/Use_of_Ogg_formats_in_HTML5

Given that the author self identifies on his blog as a twenty-something I'm wondering if he's old enough to have ever really had to lift IE v. 4-7.

IE was a vast pile of shit for about a decade. It was pile of shit so high that Microsoft took out ads saying in so many words that its latest version "doesnt suck, honest". I tore my hair out for years over IE bugs. Fucking kids these days. Mobile Safari might not be as magical as you would desire but it is not even in the same league as the virtual genocide/superfund/WMD that IE was.


Oh the pain of having to use nested tables, various css parsing hacks, browser sniffing, two different box models, and changing significant-insignificant whitespace to support IE 5, 5.5, and 6. All with zero debugging tools.

Yep, I have had to support IE7 and 8. IE6 was, thankfully, a bit before my time.

And yeah, the title is pretty clickbaity; guilty as charged! But my blog has no ads, so it's not like I'm making money off of it. I'm just trying to draw attention to what I think is an important issue.

As others have pointed out, it's all a matter of perspective. If you're trying to build for Web 2.0, then Safari is a fine browser. But if you're trying to build for Web 3.0 (or the "next web" or "appy web" or whatever you want to call it), then prepare to be disappointed.

Heh. This is the least bad thing about IE.

The worst thing MS did with IE was implementing proprietary, and very aggressively protected, solutions to common problems. Developers, excited about the new features, rushed to support what they felt was the next generation of web technologies, only to get caught in Microsoft's trap. Once they held the marketshare majority, they stopped innovating.

Safari is nowhere close to a majority player in the market (not even on mobile). Thus, it could never be considered equivalent to the evils of IE.

Considering that Safari fails to start on a regular basis (amongst a ton of bugs and problems with it), I'd say that breaks the web a lot more than IE6.

What your comment says to me is that you were not actually there back in the day. When IE6 was released it was the best, most compliant, fastest browser. That wasn't the problem. The problem is they then didn't update it for 5 years and people eventually wanted more which IE couldn't deliver, just like Chrome and Firefox really suck at HTML6 at the moment.

And I'm sure using this tone gets you more upvotes, but it feels very ad hominem.

What? How is this ad hominen? Do you think that term just means "being harsh"?

He's attacking the guy's experience and insinuating that the OP is being sensational to get upvotes.

Ha whoops, on mobile it looked like you were responding to the OP article instead of a top-level commenter. Mea culpa. It's just something of a pet peeve that there are people who call 'ad hominem' at every insult.

Reasonable. HN is the least mobile responsive website I continue to use.

Yeah there would definitely appear to be a generation of developers now on the scene that were doing something other than web development in the 2000s. 100% this. Web development was fucking hard ten years ago.

Yeah, I was a big believer in "screw it we'll just use tables" back then. When CSS finally caught on it basically was the end of dynamic-width websites for a few years.

The point is that Safari is the browser that destroys the ability to universally use new standards. It is the odd one out that makes it hard for all the others.

Nolan is one of the main contributors to PouchDB - http://pouchdb.com/

Nevermind clicks, got to get Twitter follower counts into the thousands!

Disagree with this assessment. IE was so bad because Microsoft tried to go off and create its own standards that were incompatible with Mozilla / Firefox / etc. (I'm thinking of IE6 specifically). And this was big, core functionality like page layout and CSS; not some data structures that can be implemented in other ways (albeit with a performance hit). This was doubly bad because "enterprise" companies (SAP, SAS, Oracle, etc) built their original web interfaces against IE6; and those systems are so costly to upgrade that many companies still run IE6-compatible browsers. Chrome even has an option that can be pushed out via GPO to render certain pages using an IE6-compatible renderer. Safari is nowhere near that bad; I have yet to run across a page that works in Chrome that doesn't work in Safari.

Safari, by comparison, is just behind the curve on some developer-centric features. But Safari also has some things going in its favor: in my experience, it's the fastest browser on OS X by a pretty wide margin. Chrome is so bloated and full of garbage at this point that when I have it open, I usually have at least one tab sitting at 100% CPU (and this is with FlashBlock enabled). Safari also manages to feel faster while using significantly less power -- I suspect Apple has done some optimizations through Grand Central on this front.

Safari on mobile is a bit of a different story; yes it has problems, but I don't know that supporting a larger feature set is the answer.

  > in my experience, it's the fastest browser on OS X by a pretty
  > wide margin. Chrome is so bloated and full of garbage at this
  > point that when I have it open, I usually have at least one tab
  > sitting at 100% CPU (and this is with FlashBlock enabled). Safari
  > also manages to feel faster while using significantly less power
  > -- I suspect Apple has done some optimizations through Grand
  > Central on this front.
This. As a developer... I sympathize with people who like developing on the desktop with Chrome and for Chrome, but as a user, I prefer the browser that doesn't spin up the fans on my MacBook Air.

As we adulate Tesla for their accomplishments with battery technology, we often point out that battery life is a software problem, and that it involves a specific set of engineering tradeoffs. Apple is simply making those tradeoffs. And it has to.

Google make a browser that runs on everything. If one platform is slower than another, or has less battery life than another, blame the platform vendor. Google doesn't care. But Apple sells hardware. If a MacBook gets so hot it burns your thighs, they lose sales. If the battery life on an iPad is terrible, they lose sales.

Safari gives their users a legitimate way to enjoy web browsing on a cool-running system with long battery life. That sells.

It also has better performance with retina, scrolling, less jank, and other user-experience/satisfaction related qualities.

It's dev tools aren't adequate for my use, but for being a user of other sites, it has been wholly sufficient.

Apple's improving the dev tools in El Capitan: https://developer.apple.com/videos/wwdc/2015/?id=505

> I sympathize with people who like developing on the desktop with Chrome and for Chrome, but as a user, I prefer the browser that doesn't spin up the fans on my MacBook Air

For me it's just video perf, but the worst part is that it's Google own web services that are spinning up the fans, and their video services work 10x better in Safari!

I have a shiny new 15" Retina MBP, which heats up like a stove if I use Chrome to open a video Hangout or watch YouTube. So for work meetings I've made a habit of having my calendar always open in Safari so when I click the video link, I get the Hangout in Safari as well.

And Safari manages to not set my computer on fire, amazing!

> IE was so bad because Microsoft tried to go off and create its own standards

That's a common misconception, but what actually happened was that MS implemented draft CSS specs which ended up being a bit different from the final standard. At the time they were extremely eager to pack new stuff in IE (including a state-of-the-art XML/XSL processor!), so they rushed in a lot of stuff before other players had agreed how this stuff should really behave.

IE was then basically abandoned. MS just refused to fix their engine to adhere to newer standards. By the time this became to be seen as a problem, Netscape was dead, IE was dominant, and they were busy trying to plug the ActiveX security sieve, rebuilding on .Net and finding an alternative to Flash.

In this sense, Apple have done exactly the same with Safari: they poured resources into it while they were competing on the desktop. Now they only care about iDevices, where they have no competition at the browser level, the priority is battery time, and stability (aka rot) is preferable over innovation. Look at Safari for Windows: they built it only to support iTunes, and basically dropped it when iTunes on Windows became fundamentally unnecessary.

They went ahead when they wanted to be in the game, now they own the game so their incentives are different. Exactly what Microsoft did back in the days.

> Safari on mobile is a bit of a different story; yes it has problems

that's a understatement., working on ios safari has been a travesty: it steals a good 20% of view area and 25% of clickable area, it makes a mess with pages trying to be responsive by misreporting the viewport area, it has loads of bugs with resizing and orientation change events and just dies if one script in any page becomes unresponsive

Right, but the problems Safari has on mobile aren't going to be fixed by implementing IndexedDB; and honestly the WebSQL vs IndexedDB argument is irrelevant to most people: 95% of web developers will just use a framework that abstracts the differences. And I wouldn't claim that mobile Chrome is a whole lot better on this front, even (or especially) on Android. The limitations of mobile CPUs combined with higher user expectations on responsiveness mean you have to pull the plug on a runaway process a lot faster than on a PC, and neither Apple nor Google is immune to this.

Chrome on Android works great and experiences literally zero of the issues mentioned for Safari.

Chrome for Android is an app, not a system component, and does not require Android point releases to be updated. It is frequently updated on a regular schedule by Google and pushed out to devices.

Using sources like www.caniuse.com, I frequently find that Safari/iOS does not support a feature that is supported on Android browsers and desktop browsers.

When designing responsive in 2015, I limit myself to Safari/iOS, the worst browser I build for, then quickly and effortlessly make sure all other browsers work.

That's my reality, Safari/iOS is the worst platform to develop for for me. I can't even remember the last time Chrome/Android had any issues that weren't also present on Chrome/Firefox/Desktop. Safari iOS though, even with CSS Resets, even with custom CSS, always finds a way to be non-standard with text size, or font weight with bold, or some "feature" that breaks Safari and nothing else.


What about the other 50% of Android users that don't have Chrome or Chrome WebView? I've been working mobile for a few years now and would love to drop anything before KitKat, but that's not something feasible given market share.

In practice, pre 4.4 embedded WebViews have worse support for standards than Mobile Safari. Chrome for Android was in part a system component in order to replace 4.4's embedded WebView, only until 5.0+ did it become decoupled.[1]

Google's evergreen approach reduces fragmentation of a core API and it's been a godsend. I know in the future, Safari will be left alone as a pain point. Just don't misrepresent the present situation, where older Android has worse standards support than Mobile Safari and can't even be debugged in devtools.

[1] https://developer.chrome.com/multidevice/webview/overview

> "pre 4.4 embedded WebViews have worse support for standards than Mobile Safari"

My old Windows XP box also has worse support for standards than Mobile Safari.

OK, so XP also doesn't have market share. But it's hard to blame older versions of Android for not supporting standards that didn't exist when they were implemented, just because people continue to buy low-end devices running those old versions.

Right, but at the same time you can't say that Safari is the only thing holding mobile web development back. Because dropping users on "old" versions of Android isn't an option from a business standpoint, Safari isn't the only thing holding people back. And 4.4 really isn't that old; so there are tons of users on older devices.

The Android browser was a sore joke and didn't support years old standards. It was embarrassing for Google, the top web company, to release a browser that was so impaired and so slow at adopting standards, years after Mobile Safari. With Chrome, google has reverted the situation and they are now bleeding edge.


Android Chrome has about 13.3% global usage, and all versions of Android Browser have about 6.5%. If we do not count versions before 4.4, then Android Browser has about 2.5%.

Also worth pointing out that Chrome for Android is over the 1 billion mark (1,000,000,000 - 5,000,000,000)

this. and don't get me started with the whole mess that happens if you dare to use a css transform on a positioned element, which works kind of differently according to every browser already, but is completely different than every other on safari/ios

Have fun abstracting the difference between a relational database and a NoSQL database! That will only work for trivial applications.

There are already abstractions that work over both and work for nontrivial apps, including, IIRC, an indexedDB polyfill using WebSQL.

Going the other way might be harder, but every rdbms is, itself, an abstraction over a nonrelational storage system of some kind, so it's clearly not impossible.

The IndexedDB polyfills over WebSQL are horribly slow and buggy. You'd be hard pressed to do something non-trivial with them. Believe me, I've tried. Still better than using Safari's IndexedDB though!

Nothing you've said here really addresses the problem discussed and really you're looking at this from the perspective of the consumer and not the developer.

> Safari is nowhere near that bad [as IE was in the past]

Doesn't address the problems developers are having.

> I have yet to run across a page that works in Chrome that doesn't work in Safari.

Try any webpage that uses WebRTC, and there's a growing number of these. But really it's because people are doing what they did with IE6 which is here is code that works everywhere, and here is some code to make it work on Safari so the user is none the wiser. The problem is still there.

> Safary, by comparison ... <insert swoon>

This has nothing to do with the post. Great you like Safari, but the problem still exists. Where's the WebRTC support? The Audio API? Right.

As to the original article, I prefer a 4th step not mentioned, just ignore Safari. Apple has a huge iOS userbase, sure, but as the HTML5 disparity between Safari and other browsers increase it's becoming increasingly not worth considering and really do iOS users even expect the HTML5 features that don't work in Safari? They'd probably prefer a native app for that.

Desktop users can use Chrome or Firefox when a site doesn't work in desktop Safari, and if that makes them mad, good. Maybe Apple will fix their shit then.


Regarding downvotes: I know engineers are ignoring Safari. I ignore Safari, and other people I know ignore Safari. A convenient sample sure, but as this article points out developers aren't happy. Downvotes or no. Deal with it.

> Nothing you've said here really addresses the problem discussed and really you're looking at this from the perspective of the consumer and not the developer.

That's entirely the point: developers and users have different needs. But the developers will follow the users to whatever browser the users feel is best. Apple's priorities are on improving battery life, page responsiveness, etc. If users value Apple's browser development model that prioritizes user-facing features over developer features, then the developers will simply follow the users. If you want to build a product around features that a major browser doesn't support, go ahead.

To use the dreaded car analogy, you don't build a car to be easy to work on just to make the mechanics happy. You build a car that consumers want to buy, and it's the mechanic's job to figure out how to work on it.

> then the developers will simply follow the users.

That didn't happen with IE6. I think the web as platform is bigger than Apple as big as it may be. It's amazing to me that you're OK with a single company holding back the entire platform because of a single device. People use the web with machines that don't even have batteries.

Really to a developer who cares about the open web and standards, just throwing the whole concept of the web out of the window for the sake of Apple's priorities is so, so bad and it will never happen. At least that's my hope and prediction. The open web as a platform will guide my behavior with regards to how I engineer applications that run in the browser, whether Safari is on board or not.

> That didn't happen with IE6

Yes it did...but anyway, the detail is irrelevant; it's the point you're refusing to acknowledge:

A developer, building a product, is obsessed with growth metrics, OR, a slave to the pedantic demands of a client they're working for.

Either way, those demands require that a site be available to as many people as justifiably possible. The questions you have to ask are:

1) Is the the $ value of a customer using IE6 worth the time taken to make the site work in it? (No, almost certainly not)

2) In IE8? (Hopefully not, but you know, there are still a lot of these guys, and it's almost always a demand in the .gov space...)

3) In Safari? Yes. There are tonnes of these guys, especially on mobile where they don't have a choice, and no matter what fancy javascript 0-day API you're in love with, you can work around it without any significant effort.

The point:

Is safari holding things back? Yes.

Is it OK? Not really. It sucks.

Can you ignore safari and pretend it doesn't exist, and lose those customers? No. No you can't.

We're webdevs, sucking it up is what we're good at. We've had years of practice.

Suck it up.

The path forward, I think we'll find in the long run is going to be less native apis, more WebAssembly-style low level polyfills to implement new 'universal' features that run on all js runtimes.

> Can you ignore safari and pretend it doesn't exist, and lose those customers? No. No you can't.

Actually we can, and where I work we do. Never has anyone complained about it. SO everything is just fine. So I don't need to "Suck it up".

Maybe you can, because either you work for yourself, or you work for some who doesn't care... but you're mistaken if you think you fall in the majority in that.

> That didn't happen with IE6.

Yes it did. That's the entire reason IE6 was such a headache: IE6 was by far the worst browser platform out there, but everything in the corporate world was written with IE6 in mind. This made it a nightmare to support these sites -- because they didn't work in Firefox or Chrome. So when IE6 was finally deprecated, it was a mad scramble to try to patch internal tools (or hack an unsupported install of IE6) so your HR person could access payroll.

Rather then just downvote you, let me say that I (20+ years webdev) and my colleagues use our audience to determine what browsers we support, not our personal preferences. My job is to provide visitors to my clients websites with the best possible experience, not judge them on their technical choices.On the site I support, hundreds of thousands visits a year are from Safari users. Based on your comment ("deal with it"), you pretty clearly are not the kind of web developer I would ever hire. Or your engineer friends.

Yeah, the choice of which browsers to support is a business requirement informed by marketing, not a technical decision. Business requirements should inform the selection of technology, not the other way around. When you let technical requirements drive your business requirements, you end up with a product that is a poor fit to user's needs. It's hard enough to get users for a new product without engineering imposing arbitrary technical limitations.

Without having practically any serious web dev experience (just some minor freelance here and there) I can imagine a world where you both are right.

They might've done the math and realize that the amount of safari users they might gain is not worth the cost of the extra development (time & money).

You obviously do.

> significantly less power

This is the big issue for most people, I think. I would love to use Chrome, but when I do, (a) thighs burn to a crisp if my machine is on my lap directly and (b) the battery depletes, literally, 1.5x as fast.

I've noticed this using Chrome on Ubuntu. Is Firefox the best alternative, (is it significantly more efficient?) or can you suggest something else?

Chromium has a bit less bloat than chrome, but less features correspondingly. Aside from that, firefox seems to be the big contender.

Epiphany works pretty well for me, I've been forced to customize the User-Agent string to that of Chrome to make certain things like Outlook Web App treat it like a Real Browser(TM), on occasion I have to use Firefox still (Plex doesn't work in epiphany) but overall it works fine.

I should note that Epiphany is the only Linux web browser that seems to interact with touch screens correctly, drag-to-scroll works wonderfully on my XPS 13 meanwhile Chrome and Firefox just keep trying to highlight text.

Epiphany is also based upon GtkWebKit, which is a Gtk port of the same engine that runs Safari.

why is that? does safari use some undocumented api, or that chrome sucks up more computing power in the name of rendering speed/responsiveness?

It's the latter. From what I've noticed, Chrome engages the dedicated GPU to speed up rendering. This by itself will cause a spike in power usage.

Yet Safari must be doing something with the GPU too, it scrolls quicker. I guess there's just more incentive to optimise a platform for Apple.

I think it's just a lack of optimization for battery usage on OSX Chrome. Google seems to have recently realized it is an issue though and is making progress on improving things: https://plus.google.com/+PeterKasting/posts/GpL63A1K2TF

Safari's speed is a tossup for me, in that opening new tabs and typing in the address bar both are often preceded by several second (!) delays before the UI responds. This persists across multiple instances of clearing all of my browsing data and even migrating to a new laptop. That I continue to use it over Chrome in spite of that implies a lot about the sorry state of browsers in general right now.

That's right Apple, can do no wrong. Where do these guys get off criticizing them? How dare they.

As a primarily web-based advertising company, Google benefits immensely from a more feature-packed web. So does Mozilla, both because they depend on ad revenue and because they are betting very heavily on the web as a platform. Even Microsoft is heavily invested in web technologies, not only because of Bing but also because HTML5 forms the backbone of Modern (Metro) UI.

Apple, on the other hand, has no reason to want the web to flourish. They make money by selling hardware, and by managing a closed ecosystem of apps and services that revolve around said hardware. iAd focuses exclusively on apps, not webpages. Cross-platform web technologies that try to close the gap between web apps and native apps are a threat to Apple's bottom line. The more people abandon the web in favor of native apps, the more money Apple makes.

At least in the days of IE6, Microsoft didn't really care about the web. Apple nowadays, on the other hand, has every incentive to sabotage the web. I don't think it's just technological purism that makes them reluctant to allow alternate rendering engines to work on iOS. They need to ensure that apps are the only way for developers to bring advanced features to iOS users. Because they're not competing on the web like the others. They're competing against the web.

    Apple, on the other hand, has no reason to want the web 
    to flourish. They make money by selling hardware, and 
    by managing a closed ecosystem of apps and services 
    that revolve around said hardware.
You have the key thing correct: Apple makes money on hardware.

So it doesn't follow that they would want to stamp out or ignore the web. The web is a huge part of what customers use Macs and iOS devices for, and Apple makes the same amount of money on a piece of hardware whether you use it to browse the web or use the $0.00 Facebook app.

There's no denying that Apple wants you to buy into their ecosystem of apps: it helps bind you to their devices. But there's no incentive for them to extinguish the web.

    At least in the days of IE6, Microsoft didn't really care about 
    the web.
No. The web was directly opposite to Microsoft's goals. Microsoft made money on operating systems and applications. If the web "won" then you wouldn't need a Microsoft OS any more, and Microsoft would "lose."

> HTML5 forms the backbone of Modern (Metro) UI.

Factually incorrect, WinRT certainly supports HTML5 apps but it supports .Net and C++ too, all of the WinRT implementation code is either native C++ or .Net.

If Apple really wanted to make Web Apps feel like a second class citizen, they wouldn't be adding Force Touch, custom AirPlay control support and Picture In Picture support to the upcoming version of Safari. Those are deep, native app level features that aren't even Web standards yet.

I assume Apple is underinvesting in safari simply because they have bigger fish to fry, and they are notoriously understaffed with competent engineers (or have bad project management).

As a user, I love Safari. The hand off between my macbook and iphone is amazing, it feels smoother than other browsers.

As a developer, I would say they are just doing a few things differently. I think the web API and DOM/css should have a standard set that every browser has to implement in the same way. It's actually way way better than it used to be. However, I'm fine with additional api features as targeting browsers is not not difficult and may open up some cool features. Like perhaps native notifications API on IOS Safari, that would be sweet!

For the base Web API though, Safari has deviated on a few small things, but it's not really to the point where IE6 was.

Also, people will upgrade Safari. Unlike IE6, where IT shops would not upgrade because of Active X applications, Safari will at least be upgraded. So I think it's unfair to compare it to the old IE.

P.S., The new Windows Edge browser in Windows 10 is pretty amazing, it feels like Chrome. Very fast. And if you are not familiar with the Mozilla Servo project, it's worth checking out. It still has a long way to go, but down the line could be very interesting.

Handoff also works with Chrome - it only needs to be the default browser on your Mac.

Handoff actually works for you? You're one in a million.

Yeah I've never had any issues with it. It also works when I'm using Chrome on my macbook. Like, a safari tab will show up on Chrome, it's pretty sweet.

Safari is worse than IE, however. You could install an alternative.

Even if they weren't, I fully agree with progressive enhancement. It is always going to provide the right incentives for everyone. Only the features most used (by end-users) will become browser vendors' utmost priority.

You can of course install an alternative to desktop Safari, just not to Mobile Safari.

By the numbers, mobile is the one that matters.

So I should delete my Google Chrome app then? Granted it doesn't take the default for things but I can still use it.

The iOS version of Chrome doesn't use Chrome's rendering and JavaScript engines though, per the App Store rules it has to use WebKit [0]. So, any other browser app on iOS would have the same problems as mobile Safari.

[0] http://daringfireball.net/linked/2012/06/28/chrome-ios (linked by the article btw)

That's amazing. Thanks for reminding me how much contempt they have for choice.

Not quite my area of expertise, but I believe that browsers on Android also tend to use the core Android browser components though they can dress them up slightly differently.

> ...I believe that browsers on Android also tend to use...

The word 'also' doesn't belong here. Browsers on iOS don't tend to use core iOS components (WebView) : they are forced to. Your statement really isn't a counter point.

Browsers on Android are not required to use Android's built in WebViews. And several alternative browser engines are offered by the platform[0].

Android has no specific restrictions in place. Although it is the path of least resistance to use the built in WebView, since you now don't need to deploy your own.

[0] Including: Blink (Amazon Silk, Chrome, Opera), WebKit (BlackBerry, Dolphin, et al), Gecko (Firefox, Minimo), NetFront (Blazer). At the moment WebKit derivatives seem to be most popular, but several browsers re-build it from the source rather than just using Android's WebKit components.

Thanks, as I said, NMAOE and I was mostly reflecting observations based on some dated Android builds.

Some browsers do, but Firefox Mobile uses it's own core.

That makes it possible to use extensions like ublock, for much better browsing experience than any browser without ad blocker can provide.

They can, but they don't have to. Mozilla ships a Gecko engine in Firefox for Android.

They might tend to, but Firefox for example is the real thing on Android.

Ah, I wasn't aware of that. Thanks.

Yea, I just really like that I can access all of my open tabs with it. It also context switches better with iOS outlook if you click on links you can quickly go back to outlook.

Sounds like United States v. Microsoft Corp.[1] all over again.

[1]: https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor....

On iOS, all 3rd-party browsers (and even the upcoming Firefox for iOS) are using the rendering engine of Safari. The complaint is not about Safari the browser but more about its rendering engine.

Google Chrome app on iPhones still use mobile safari's rendering engine lol

It's not. At least not according to caniuse.com, html5test.com or css3test.com.

Okay, I'm getting on this a little late, but this is where I have to say, Hacker News, you are full of shit. Every time someone comes up with an anti-Apple title, it gets several hundred points. I'm seeing 600+ right now. And the evidence does not corroborate the claim.

In the beginning of the article, the author points out this set of techs as stuff that Apple does not support: {Service Worker, Web Components, Shadow DOM, Web Manifests}.

Well, you can go to caniuse.com, and see that for all of those (except Web Manifests, which doesn't show up), they are only well-supported by Chrome and Opera. Firefox usually has it disabled by default, and it's noticeably absent from IE.

I think the real issue here is something we might all find a little uncomfortable, and it's that the web isn't as important as it used to be, and Google is the only company really pushing it as a platform. Certainly, Microsoft may be repentant, but Microsoft either doesn't care to catch up, or they think it's not going to help them even the ground against Apple. And that doesn't deserve the title or the comments we're seeing here.

I think you are wrong that the web matters less, and also wrong that only Google is pushing it.

First, you forgot IndexedDB, another example from the article, which disproves your point. Other examples include fullscreen and WebAssembly.

Web Components/Shadow DOM and Service Workers happen to be two technologies that Google is pushing. There are of course plenty of examples where Google is behind: Nested Workers, asm.js, ES6, etc. etc.

It might be true that the web matters less to Apple than it used to, and that isn't very surprising - Apple's native apps on iOS are massively successful, and it makes sense for Apple to focus more on that. And that does mean the web matters less on mobile, since Apple is huge there, but the web is still just as important as it always was on desktop.

The end user doesn't care about IndexedDB. Just because web folks like you push new technologies doesn't mean that those technologies matter. It doesn't mean that the web will stay forefront. People have to want to use those technologies, but most of my non-tech friends don't even surf Facebook on the web. They check Facebook on their phones. A lot of people don't even book AirBnBs on their computers.

Now, you guys can plug your fingers in your ears and call me a fanboi, but I'm just pointing out that non-tech folks don't know the difference, and they couldn't really care. The native experience on iOS massively trumps the app experience on Android, as well as the web experience on iOS and on Android.

Now for me, as a dev, I would rather code for the web than for iOS or for Android. But the wider world does not care about me. The wider world would feel that the web is much too late to the game with all these techs, when the same experience (or possibly better) was available with native apps years ago.

I don't disagree with any of that.

I do disagree with the things you said earlier: It is just not true that the web matters less, nor that Google is the only one pushing it.

The web still matters a whole lot. And many parties aside from Google are pushing it - Mozilla, Microsoft, Khronos, Khan Academy, among many others, are all pushing it forward; Google is behind in some areas, ahead in others, etc., just like everyone else.

Perhaps you assume that since mobile is important, it means the web matters less? I think it just means that in the new space of mobile, native apps matter more than the web. But that space didn't even exist before, it isn't a "loss" for the web. Native apps also matter more on game consoles, for example. But the web is still very important.

> The end user doesn't care about IndexedDB.

I'm not sure what this is supposed to mean; the end user also doesn't care about JavaScript or their OS kernel.

> web isn't as important as it used to be

How on earth did you come to this conclusion?

I think fanbois just make up stuff to support their argument. Doesn't have anything to do with reality.

> Google is the only company really pushing it as a platform

Who's leading the charge on es6 implementation? [0] Who created asm.js and developed Web Assembly? Not Google.

[0] http://kangax.github.io/compat-table/es6/

If Safari became a little too good, people might stop buying or developing apps.

It's not as if it's the first time Apple does it either. They positioned OS X as the best platform to run Java, yet ditched it a couple of years later. Even back then, people were complaining about it [0].

Developing on Mac has always been a chore (at least back in the XCode 1.1 and 2.0 days), with poorly documented APIs and APIs that are just flat out broken (OpenGL comes to mind, and is still broken to this day apparently).

Our running joke back then was that "Macs are very user friendly, except developers don't count as users." Still true to this day apparently.

[0] http://www.artima.com/weblogs/viewpost.jsp?thread=13058

Which has been stated again and again, but was never an issue with Apple.

First because what they make from the App Store is spare change for them.

Second because they did have the best browser for a while, and did very much to advance the state of the art (from WebSQL, to Canvas, CSS 3D and other stuff, all originating there, along with the original fast-JITed JS engine who started the JS-race to what we have know). And they did that for years after they had an App platform available too.

Curious where you are basing your revenue numbers from. Per Apple's reported statistics for 2014[1], developers pulled in $10 billion dollars in revenue from the app store. That means that Apple's revenue from the app store should also be in the low billions (based on the 70/30 cut they take from app store sales and purchases).

All without manufacturing logistics and hardware production costs. Obviously the computing infrastructure, payment processing and software engineering of the app store has a cost, but I'd imagine much less than those involved with building, distributing and selling a computer or mobile device.

It may not generate as much as hardware sales do, but billions of dollars hardly seems like spare change.

[1] http://www.apple.com/pr/library/2015/01/08App-Store-Rings-in...

>That means that Apple's revenue from the app store should also be in the low billions (based on the 70/30 cut they take from app store sales and purchases).

That makes it around $3 billion, before taxes and infrastructure expenses, payment deals, etc.

$3 billion is spare change for Apple. They have 200 times than in cash.

Again you post information without any sources. A more accurate figure is $178 billion in cash at the beginning of this year.[1] That means they have around 59 times more than that amount in cash, not the 200 you claimed. Also, I think its telling that Apple themselves mentioned App Store Sales as a main factor in their revenue earnings for Q4 of their 2014 fiscal year. [2] What's important is how much of their total annual revenue and profits are derived from App Store sales, not how it compares to the amount of cash they have on hand.

As others have mentioned, there are other benefits from native applications, like vendor lock-in, which Apple isn't going to get with web-based applications.

[1] http://money.cnn.com/2015/01/28/investing/apple-cash-178-bil...

[2] http://www.apple.com/pr/library/2014/10/20Apple-Reports-Four...

>That means they have around 59 times more than that amount in cash, not the 200 you claimed

Still, same order of magnitude, and still many times over their app profit.

>Also, I think its telling that Apple themselves mentioned App Store Sales as a main factor in their revenue earnings for Q4 of their 2014 fiscal year.

Telling towards what?

I don't see how you can justify being off on your facts by 3-4 times by saying its still in the same order of magnitude. You overestimated their cash on hand by about 422 billion dollars. Again, I see the cash on hand as a weak argument. What really matters is how much annual revenue and profit it brings in. Apple is going to be concerned about anything that adds or takes away from their revenue in a significant way.

Its telling that App Store sales are a significant source of revenue for Apple. One that could possibly justify not making improvements to Safari that could make it better compete with native applications.

It's not about the money from the app store, it's about the lock-in from apps, which is far more valuable.

Not much lock-in. Most apps are either cross platform or for casual use, and I could buy an Android phone and be productive tomorrow, transferring all my images, documents, contacts and such in a couple of hours.

People don't feel locked with their app purchases. Case in point, the large volumes of people going from Android to iOS and vice versa.

The App Store may not be a money maker, but it definitely is a competitive advantage when selling iPhones over the competition esp. Android phones.


According to caniuse.com, it's not present in any Safari browser: http://caniuse.com/#feat=vibration

Absolutely agreed. They want the web to lose.

Absolutely disagree.

Apple wants to make the best experience for users because then they'll keep buying Apple products. If users want the web, then they make the browser better. If Apps are more appropriate, then they make apps better.

Apple prioritizes stuff users care about -- battery life > IndexedDB, accessibility > WebGL.

Until you understand this and stop thinking like a conspiracy theorist, you won't understand Apple and will keep confusing your priorities with user priorities.

Again: pleasing users -> profit. Making web lose -> ???

This isn't "embrace and extend" -- Microsoft added huge swathes of proprietary functionality to IE and tended (and tends) to prioritize developer and corporate IT desires over users. Insofar as Apple extends the browser, they do it through standards and proposed standards and (mostly) open source the implementations.

Apple wants to make the best experience for users while maintaining vendor lock-in.

iOS users invest hundreds of dollars in apps and games and enjoy exclusive products. This creates a very significant barrier to switch to another mobile platform.

Quite obviously increased switching costs for users are important for iOS to maintain leadership in platform wars.

Therefore, rapid advancement of web apps user experience to the level of native apps in some categories would be detrimental to Apple's competitive positions.

Making web lose -> stronger competitive advantage.

Making web lose -> make users unhappy in short (and probably long) term, damage Apple's reputation in long term

It's totally awesome how Google created its Play store so that it seamlessly works on competing platforms -- after all it's a largely open-source stack that would easily run on (say) iPhones. No wait, they use it as a bludgeon to keep third parties in line (and create vendor lock-in).

> Making web lose -> make users unhappy in short term

Sure, it decreases user satisfaction for a SUBSET of users, who care about web apps. This subset seems to be strategically negligible for Apple. This is a trade-off which is absolutely rational from the shareholders/management perspective.

>It's totally awesome how Google created its Play store so that it seamlessly works on competing platforms

Your fanboyism shows. This thread is not about Google, also a corporation which actions are driven by interests of management and shareholders.

Ah yes, pointing out that your anti-Apple arguments are just as easily applied to Chrome/Google, Firefox/Mozilla, or IE/Microsoft makes me a fanboy.

It's like Betteridge's Law for discussions involving Apple.

Correct me if I am wrong, but how could Google ever create a play store for Apple iOS devices? Doesn't Apple forbid that?

Non android badge android devices are my point.

Can you explain how fixing IndexedDB bugs hurts battery life? Can you explain how WebRTC hurts battery life?

It doesn't hurt battery life. It just takes engineering hours away from working on battery life.

But that argument can justify any deficiency in Safari, so it's unconvincing. Eventually you're just saying, "Apple don't care about all these new web things." Which is the point of TFA.

How so? Let's suppose Safari has some horrible bug in it that exposes users to malware or whatever. (And it has had from time to time and Apple has been rightly pilloried for some of these cases.) Tell me how saying that Apple would rather improve user experience than add developer-friendly features justifies this.

Different people will draw the line at different places. To you, the hypothetical malware vuln should be fixed before e.g. improving battery life by 5%. To some other user who is on a long plane journey without a power adapter and doesn't e.g. click on .flv links on specialty forums, maybe it shouldn't. But to a greedy fruit executive who wants the web to be insecure? There's no question! b^)

This thread explores the possibility that, for strategic reasons, new web stuff is not implemented on Safari. That proposition is scarcely undermined by hypothesizing a typical user who doesn't care about new web stuff as much as she cares about battery life. She's hypothetical, why should she care about anything as much as she cares about battery life?

Let's ignore the fact you didn't address my argument.

There are diminishing returns.

It's not like Apple has provided a web browser that basically doesn't work but has great battery life. Most people consider Safari to be the best mobile browsing experience there is. (I just googled to make sure I wasn't quoting outdated opinions and it's still true.)

Safari in 10.11 has added a feature which tells you which browser tab is making noise so you can close it. Just now I was so wishing for it (in Chrome -- which is my primary browser, since I'm a web developer). Shame on Apple for doing that and not fixing bugs in their IndexedDB implementation! (BTW those bugs are horrible -- how on earth could they pass the simplest unit tests? -- and really should be fixed.)

> To you, the hypothetical malware vuln should be fixed before e.g. improving battery life by 5%.

Apple doesn't let users decide what's best for them... that's one of the things that's different about the company. Want to customize your UI? Nope, that's silly, you can't have it. Apple would decide what's good for the user and it would probably consider browser vulnerabilities more important than some obscure new feature.

> But to a greedy fruit executive who wants the web to be insecure? There's no question!

Good grief.

Safari in 10.11 has added a feature which tells you which browser tab is making noise so you can close it. Just now I was so wishing for it (in Chrome -- which is my primary browser, since I'm a web developer).


Good grief.

The smiley b^) means it's a joke. At this point I have to wonder who is trolling whom...

That's great -- I didn't know because chrome doesn't display those things if the tab is narrower than the caption, and I usually have a lot of tabs open. Argh!

(Especially with the trend to wide-screens, the placement of tabs on the top vs. the left side seems to me to be a gigantic misstep on everyone's part)

Not trolling -- just ignorant. (And the implementation is kind of flawed. Sufficiently flawed that I've never seen one of the icons. I wonder if Safari's is any better -- can't be bothered installing the beta.)

Not a big fan of your "b^)" emoticon -- doesn't look like anything to me, and doesn't show up in lists of common emoticons. But OK your most outrageous comment was in jest; fair enough.

I have only one eye and wear a patch over my right socket. Also I have a pointy nose. A friend of mine suggested that smiley a long time ago, and I've used it since.

Some how they've managed to work on both in iOS.

Hence it being the new IE.

If Apple really wanted to make Web Apps feel like a second class citizen, they wouldn't be adding Force Touch, custom AirPlay control support and Picture In Picture support to the upcoming version of Safari. Those are deep, native app level features that aren't even Web standards yet.

I assume Apple is underinvesting in safari simply because they have bigger fish to fry, and they are notoriously understaffed with competent engineers (or have bad project management).

They're adding APIs that only benefit people using their hardware. Unless they open source AirPlay and whatever else they need to do for Force Touch I'm failing to see why I should be excited by that.

I'm not sure you can pin this all on Apple.

Back when the first iPhone was released Jobs was all "We have a great way for you to develop apps! ... HTML5!"

All the developers were disappointed and wanted a native API. So here we are.

I generally disagree with the article, but I was also making web apps ten years ago. Trying to write them for IE, Firefox, and Safari.... It was hell. IE was the centerpiece of it because it was the dominant browser by market share.

Now-a-days, I think Chrome was the new IE or rather causing the same type of problems IE created.

Why? Developers don't test other browsers by and large. They are choosing to support Chrome, and implement non-standard APIs, because they see it is the browser they use. IE got us into trouble because of its market position, and because it fixed a lot of broken code (so when someone went to use another browser they though the other browser was broken NOT IE).

Developers made apps which worked only for IE and not other browsers; most of the time by accident (as their app WAS broken) but still... Now with Chrome, I see this happening again. Websites/web-apps are needlessly broken in Firefox because the devs simply didn't even try it.

Maybe, I'm wrong, I fucking hope I'm wrong, but it feels like the shit winds are getting ready to pick up again...

The big difference is that both Chrome and Firefox update very regularly, and a high percentage of users keep at least reasonably up to date - the biggest issue was really that IE had massive market share and was also not updated.

We use a lot of chrome-specific APIs, and they allow us to achieve things that otherwise we couldn't (e.g OCR running in the browser through Native Client with no performance penalty vs a native binary). We're often implementing improvements with APIs that are a few weeks or months old. We do test on other browsers though and make sure things either degrade cleanly or we provide an alternative implementation.

It isn't as bad as what led to IE's state that took several years of active development by Microsoft to even begin correcting. The gap between IE 6 and IE 7 was terrible, and IE 6 wasn't even that much more than IE 5, standards-wise.

Here's an overview of what's new in Safari (WebKit) as it ships with OS X El Capitan: https://developer.apple.com/library/prerelease/mac/releaseno...

What people often forget is that there was a time when IE6 was actually better than the alternatives (on Windows anyway). Around the time it was released Navigator was the main competitor and that was getting progressively less stable and failed to keep up with the way the web was evolving. And by "evolving" I don't just mean new techniques/standards/whatever - simply the way the size of things was growing as people started to commonly have access to decent bandwidth. A key example I remember well is large nested tables (semantic markup was even less easy to get right cross-browser at that point) - Navigator would sometimes spin the CPU for a full minute to render a page that IE would throw out in seconds.

This is the secondary reason IE gained share quickly (the primary one being bundling, of course). Then Netscpae fell over and it didn't have competition at all for a while so MS simply stopped trying (why work to improve when there is no competition and you can use the resources to work on something else?) so IE gained even more share on Windows (other OSs were not large enough in the desktop market to figure at that point, and mobile browsing was embryonic) without any effort from MS. It wasn't until Firefox got to the point of being enough better to attract a large share that the tables started turning and even then the change was slow. Opera was significant around the time too, but it not being free (or not free without adverts) was a sticking point that stopped it being widely adopted.

That is a key problem that hopefully can't play out the same way these days though. No one browser, even mobile safari, is so commonly used that if it fails to keep up it can't start to be ignored, and away from iDevices we don't have the pure binary choice so if B doesn't keep up with A C and D probably will and B will be forced to (or it won't matter so much if B dies).

From the same era on Mac, IE 5 was an amazing browser.

I think the title is right, but mainly because of the multitude of Safari bugs and its incredibly slow performance. This is for Safari of OS X: assuming it doesn't crash on startup (so for me, about two out of three computers these days, up from one out of three), Safari is a piss poor browser even when it manages to run. I have a lot of code that runs incredibly slow on Safari yet has no problems in other browsers. Sometimes it drops connections randomly. Sometimes pages just crash. Sometimes it just won't render anything. The exact same code works fine in Chrome, FF, etc. and is pretty typical angular code. In other words, it's cross-browser code. Luckily, I don't think we have many Safari customers and at this point, if things don't work in Safari, the bugs I find are filed with the lowest precedence (ie: they will never get fixed) and that only because we have a person on our team who insists on using this broken browser. The lack of support for the APIs mentioned in the article only serves to drive the point home for me. The developer tools are also substandard compared to either Chrome or FF.

IE at least had market share. There is nothing that makes developing for Safari (OS X) worth the time spent.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact