📜 ⬆️ ⬇️

Potential problems with WebKit monoculture

A few days ago, it became known that Opera is switching to the WebKit browser engine , which already has dozens of other browsers running: Chrome, Safari, browsers of almost all mobile systems: iOS, Android, Amazon Kindle, BlackBerry 10, Tizen, Symbian, PlayStation 3 and other

On desktops, WebKit's share is not so large (about 40%), but on the most promising mobile market, WebKit has almost a monopoly position.

This is quite a familiar situation for many who remember the state of affairs on the Web in 2001–2005, when more than 90% of browsers worked on one engine (Trident, MSIE). Fortunately, now the situation is not so dangerous: the new contender for monopoly is a free technology, which is developed under the Open Source license, but there are still specific risks.

“The WebKit project today has such support for standards that we could only dream of when we began work on our browser. And instead of spending all our energy on repeating what is already implemented in WebKit, we can focus on inventing something new to make a better browser. By sending patches directly to the WebKit project, we will be able to improve standards support not only in Opera, but also in many other browsers, ”wrote the company Opera in an official message.
')
In other words, Opera recognized WebKit as a kind of standard engine that runs on "many other browsers." Here we are talking no more, no less, about the birth of a browser-based monoculture. It has short-term benefits: this is a general saving of resources, because everyone is working on one project. It is easier to develop websites for a single platform, rather than a few, it’s easier to create interactive web applications. But there is a downside, because the web is a platform. The shortcomings of monoculture here are of long-term nature, says one of the Mozilla developers, Steve Fink.

Steve Fink proposes to submit for a second that all mobile systems have moved to the WebKit engine. Where it leads?

1. Backward compatibility of bugs. Bugs are everywhere. Imagine a bug in the rendering of SVG, because of which background images that are only a few pixels wide, for example, turn off image transparency. For the year of existence of such a bug, a whole bunch of sites will depend on it, that is, they create a design taking into account this bug. At some point, the bug was fixed. A new developer beta browser has been released. All these sites are crumbling in it. The patch is removed from the release, the processing of the bug is simply recorded in the browser logs. If the whole world is sitting on WebKit, then this situation suits everyone. The bug has now become part of the web platform.

2. Preventing innovation. Imagine that in five years a group of hackers will launch an innovative browser that evenly consumes the resources of all 100 cores of the standard processor in 2018, and does not completely otzhirya one core on each tab. The guys did a heroic job to support the features on 99% of all websites. Suddenly, this proportion drops to 98%, why? Because a new Webkit beta has just been released with a new feature, which many have immediately implemented in production. Soon the share drops to 90%: a fatal bug appeared in WebKit that accidentally breaks the distributed load model. 80%, it's done, hackers went to write a social network for pet birds.

3. Excessive control. Large companies have an overwhelming influence on browser design and can contribute. For example, they can embed DRM into HTML processing in the browser or block the creation of some innovative APIs that threaten their core business or their partners' business.

4. Complexity and unpredictability. Standardization committees die as unnecessary, and the development of new standards is dictated by market necessity. Website developers are left to wonder what standards will be supported and what new ones will appear, based on market conditions.

5. Confusion. Steve Fink gives an example from the current situation with some CSS features that do not understand how they work. Developers don't care about them, they are working on the next version of the CSS5 standard. The documentation has not been updated for several years. You can find hundreds of instructions and videos on the web explaining how to use these CSS features. As a result, the documentation remains for those who can not watch videos on Youtube.

As a result, Steve Fink writes, the web becomes much more functional than it was in 2013. New standards are being developed faster? instantly embedded in the browser and everywhere on all sites. All browsers immediately begin to support the feature that only yesterday Apple introduced in the new device. But in a monoculture without agreed standards, the support of any feature can disappear as quickly as it appeared. What can be quickly and conveniently implemented today may stop working tomorrow. In any case, the documentation does not describe the functions entirely and fully with the depth with which they can actually be used, and the implementation does not guarantee a match with the specifications. This is the world to which we aspire, isn't it?

Steve Fink writes that monoculture is not necessarily a bad thing, like choosing TCP or silicon for microcircuits. This may be a good thing, but only on the condition that it is stable and unchanged. Although, even in the same TCP find flaws. But in such a system as the web, which is rapidly developing, where new technologies and new uncovered niches are constantly emerging, it is necessary that there are several unrelated agents who coordinate their actions. It is enough to study what competition is and why it is needed in economics.

Source: https://habr.com/ru/post/169697/


All Articles