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:
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 ininclude
statements, and (in my experience) will sometimes only see a function inside a module (from within a module) if youexport
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..
😩
Latest comments (37)
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.
Currently working on a website where the video controls won't show up in Safari because of some :host styling garbage... ugh.
PS we went to the same school! Awesome!
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.
Apple makes a lot of money with their App Store. Of course they don't want to risk that market by giving PWA's a future.
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.
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.
Word!
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()
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.
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.
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.
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.
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 :)
Another "good thing", the same as IE was, Safari works only on 1 platform, which is expensive and many developers don't have access to it.
It works on Windows too. On linux there arr other webkit based browsers, even if they’re not the same as Safari
Safari is only supported on Apple platforms, and is not about webkit, you have to test your web apps in the actual browser, because a lot of things can happen beside 2px CSS layout break.
Ouch! thank you for correcting me. I didn't know it was abandoned.
Safari for Windows was discontinued 5 years ago (version 5.1). I really hope nobody still test with it, thinking it renders the page as the real thing (version 11).
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.
But Apple is adopting PWAs...PWAs Are Coming to iOS 11.3: Cupertino We Have a Problem
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
andapple-touch-icon
.