The baseline for web development in 2022
engineering.linecorp.com
engineering.linecorp.com
Is that actual web standards, or just what is listed on caniuse.com? The reason I ask is that a lot of "standards" aren't actually standards:
Service workers are not yet a standard: "This is a living document. Readers need to be aware that this specification may include unimplemented features, and details that may change. Service Workers 1 is a version that is advancing toward a W3C Recommendation." (https://w3c.github.io/ServiceWorker/)
Web Application Manifest is not yet a standard: "This document was published by the Web Applications Working Group as a Working Draft using the Recommendation track.
Publication as a Working Draft does not imply endorsement by W3C and its Members." (https://www.w3.org/TR/appmanifest/)
Background sync is not a standard: "This specification was published by the Web Platform Incubator Community Group. It is not a W3C Standard nor is it on the W3C Standards Track." (https://wicg.github.io/background-sync/spec/)
Cookie store is not a standard: "This specification was published by the Web Platform Incubator Community Group. It is not a W3C Standard nor is it on the W3C Standards Track." (https://wicg.github.io/cookie-store/)
Streams is not a standard, it's just a specification: "This specification provides APIs for creating, composing, and consuming streams of data that map efficiently to low-level I/O primitives." (https://streams.spec.whatwg.org)
So does Safari suck because it's not supporting actual standards, or does it only suck in comparison to Chrome because Chrome is willing to implement technologies that aren't finalized standards and technologies that aren't even on a standards track?
Does Safari suck because it's not supporting actual standards, or does Chrome suck because it's trying to make sure that the web only works on Chrome, like Microsoft did with IE 20+ years ago?
This is a weird argument when Firefox supports many of the standards that Safari doesn't, as well.
Without knowing whether the "standards" being tested are actually standards, it's impossible to know.
AJAX is one example, IE introduced XMLHttpRequest back then and it took 15 years to become a standart. So people built their cool websites around IE features that were not actually standards and once Microsoft screwed up IE people found out that you can't switch to alternative browsers because websites were built to support IE.
As the IE experience degraded(has become famous for crashing and taking the OS with it) and there was a room for improvement, Netscape become Mozilla and they introduced actually good browser that later will become Firefox but because most people used UI, web developers had to accommodate IE by writing IE specific code everywhere. That's where the hate for IE comes from, it wasn't fanboys hating IE, it was developers hating IE because they had to write extra code all the time.
Firefox may support some Chrome features but how sure you are that Google will keep making a good browser? For many, Chrome is already a degraded experience for what it was and it is actually very nasty in favouring Google properties and tracking that can be a disaster if switching away from Chrome becomes as hard as it was with IE.
A lot of the Chrome team's "standards" have problems with accessibility, workability on mobile, security[0], privacy[1], or just battery life. Some are neat experiments that are or only will be used in the wild by advertisers to track and identify users.
Because the Safari/WebKit team doesn't have to chase users for revenue like Mozilla does they can afford to be more conservative with what Google "standards" they support. Being able to offer a tighter privacy posture or efficiency is part of the iOS/macOS sales pitch.
[0] https://github.com/WICG/webusb/issues/50
[1] https://www.theverge.com/2021/4/16/22387492/google-floc-ad-t...
Desktop Safari doesn't have a cellular baseband to worry about. Even the wake-briefly-from-sleep-to-check-email feature in macOS is only activated when the Mac is on a wired or previously joined WiFi network. It doesn't randomly blast signals in your backpack on the subway trying to check e-mail and notifications draining the battery. There's also not the same jetsam policy on macOS since it does support swap.
Batteries have finite power density and an iPhone has a finite volume for a battery. So there's only so many watt/hours that can fit into an iPhone. Unrestricted background network/processing means much reduced battery life. That's a bad thing for a phone. It's doubly bad for a device that's a device that's also an electronic wallet and navigation aid.
Smartphones aren't laptops and neither phones or laptops are desktop systems constantly plugged into mains power. A system that makes sense for a desktop on mains power plugged into Ethernet with 32GB of RAM and essentially unlimited swap does not necessarily make sense on a battery powered device with only radios for connectivity and a fraction of the RAM and no swap.
But I get it, Apple Bad and everything they do is a vast conspiracy.
Have people given up mobile apps (native or wrapping WPAs) there and use web apps on Chrome on Android?
Didn't think so....
Oh, and would you also be happy if your native apps on Desktop were replaced by more Electron?
https://twitter.com/slightlylate/status/1485387199738642432?...
EG Social Media, Google search, news websites, Youtube.
> web apps on Chrome on Android
I don't bother installing the web apps, but access them as websites through my mobile web browser (Firefox Android).
Having said that, in this context, these things don't matter at all. You can make a barebones browser which only supports HTML and CSS and get several fold improvements in battery life and performance. That is why IE was bad. It did not support newer better functionality that other browsers did.
This is untrue. There are many cases where Firefox has decided not to implement something Chrome has. Here is a list of specifications that Firefox does not yet implement but has considered:
https://mozilla.github.io/standards-positions/
Many of the ones listed as “harmful” are implemented by Chrome.
> Safari is the new IE. If you don't believe me, search for the phrase "is Safari the new IE" and see what web devs have to say about it.
I’v been developing for the web for over 20 years and that’s total nonsense. There’s nothing that makes a developer stand out as inexperienced quicker than saying that Safari is the new IE. It just shows they have no conception at all about how Internet Explorer held the entire frontend development world at a standstill for five years. Safari on its worst day is nothing like Internet Explorer.
It's really annoying when doing web development, especially as that's actually the browser that has the most chance to act different from the others.
> Apple no longer offers Safari updates for Windows. Safari 5.1.7 for Windows was the last version made for Windows, and it is now outdated.
https://support.apple.com/en-us/HT204416
I have a MacBook sitting on my desk that I only ever use to test something in Safari.
Or another WebKit based browser (ok, not so many): https://en.wikipedia.org/wiki/List_of_web_browsers#WebKit-ba...
Zynga Buys Social Web Browser Flock, Jan 2011, https://mashable.com/archive/zynga-buys-flock
Facebook and Zynga Enter Into Long-Term Relationship, May 2010, - (nothing left)
If you want to be sure that something works in Safari, you have to test in Safari...
And I need freaking XCode 12 (which requires Big Sur) just to convert my chrome extensions into Safari extensions. Just endless headaches for a simple task.
Darn it, XHTML could have been so good if it got mass adoption! It would simplify parsing content and personally, working with XHTML is sane and easy (albeit in a somewhat dated Java stack with JSF/PrimeFaces, which build upon it). It also gets rid of the inconsistent tags in HTML which can remain open, which i think is a good thing.
Then again, i also like XML, maybe to the point of sometimes preferring it over JSON (or at i would if the ecosystem would be there - WSDL was leaps and bounds ahead of OpenAPI/Swagger, but seems like the interest in XML died down), so i don't doubt that many don't feel that way about all of it.
I wasn't going there, but then with such an interesting reply I might.
XHTML's complexity is too much to deal with and the WHATWG is going to keep all this unnecessary stuff out so you won't lose control to generalized tools like an IDE and systems that favors formally educated language/tool writers, i.e. schema validators and, as we see now, transpilers.
The end result is still everyone using an IDE perhaps due to more irregular features after WHATWG encouraging a framework, but at any rate demonstrating XHTML was not the real source of webmaster stress and future angst.
So now you have more complexity, a still pointlessly irregular format that needs to identify it's magical elements, and, (to get back on topic,) features that must be implemented first in 2 browsers to become standard.
All of this is brought to you by employees of Apple and the other vendors. If WebKit isn't one of the 2 implementations most people choose to work with when pushing a standard then Safari is the dead implementation due to a constellation of choices all made with Apple's support and approval.
XML is pretty much alive in the .NET and Java ecosystems.
But I think for most people it is in general a bad idea. XHTML parsed as XML means that anything that mashes together strings to generate a webpage, like much of webdev, is prone to generating invalid XML due to bugs in the code, and this in turn leads to catastrophic failure where the page doesn’t just have errors but fails to render entirely. During the period where people were swayed by the XHTML proponents’ arguments it was commonplace for me to visit a website and see only an XML parsing error.
XHTML parsed according to custom rules that are forgiving for errors yet consistent and straightforward to implement would have been a good idea, but nobody implemented it to my knowledge. Luckily HTML5 does specify such a forgiving parsing system, where pretty much any random sequence of bytes can be parsed consistently.
Just because Chrome rammed some of its internal API through standards bodies, released it in stable, and called it a standard, does not a) make it a standard, and b) mean that other browsers should rush to implement it. No matter how many HN commentators think otherwise.
Second, especially with HTML5 and Javascript I believe, they don't do big, formal versions anymore, but evolutionary and incremental design. This prevents a lot of administrative and bureaucratic overhead (see also Java's standardization process and stagnation after 6), at the cost of having fixed targets to work towards.
Only in the most developed countries, as places like Bolivia are still hanging on to 2G. You just don't hear about those places because of that demographics problem, so people assume 4G/5G are all that's out there.
Wikipedia tells me that Bolivia has a GDP (PPP) of $89.018 billion, and there are a bunch of countries like Bolivia.
For all that people sometimes go on about untapped market potential in poor countries, it really isn't that easy when >90% of the population lives on less than 350 USD/month.
Sauce: spent the first 1/4 of century of my life living in a third world shithole.
On the other hand, Coca-Cola has a presence in Bolivia, and apparently controls about 60% of the Bolivian market.
With 11 million people, that's gotta be a nice piece of change.
If what you're selling is closer in price to a Coke than a Lambo, you probably shouldn't write Bolivia off.
If what you're selling is BOTH:
a) closer in price to a Coke than a Lambo
and
b) closer in demand to a Coke than a Lambo
Then, sure, you shouldn't write it off.
However, if you're selling stock-trading software, even for the price of a coke, you might not make enough money back to justify supporting Bolivia.
Cokes, even in poor countries, are still purchased by tens of millions of people at least once a month. Selling a similarly priced item that may be purchased by a few hundred people at most is not the same thing as Coke.
It's like PHP but this time in JavaScript.
Suspense is still not done, and it's been over 4 years. Server components aren't happening anytime soon IMO. The only reason why I think this year is still tenable is because Vercel ate up all the React devs who can contribute to such a task.
Most JS devs I've talked to or work with are writing code based on what we have now.
You're either vastly underestimating the number of developers at that skill level, or overestimating the number of those devs you or I might ever have even heard of.
a sizeable improvement maybe, also does using the same language on both side a pro or a con ? real question
Jokes aside, theoretical knowledge is definitely lacking. There doesn't seem much interest either - that is, until you show how they could have saved days and get more reliable results more efficiently, if only they had known there's that 50+ year old algorithm they could have used. Experienced and knowledgable devs are still very important to have around.
1: https://paydirtapp.com/blog/wp-content/uploads/2012/11/FastG...
The other big issue is the things I was working on actually needed high parallelism, and node really provides concurrency, so I quickly hit issues there as well. I'm currently working in a GQL based world and the golang based one we use is massively parallel and very performant, and I'd be worried about the speed loss writing in node.
This makes me very sad because I really do like Typescript as a language, and writing everything in one language seems like it'd be great. But it's really brought down by all the typing issues with legacy javascript, node, and other tools.
But then again, I'm not writing crud apps at work or for fun so your mileage may vary.
What you describe, a PHP style server rendering of mostly static HTML, with small bits of JavaScript for interactivity, sounds great. But will that actually be possible?
I'm really really sick of web apps and mobile apps that flash the "no content here" version of widgets while they wait for data to be loaded. It's the very very worst sort of user experience.
Cross-platform desktop software has been a thing for decades prior to Electron showing up on the scene, there are frameworks designed explicitly to support that, and there is a truly massive ecosystem of native libraries and tools.
This means 2G, slow 3G or satellite using customers are extremely common. No G too, if they're using your product out in the field. I myself lived 30 minutes drive from a mobile connection in 2021. A sheep literally ate my internet by chewing through the cable from the satellite to the house.
So those users definitely exist in my demographic. And very much in the demographic of my clients, as potential customers.
Still, it seems to be a hard sell to make things work with crap connections or offline. First off, frontend devs resist because you're taking away their favourite toys. (Very rational from their perspective - their next gig is probably in banking or retail or somewhere else with ubiquitous fast internet). Second off, those allocating budgets are very hesitant to spend money on any software dev out of the mainstream. From their perspective software is risky enough given its expense, let alone doing something that might require specialists. (This may be more of an Australian thing, they're not risk takers like Americans).
So yes, you're very right on a technical level. I'm with you, and would love to talk to others who see this. On a more practical level - it's hard to make the stars align, even if it will land you customers.
Anything in that post that caught your interest in particular? I'll make it happen.
Basically the idea is how much can we provide with 'only' a 2G link (afaik equivalent to 2 56k modems).
Nothing can ever top the fact you have a cable from a satellite to your house!
I don't see why you think this would be the case. A friend of mine lives down in Gilroy, CA (south of the San Jose) in a veritable mansion. He and his wife have done very well for themselves. Because they chose land over some SF row house their only internet access is a spotty 4G connection that really acts like a spotty 2G connection much of the time. No ISP is willing to run a landline out where he lives and WISPs aren't much better than the 4G. He's definitely not the only monied person with shitty Internet access.
Lost 2G users don't necessarily have 2G (or equivalent) connections all the time. There's plenty of places or times where 4G gets congested and performs terribly even when the end users have high end devices and nominally good connections. A lost sale because someone couldn't complete a form because of poor coverage on the subway is a lost sale.
Mobile Internet should never be expected to be some fixed value for any user. Someone with a brand new iPhone on a network with great 5G coverage can still be standing behind a lamppost or something and get 2G levels of network performance. Since an overwhelming percentage of web traffic is from mobile it doesn't make sense to not degrade gracefully in poor network conditions or just minimize resource use.
Also Australia is a pretty rich country.
That must have been a pretty long cable!
Disagree. It costs them time and attention. If they don't have to do something, they won't do it.
Updating software is low on people's priority lists. And not everyone has automatic updates enabled.
1. Other mobile browsers update independently from the OS, whereas Safari is only updated when there is an update to iOS. iOS devices that are no longer supported with newer versions of iOS cannot update to the latest version of Safari.
2. All browsers in iOS are based on Webkit: There are Chrome and Firefox versions for iOS but those use the same engine as Safari in iOS. This is because of an Apple guideline which mentions that all iOS browsers must use Webkit.
These users can't fix this problem without getting a new device.
The reality is that most typical users care about their privacy a lot less than we might expect or want. That's probably not a great sign for society in general, but I think it's the truth.
Firefox doesn't sell you off to the highest bidder?
Mozilla also uses Google Analytics on their websites and keep testing the waters with putting ads right into the browser. Users are absolutely justified in not trusting Mozilla's claims about caring for privacy.
FF is no longer "very light & fast" (it may no longer be possible to attain that and actually support modern web browsing—Safari is the only mainstream browser that's even close, AFAIK) and does have ads. Their various interface redesigns have made it confusing as hell to my parents. Old-school popups are handled well enough by ~every browser and they just about all use tabs and have for over a decade. Meanwhile they've added... what? To differentiate them? Plugins. But now those are the same as Chrome's. Very good dev tools—but now those are available elsewhere, too.
They needed to go all-in on something radical years ago to have a long-term shot at relevance. Decentralized social networking or chat built-in to the browser. Aggressive built-in ad blocking & unique user-empowering controls. More, not fewer, non-HTTP Internet protocols built in. Something. And clearly not Pocket.
Now I don't think their market share's big enough for even something like that that to save them. In fact now it'd likely just kill them even faster.
I beg to differ. It's certainly faster and uses less resources than even Ungoogled Chromium on the same machine.
I don’t care to burn calories on being an “activist.” I just want to visit the sites I visit and get on with my life.
Sell me on Firefox.
I do this, and I do not remember the last time I actually had to 'move on' from a site because it did not work.
Anyone wants to start a list of sites that do not work with FF? I am genuinely curious which sites these are that do not work with FF.
Also backspace and shift+backspace still work for back and forward.
That's no longer the default. It was disabled because it confused regular users and could cause data loss if people think they're typing in a form and the Backspace instead navigates back.
But good news! You re-enable Backspace as a keyboard shortcut to navigate back by setting the about:config pref "browser.backspace_action" to 2.
- Enhanced Tracking Protection isolates third-party cookies and site data into separate containers based on both the origin and the site you're currently on. It also blocks trackers. https://blog.mozilla.org/security/2021/02/23/total-cookie-pr...
- Fingerprinting Protection, originally developed for use in Tor Browser, prevents Firefox from disclosing some data that uniquely identifies you. This feature needs to be manually activated. https://support.mozilla.org/en-US/kb/firefox-protection-agai...
- uBlock Origin works on Firefox on both desktop and Android. While Chrome will block an API used by uBlock Origin in 2023, Firefox will continue to support the API. (https://github.com/uBlockOrigin/uBlock-issues/issues/338) The current version of uBlock Origin does not support Safari.
Brave is a better choice than Chrome and Safari, in my opinion. But Firefox still has some advantages.
Whitelisted extensions are not extensions at all but optional browser features developed by third parties.
On Android, I would recommend Mull (a Firefox fork) over Firefox:
https://f-droid.org/en/packages/us.spotco.fennec_dos/
On Mull, you can install any compatible extension from https://addons.mozilla.org even if it's not whitelisted.* But a whitelisted extension is no less of an extension than a non-whitelisted one.
* Instructions (steps 1-3 not required): https://blog.mozilla.org/addons/2020/09/29/expanded-extensio...
And it doesn't tie your browsing history to your account with an advertising company.
Now Chrome has become dominant. I don’t know all the reasons, though I’m sure marketing is a big one. Firefox can’t compete with Google’s marketing budget, and as a user and a web dev, I haven’t found any other compelling reasons to make FF my primary browser. Their dev tools weren’t as nice as Chrome’s the last time I checked, and it seems like common (for tech folks) Chrome plugins make up the privacy differences.
We do need a healthy multi-browser ecosystem in order to prune web tech to follow a user-centric direction. I want FF to convert me. I just haven’t seen the substantial arguments yet.
It’s kind of telling that Microsoft didn’t either, so they switched Edge over to Chromium, a tool from one of their main competitors. It’s possible that this puts FF into the same position of being “the outsider” that it was in before. I hope that stress makes them do something radical to sway more users. If they do, it will likely be related to browsing privacy (especially if it’s a default) and will upset the status quo again.
That at least explains how Chrome gained dominance. Sites that don't fully support Firefox + the "outsider" effect you identified are contributing to FF's continued decline. Safari will probably keep going for years and years solely because of users who don't care or know how to change their default browser (and some people do actually like it more than other browsers).
Firefox was stable with a lot more tabs open than Chrome, because it didn't have a thread per tab. Chasing Chrome brought down the number of tabs you could comfortably have open in Firefox.
Firefox as a project seems directionless. New releases anger its users with unwanted feature. Its custodians wasted so much energy on silly projects that people are reluctant to donate.
Oh and of course the competition comes pre-installed on millions of devices. Operating systems even remind you when you're not using their bundled browser.
At this point it's only idealism that keeps me there. Tiny things just don't work well. And it is so endlessly frustrating.
- I want the bookmark bar only to be shown in the new page tab. This does exist, but accidentally hitting _cmd+b_ resets it.
- The new-tab page is awful. It's trying to be clever when it really shouldn't be. So I have it all switched off.
- The container idea is nice, but so damn unusable in practice.
- I use Kagi as my search engine, but can't set the tokenised search URL so it works in private mode.
- The Settings are just so clunky. I wince every time I change something.
- When typing something in the omnibox, the suggestions are at the very bottom of the list. So far away, that I might as well not have them.
At least the dev tools are nice.
How can anything work reliably when software's lifetime is less than the time I can store meat in my freezer? Future shock has hit the software world hard and nowhere harder than on the web. I can understand the financial motivations for for-profit businesses and why they behave this way. And I know that's not going to change.
But as people, as human people and not just an employee fufilling a corporate person's goals, we can write, support, and use software for far longer than 2 years and we should.
Any public service (aka government site) will have a huge amount of people on "outdated" software and hardware.
Also: how the f... did 2 years become "omg it's so old we're no longer supporting it"?
Any public service (at least in theory) must support browser versions significantly beyond the arbitrary 2-years-old mark.
I hate it.
On the contrary, seems like Safari (webkit, which Chrome used to be as well) is one of the few moats against total chrome, and one of the few to remain up to date across devices. For this you want regulators involved?
I'm not really a frontend guy so hopefully next time I need to make a website the standards will have advanced even further.
In the article they associate that with React's internals, but I wonder if also their philosophy to leverage the developer to trigger reactivity makes it easy to generate inefficient code, and in that case it may be that Vue's reactivity model has it's perks after all.
So it might be selection bias: sites with logic requirements, app like, tend to use React, when simplest static websites don't have any reason to.
> not sure I've ever met anyone that uses Safari on desktop
Odd conversation starter, I certainly haven't polled most of my acquaintances. The ones who have nerd-ish leanings overwhelmingly use it, though, as Chrome is a crapfire for laptop batteries and privacy.
If you for example compare a few very minimal mostly static site vs let's say data dashboards your comparison stops to make sense.
Also consider the people who use the frameworks; some of the frameworks are quite new, you can expect a higher percentage of "early adopters" which are likely to be more experienced and write more performant code in general.
It reminds me a bit of Wordpress. Can be very quick, but most sites were/are just 100 plugins bundled together into a slow mess. Its popularity and ease of use messing with its "score".
Anyway, it's definitely interesting to see such numbers, but I won't be using them to make decisions or draw conclusions.
- It must be readable on the shittiest monitor money can buy
- It must be readable at night without straining the eyes
- It must be understandable by non-native English speakers
- It must load quickly even in the Berlin U-Bahn (underground train)
- It must work fine with the strictest ad blockers
- It must work fine with JavaScript turned off
- It must be respectful of people's data plans
- It must work in Reader Mode, in Pocket, or as a printed document
- It must work in any reasonably modern web browser
Web developers tend to forget that many people access the web from places with poor reception, on cheap devices, with poor eyesight, and with ad blockers.
However my website is just text on a page and I see no reason for it to break when JS is turned off. Only the calculators and other widget will stop working.
Without technical measures, the web is just painful. Sites take long to load, they jump around, obscure the viewport with all kinds of sticky content, show maliciously compliant cookie screens, interrupt reading with delayed newsletter popups - there's just no end to it.
On the desktop there are extensions to get an acceptable experience but not on iOS. Disabling JS may be radical but it yields a butter smooth, battery efficient, mostly crap-free experience. For problematic sites there's the back button or a back up browser with JS enabled.
And this happens orders of magnitude more often than people consciously turning of JS
Web developers don't forget about those people - it is businesses that forget about those people.
Those people are a niche and probably a niche that is not profitable catering to.
So they are excluded from the internet by a lot of companies. If there would be enough money to be made, a lot of web applications would have at lest 50% of those requirements implemented already.
I see those things as part of the craft.
JavaScript is not really a factor in anything, it is just how it is used by people that is the factor.
* Sunset on Nov 2018.
* Support and compatibility from other MS products for IE terminated in Nov 2020.
* Security support terminated 15 June 2022.
Also: ending IE support doesn't mean people magically just stop using it.
People don't care about some technical company doing something. https://news.ycombinator.com/item?id=30112310
Close to half of Android users run on Android versions first released more than three years ago. Just because Google waves and magic wand and says "version X is unsupported" does not make them vanish from the face of the earth.
Caniuse shows IE 11 at 0.66% global use. It means there are ~30-35 million users still using IE11. Depending on what service you run and who your target audience is, these users can make up a significant chunk of your user base.
Windows 7 EoL was in 2020. As any smug know-it-all commenter on Hacker News knows, this means that it's now gone, never to be seen again. As reality shows, it still holds a 13% market share.
And so on. Examples are too numerous to list.
Do you have to support all these systems? It depends. It doesn't depend, however, on the arbitrary "two years is more than enough, drop support now".
Tim Cook: Apple doesn’t have a ‘dominant market share’ in any of its market.
https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
How many years does Firefox have left?
Hmmm...going to need a citation on that one. The most severe energy and performance hog I have seen are the tracking "pixels." I loath that shit. It brings a site to it's gnees and barfs out twenty requests to Facebook every time someone touches something. These tracking services and cookies are the worst abomination literally ruining the web.
> It brings a site to it's gnees and barfs out twenty requests to Facebook every time someone touches something
Does not compute