DEV Community

Cover image for Safari is the New Internet Explorer
Meghan (she/her)
Meghan (she/her)

Posted on

Safari is the New Internet Explorer

Image credit: blog.html5test.com

A little while ago, someone at The Verge posted an article titled "Chrome is turning into the new Internet Explorer 6". And today I would like to strongly refute this. The reason I dislike this article so much is because it not only brings up valid points but in the process of doing so, proves its title wrong and completely subverts the problem that it is trying to bring light to.

The issue that Chrome is starting to suffer from is that it is becoming too good. Google just has so many people invested in the entire process of web development stack (standards spec writing, browser engineering, site development, etc) that the other browsers are having a hard time catching up when it comes to releasing new features.

However, this was not the issue that Internet Explorer faced. From the article,

Ignoring web standards meant that developers started to code their sites around Internet Explorer specifically, and would recommend that their customers only accessed their site through Internet Explorer.

Internet Explorer (and ergo Microsoft circa 2006-ish) did not only not participate in standards development, but went off standard, thus forcing web developers to do the same in order to cater to the browser that had a +90% market share.

We went from seeing charts like this:
ie

To charts like this:
chrome

Chrome has spoiled us and if you are lucky enough to have played with the shiny new APIs recently, I hope you have Chrome because ES6 Modules are still not implemented in Firefox, And both Firefox and Edge do not support Custom Elements (Firefox just enabled it in Nightly for FF 59)

But Safari. Safari has both**.

Oh. You might've noticed that the "both" had a big asterisk next to it. Yes, because as I said in my title Safari is the new Internet Explorer. Safari supports many, many APIs but with just enough differences that you have to be aware of them.

  • With ES6 Modules: Safari requires that you include the .js extension in include statements, and (in my experience) will sometimes only see a function inside a module (from within a module) if you export it.
  • And with Custom Elements: Safari does not support the :host CSS selector so much of the embedded CSS that you might try to add probably won't work.

And just today, I was working on making a compass PWA, and I found a discrepancy in the deviceorientation Event on iOS where the alpha value of the Event will reset to the initial value of the gyroscope on every page load. So, instead of taking advantage of the absolute property from the spec, they added their own webkitCompassHeading property for the compass value.

Oh Apple..

😩

Top comments (37)

Collapse
 
ben profile image
Ben Halpern

While the actions of each company can be questioned in different cases, I definitely agree that Apple is dragging the web down with gusto. Google is pushing the web forward without getting everything right and Microsoft is gradually righting the ship.

Thank god for Mozilla. Throughout the whole story, they have consistently been the best actor. They don't always have the resources or the marketing push or the or the brand recognition as the big players but for better or worse their actions are usually centered in what's best for the community.

Speaking of Safari, this frustrating issue I encountered a while ago exemplifies your points pretty well dev.to/ben/safaris-implementation-...

Collapse
 
alephnaught2tog profile image
Max Cerrina

Thank god for Mozilla. Throughout the whole story, they have consistently been the best actor. They don't always have the resources or the marketing push or the or the brand recognition as the big players but for better or worse their actions are usually centered in what's best for the community.

Thiiiiiiiiiiiiiiiiiis

Collapse
 
nektro profile image
Meghan (she/her) • Edited

Thank god for Mozilla. Throughout the whole story, they have consistently been the best actor. They don't always have the resources or the marketing push or the or the brand recognition as the big players but for better or worse their actions are usually centered in what's best for the community.

RT RT RT

Google is pushing the web forward without getting everything right

I tend to more or less enjoy Google but just some ideas that came to mind,

  • Web Intents (dead)
  • Web Share (is here and has room for expansion but can only share text)
  • Filesystem API (fantastic idea, dead)
  • Custom Elements (has a v0 and v1)((v0 is dead ))
  • .WebP (Chrome only)
Collapse
 
eljayadobe profile image
Eljay-Adobe

I applaud Microsoft for making Edge. Bold, daring, and overdue.

Collapse
 
zeerorg profile image
Rishabh Gupta

