Even more important than “Quick, name all the new features browsers shipped in 2015! You see? You can’t.”, is that it’s very easy to name all the new browsers that were shipped in 2015. At least, if you’re talking about browsers you can use practically. The list has zero entries. (Or maybe part of one: Servo.)
This is a big problem, because as browsers become more difficult to maintain and replace, browser vendors gain more leverage in negotiations where their interests conflict with those of users, opening the door for corruption. Thus we see Pocket integration in Firefox and the opaque binary blob with permission to listen to your microphone in Chromium.
But is it better than the alternative where it’s bundled and/or closed source software or software that you have to pay for and it’s standards compliance is nonexistent comparatively.
I’d rather have browsers that are very close to full standards compliance with arbitrary business partnerships and features than browsers that had an arbitrary ship date to which a middle manager said good enough. At least this way the middle manager is ruining end user experience which impacts his own company negatively rather than developer experience which really impacts third party companies/developers who don’t want to invest in developing around your browser’s quirks negatively.
Your average user doesn’t care/understand that IE can’t render CSS in a compliant way. They just think your site is shit.
On the one hand, I kind of agree with PPK here.
On the other hand, perhaps we’re just old curmudgeons. The features we wanted are there, so it is time for these damned kids to stop changing things now.
On the other other hand, Navigation Transitions really do sound dumb, given that if you want to do that sort of thing it is pretty easy to do with HTML5 ‘single page’ apps and any number of existing JS libraries.
Part of PPK’s argument here is that browsers should cede the “low latency/high interactivity” ground currently held by native apps entirely and focus on being document viewers. Transitions are a great example: they make no sense for hyperlinked documents, and all the sense in the world for building natural interactions.
IMO this entirely misses the leverage of web browsers. To paraphrase Churchill, web browsers are the worst cross-platform application platform, except for all the others.
web browsers are the worst cross-platform application platform, except for all the others.
This presupposes that cross-platform application platforms are the solution to our problems.
There was a time when Java was in the same position, with the same rationale. After a lot of wasted effort, we seem to have moved on and multi platform java is mostly history.
I’m not just presupposing that, I think its axiomatic. Who wants to spend time porting applications and services between platforms when they could be doing anything else?
It might make the developer’s life easier, but it is pure shit for the users. In the case where the users are developers, well OK, sure. But in the general case, something that makes my life better at the expense of the people who need to use my software is 100% a non-starter.
Pure shit for users? I don’t know, seems like quite a few websites nail the whole cross-platform problem pretty handily. When’s the last time you saw someone complain that <insert website here> doesn’t work on <insert browser/os here>?
When’s the last time you saw someone complain that <insert website here> doesn’t work on <insert browser/os here>?
The part that hit me hardest was
Currently I’m thinking that the progressive enhancement experience will never amount to much if we continue to get distracted by shiny new browser features.
I spent a solid majority of my day today beating a library into submission that didn’t support AMD loading. In a world where it takes multiple years from a feature being introduced to developers being able to rely on it in their full browser target it is absolutely absurd (to put it mildly) that the closest thing we have to real modules is a kludgy third party library that breaks if you look at it wrong.
I don’t mean to disparage require.js, it’s a technical marvel that it works at all and clearly it’s miles better than the alternative but the fact that it falls to a library to do what we should have had language support for two decades ago boggles the mind. If you step back and realize that the browser is an environment that comes with a built in interface to the GPU, peripherals that became commonplace in the last 5 years, and a specialized real time networking protocol, but doesn’t give you a way to write code that doesn’t pollute the global namespace it’s a little hard to believe we’ve all put up with it for this long.