Why a clean start for the web wont solve the problem
After reading Tom MacWright's article on "A clean start for the web", I was compelled by writing a critique of his plan, despite feeling the same about the current terrible state of the web.
Tom's initial argument is driven by the recent Mozilla layoff, highlighting that this leaves a monoculture of blink and webkit browsers which are developed by major corporations.
The author suggests that the web is separated into two categories - the Document Web and the Application Web. The result of catering and using tools meant for building application websites for document websites is causing a whole range of issues such as bloat and accessibility problems.
As such, the solution is to split into two different webs. The document web would run off of a standardized markup language like markdown and the application web might run off of WebAssembly.
The document and app dichotomy
Tom's suggestion to split into a document web and an application web suggest that the two are equal or at least comparable. The fact is the majority of the web is heavily "app-like", with 80% of all internet traffic being spent on videos, gaming, and social categories.
As such, even if a successful Document Web solution exists, users would spend most of their time on the Application Web. The stronger network effects and more powerful capabilities of the Application Web would likely lure publishers to place their content there too.
The Gopher protocol which was released in mid-1991 achieves many of the author's Document Web requirements. It has a simple syntax, allows for search and linking. Although there are many reasons and nuances to why it failed to compete with the World Wide Web, part of it can be attributed to its limited extensibility.
It is likely that another attempt of the Document Web would suffer a similar fate, especially since the bar for documents has only risen since then.
Why the web is slow
Technologically, a strict Document Web, as Robert O'Callahan, a former Mozilla distinguished engineer puts, is unlikely to beat a modern web browser in performance. If modern browsers are already so well optimized, why does the web still feel so slow?
Slow sites are a result of economic incentives being misaligned as no one build sites to be intentionally slow. As the majority of internet traffic is going to behemoths due to network effects, the other websites have to compete fiercely for the scraps.
Since website maintenance is not free and charging money on the web is quite a hassle, the long tail of document sites start to show ads in order to be sustainable. This results in heavy JavaScript bundles to either add advertising, track users or engage the user to increase sales.
On the app side, since heavy JavaScript bundles only impact the first load, it isn't the most important metric to optimize for compared to adding more things to the app's feature set. Application developers instead would spend more time optimizing for runtime performance, which is much harder to do correctly. On this end, I foresee Webassembly playing a bigger role in the future.
Looking past the web
Tom's arguments also question why browsers are getting so complex. The reason why there are so many new web standards is that the web isn't only competing with itself, it is competing with mobile apps. And the mobile apps are winning.
The majority of internet traffic now comes from mobile devices, and only 10-17% are browsing the web on these devices. https://www.emarketer.com/content/us-time-spent-with-mobile-2019 https://cdn2.hubspot.net/hubfs/5762657/Web V App 2019_White Paper_07.19_Draft6.pdf
Steve Jobs' initial vision for the iPhone was to only run web apps. Unfortunately, the web's performance and limited capabilities then had to give way to native mobile apps.
This performance gap still exists because most phones on the market still have low single-core clock speeds. As a result, Android and iOS feels more fluid as they perform UI work in a delegated thread, whereas most web apps do everything in the main thread.
Furthermore, since mobile apps have capabilities like native notifications, the engagement and value per user are higher, causing many companies to push web users to use their mobile apps instead.
Without similar capabilities, mobile web usage would continue to decline. A stagnating web standard would not benefit the web as it would allow the next platform to overtake the web's position as the dominant platform. This is why browser vendors are constantly pushed to implement new features.
In essence, the browser is as complicated as an operating system because it is competing with operating systems.
Browser monoculture and open source sustainability
Let's route back to the main issue - browser monoculture, which isn't specific only to the web. This has always been an issue with platforms in general.
On the desktop side, the market is mostly dominated by Windows and MacOS.
On the mobile side, we have Android and iOS.
On the browser side, we now have Chromium and WebKit browsers.
The dominance of FAANG and Microsoft means that these companies are able to provide platforms for free and govern the rules on them. I suspect this is why many feel that the mono-culture around browsers is dangerous, and why they choose to side with open source. Unfortunately, open-source platforms have always suffered from a lack of funds to sustain engineering. This is even harder because they are competing with free products. Mozilla is actually been remarkably resilient for surviving and competing with tech giants for so long. An open-sourced clean start would face the exact same problems and have less of a consumer base to work off of.
So Mozilla's plan to focus on profitability makes a lot of sense. Only by first tackling the monetization issue will they remain around to help build a healthier internet. They have a huge challenge in front of them, but I wish them luck.