But this is actually a troubling fact. Chrome is still a google "product", and web now being bigger than before google is trying bad tactics. I've experieced this issue myself, I cannot download a google drive file from firefox or edge, (it has something to do with redirects handling). I find this highly troubling.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I've encountered many sites that seem to work correctly only inside Google, and not just Google sites. There is a lot of lazy web development going, where sites are just not being properly tested.

Collapse
 
zeerorg profile image
Rishabh Gupta

There will always be small sites where developers are lazy to optimize it for all browsers, but the fact that google did this in one of their core products shows their mentality.

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

I don't like the word "optimize" here. Making a site work cross-browser isn't optimizing, it's just basic testing. It's really not that hard to accomplish unless you actively get tied in to the new <1% features one browser offers.

Thread Thread
 
zeerorg profile image
Rishabh Gupta

In the end it falls on us, as developers and users to keep the web open.

Collapse
 
mantlecurve profile image
Mithun Madhusoodanan

I have never experienced the download issue with drive. But I have came across permission denied where i have multiple google accounts opened and if the downloading account is not the primary one. The error was consistent across all browsers.

Collapse
 
zeerorg profile image
Rishabh Gupta

Maybe, someday, folks at google will realize what they are doing

Collapse
 
aurelkurtula profile image
aurel kurtula

I thought the point of the article was totally different.

When I read the tweet that chrome was the new IE I didn't even bother to read the article, I got the sentiment. But what you are trying to say kind of dismisses the fact that IE still exists, IE is still the worst browser. The point is Chrome has become the go-to browser, which as developers we should ideally design for everyone and not just for chrome users

Collapse
 
nektro profile image
Meghan (she/her) • Edited

I got that too, and they did bring up good points, but I thought the title was misleading and wanted to take it as an opportunity to outline both the problems that were mentioned in the article regarding Chrome as well as the other issues that I personally brought up about Safari.

Collapse
 
haroenv profile image
Haroen Viaene

Chrome is way closer to old IE as in, it’s the browser which moves too different from other browsers and taking decisions without comparing. Safari has a slower release cycle, but that’s mostly because they take the time to get performance right. In the end as a user I’d rather have less, but more thought out features.

As a developer, you might think it’s tedious to need to look up support for older browsers, or browsers supporting less, but in the end, it’s so easy nowadays to have proper syntax support with Babel and polyfills only where needed.

In the end, pretending there’s a new browser war doesn’t really help anyone. We should all try more exotic browsers like uc browser and the Chinese ones which have very unique quirks. Only by using, you’ll realise that it’s really not that much work to support everything.

Collapse
 
spock123 profile image
Lars Rye Jeppesen

Well Safari doesn't even support PWAs... so...

Safari is an abomination and only exists because it's the only allowed browser engine (Webkit) on iOS.

I'm surprised they never got sued because they block 3rd party browsers on the platform.. go figure.

Collapse
 
nektro profile image
Meghan (she/her) • Edited

I think this is an unpopular opinion but, I actually like that Safari is the only browser on the platform. Especially on mobile I think it's very beneficial to only have one browser for the upcoming PWA world we're trying to make. However. I only think it's a good idea, provided they (the platform devs [not just Apple]) make the browser good and up to date with current technologies. IMO there are too many edge cases in behavior with "downloading" web apps and deciding under the hood how they should be run, or even worse having behavior that causes a very annoying UX.

Collapse
 
spock123 profile image
Lars Rye Jeppesen

You think it's great there is no competition? Wow ok.

So you would love there to be only Explorer on Windows?
Only Samsung Browser on my Galaxy ?

I can't wrap my head around what you're saying other than it's insane.

Thread Thread
 
nektro profile image
Meghan (she/her) • Edited

On Windows, no. On your Galaxy, perhaps.

To clarify, I was more talking about WebKit than particularly Safari. To go on a bit of a tangent and take the current goal of PWAs and The Extensible Web to one natural conclusion is to almost completely get rid of the need of "native" applications. In this world, when a company, say Apple, wants to introduce a new platform on top of the ecosystem they've already created with iOS and macOS, such as tvOS, the idea is that they (Apple) would make the TV, put WebKit on it, and then all their users would have access to all the great web apps we know and love. At the same time I only agree with this idea in a world where (whatever company) makes the browser good (supports Web App Manifest, Service Worker, HTML5+, etc) and that a lack in engineering to bring these features to said engine would cause users to be able to switch.

