The developer appreciated the complexity of modern browsers

Well-known Linux developer, co-author of Wayland graphics protocol, Sway user environment and Aerc email client, Drew DeVault analyzed the W3C specifications that modern browsers must comply with.

He downloaded 1217 specifications with the help wgetand beat up the statistics with the utility wc -w(number of words). It turned out that the entire current catalog of W3C specifications is 114 million words . For comparison, the scope of the C11 specification is 208,220 words, and the length of the novel War and Peace is 188,088 words.

Drew DeVolt concludes that today it is no longer possible to develop a new browser from scratch, since it is impossible to implement support for web standards in such numbers.

To compare the verbosity of the W3C specifications, the developer cites the size of other specifications and texts :

  • All IETF RFCs (text format), 8,754 units: 57,716,641 words
  • POSIX (HTML format): 2 017 056
  • USB 3.2 (PDF): 872 395
  • UEFI (PDF): 659,580
  • C ++ 17 (PDF, last open draft): 576 344
  • C11 (PDF, last opened draft): 208,220
  • Intel x86 ISA (PDF): 2,312,414

Even if you add all this together with a list of the longest literary novels in the world , the W3C specifications will still be more than 12 million words.

Drew DeWolt suggests the reason why we got to this state: “Since the first browser war between Netscape and Internet Explorer, web browsers have used their functions as the main means of competition with each other. This strategy of unlimited scope and perpetual creep of functions is reckless, and it has been allowed to go on for too long, ”he writes. - The complexity of the web is simply indecent. Creating a new web browser is comparable in its efforts to the Apollo program or the Manhattan project. ”

That is, it’s not that it is impossible to implement safe or correct support for the web, it cannot be implementedin general .

Creating your own browser engine to compete with Google or Mozilla today is a completely stupid undertaking. The latest serious attempt to make a new browser, Servo, was “partly an incubator for refactoring Firefox code, partly a sandbox for bored Mozilla engineers to tinker with useless technology” (WebVR).

“The implications of this are obvious. Browsers are the most expensive software that runs on regular computers. They are notorious for using all of your RAM, grabbing the processor line and I / O, draining the battery, and so on. Browsers account for more than 8,000 known vulnerabilities, ”writes Drew DeVolt. CVE statistics are available from the official website cve.mitre.orgfor search queries “firefox”, “chrome”, “safari” and “internet explorer”, in total.

Creating a competitive alternative has become an insurmountable challenge. Because of this, browser developers have felt impunity. Browsers stop working as “user agents”, and instead start working as agents of their creators: “Firefox is filled with advertising, tracking and required plugins. Chrome is used by Google as a tool to effectively track your open page history and promote harmful technologies such as DRM and AMP into the ecosystem. The duopoly of browsers is also only getting stronger as Microsoft loses Edge and WebKit lags far behind its competitors. ”

Of course, browser engines are open source. Unfortunately, even making a workable fork is an almost impossible task. The fact is that the number of W3C specifications is growing by an average of 200 new specifications per year. These are about four million new words. Roughly speaking, about one POSIX every 4-6 months. “How is it possible for a new team to keep up with this on top of that outrageous volume that is already there? - asks DeVolt. - Browser wars have been allowed to go on for too long. They should have focused on competition for a long time in terms of performance and stability, rather than new "features." This is absolutely ridiculous, and it must stop. ”




All Articles