Hardware is already approaching a point where it's easily faster than we are, and you almost have to try and make something non-performant. So my idea with that sentiment is that eventually all you would be buying is presentation in which case (my big jump) don't like the browser, buy something else.

Hope this helped clarify a bit :)

Collapse
 
hjfitz profile image
Harry

iOS is built on apps, but the entire Google ecosystem is built on the web.

I think that Apple is scared that PWAs might subvert their entire app ecosystem.

Collapse
 
nektro profile image
Meghan (she/her)

Oh, definitely. That's why even Web App Manifest only just went into development for WebKit within the past few days. Soon gone will be the days of apple-mobile-web-app-capable and apple-touch-icon.

Collapse
 
tifflabs profile image
tiff
Collapse
 
sstadt profile image
Scott Stadt

In most of the web you still have to compile, minify, and transpile everything anyway since IE11 has a choke hold on that last 10%.

It would be lovely if all the browsers could match standards but some things are just too young. As they get tested and hardened the market will come together on standards for all the hot newness.

I’d rather wait and get it right than get into the backwards compatibility mess that php did. mysql_really_real_for_sure_this_time_escape_string()

Collapse
 
bradledford profile image
Brad Ledford

In all of these comments the thing I’m having the most trouble with is the phrase “hot newness”. I am sure “new hotness” has greater than 70% market share but now I have FOMO.

Collapse
 
rgeraldporter profile image
Rob Porter

The recent spate of of "is the new IE" articles recently is weird. Were any of the authors of these articles actually around and coding in the IE6 era? Or is it just "things aren't ideal so let's call some of the browsers names until it's better"?

In the IE6 era, web standards implementation pretty much grinded to a halt, taking years for basic new features to roll out. I recall MS putting the idea out there that they wouldn't need any more versions as the browser was "done". There were no regular updates. You'd practically have to make separate sites for Firefox.

This era in web development has no equivalent at all to IE6. Things will never be ideal. There are many features Chrome has no one else has (yet). Same with Firefox. Same with Safari. The diversity is good, and lets them play off one another.

Until one of the browser vendors claims they're feature-complete, closes their source, and has complete market dominance, none of them are the new Internet Explorer.

Collapse
 
nektro profile image
Meghan (she/her)

From everything I've read, I consider myself very lucky that I did not have to code through the hell that was pre-2010 web development. No browser is going to be as bad as Internet Explorer since Internet Explorer exists. And at that, IE 11 is relatively quite good actually. The purpose of the article was to take a situation that I thought people would find relatable and bounce off the other article in an attempt to add my drop of water to the ocean of discourse.

Collapse
 
nicols_trillo profile image
Nicolás Trillo

Chrome is a terrible browser, I don't give a sh*t about the features, if a browser consumes more ram than a video game, and gets new features constantly, maybe the company making it should consider something known as Quality > Quantity.
Also, if you think safari is even close to being like IE, you haven't developed for IE at all.

Collapse
 
skyjur profile image
Ski • Edited

Browsers should had stopped any new ES support since ES3. Supporting new ES language features such as ES modules in browsers is just wrong direction. Transpilers allow to develop language separately from browser and developers can build for web in other languages than ES altogether like Scala, Elm, dart and typescript could get whole lot better if it stopped having to support ES. Adding new ES support in browser not only adds more complexity in browser engine it self but also further increase complexity of transpilers because now transpilers will need to support new targets to transpile to thus just wasting efforts of many people involved. JS that runs in browser should now be treated as standard assembly language of web and only get functional upgrades like new APIs to support new functionality instead of syntactical sugars that adds complexity without adding functionality. Transpilers handle the rest. Meanwhile webasm needs to be pushed forwards as eventual replacement for rotten use of javascript as assembly language.