We have to thank KDE for the modern web.
I have always liked History. The story makes it clear the motivation and causes of the events that happened, it rips off the veils, exposing accidental successes and planned failures. Today I will try to trace one branch of the evolution of browser engines and show how great the connection in the world of open technologies is.
NOTE: Links in the text to information about the names and abbreviations used in the article lead mainly to the Russian-language pages of the site Wikipedia, and not the original sites of the projects, so that it would be easier for a Russian-speaking reader to understand the context if the given naming is unfamiliar to him. Below are links to original resources.
From CDE to KDE
Linux appeared in the right place at the right time, while the project participants GNU tried to design an ideal kernel for their operating system, a simple Finnish student did the best he could, and, without expecting it, dragged the blanket over himself.
Then there were XFree86 and twm, and essentially everything. CDE (for commercial Unix) appeared only in 1993. In the free world GNU / Linux window managers ruled the show, and everyone assembled the work environment for themselves piece by piece. The advent of the closed Common Desktop Environment haunted enthusiasts, and in 1996, Matthias Ettrich founds the project KDE… The history and goals of the project itself, as well as its impact on the emergence GNOME – a topic for a separate article. We are also interested in the appearance in KDE in the same 1996 of a combine called Konqueror, which was used not only as a browser on the engine khtmlw, but also as a file manager (those who used KDE before Dolphin remember this pain). Why couldn’t you just take Geckoinstead of reinventing the wheel? The answer is simple – development of Gecko only began in 1997.
KHTML / KJS
Safari and WebKit
From letters from Don Melton dated January 7, 2003sent to Dirk Müller.
I am the technical manager of Safari, Apple Computer’s new web browser based on KHTML and KJS. I am sending you this email to thank you for creating such a wonderful open source project and to introduce myself and my development team. I also want to explain why and how we used your excellent technology. It is important that you know that we are committed to open source and are making our changes now and in the future, back to you, the original developers. Hopefully this will start a dialogue between us for the benefit of both of our projects.
In the letter, Don talks about what is over Safari people who took part in the creation of the project worked Mozilla and browser Chimera (he is Camino). The choice fell on KHTML and KJS, including due to the fact that in total these two projects, which have a clear architecture, contained less than 140,000 lines of code. Don briefly describes the changes: bug fixes, a number of improvements and optimizations, as well as the creation of a compatibility layer KWQ (read as “quark”) that served to make KHTML work outside of the Qt and KDE libraries.
Unfortunately, there was no reverse merge with KHTML / KJS. Such attempts were initially made on both sides, but they failed. Politics is to blame Applethat was not interested in supporting the community. The WebKit code was significantly different from KHTML / KJS, the styles were changed according to the internal requirements for the design of the company code, which eliminated the possibility of automatic merging of changes. Also, Apple’s management pressured Safari developers to prepare new features for the next release, and did not allocate time to work with the KDE team. Nevertheless, some of the changes still ended up in KHTML, and the Safari developers out of duty contributed to the development of the parent project.
WebKit-based browser by Google
By 2013, according to Google representatives, the number of patches that they had to apply to WebCore to maintain compatibility with the current version of V8 exceeded critical mass, and it was decided to make an official fork, which received the name Blink in honor of the tag
blinkto create a shimmery effect on the text. However, there is an alternative opinion on the network, they say, Google wished to break away from the competitor in the person of Apple, depriving them of their new developments. One way or another, the true reasons are likely to forever remain behind the closed doors of the alphabet offices.
Fun fact: tag support
blink was abolished by all the browsers that were relevant at that time just in 2013, and Blink itself never supported this tag at all.
As of today, the development of KHTML has stopped, the repository contains only commits that implement support for modern versions of KDE Frameworks. The latest code improvement activity in the KJS repository dates back to June 2020. The current version of Konqueror supports this engine, but uses WebKit by default. Safari maintains its niche on Apple devices. Google Chrome has almost completely taken over the desktop and mobile (Android) browser market and is already starting to take advantage of its monopoly position. Companies such as Microsoft and Opera abandoned the development of their engines in favor of Chromium. Mozilla Firefox lost a significant part of the market and continues to fall. Despite the deplorable state of development of the KDE project’s own browser engine, he was able to prove that a small team of enthusiastic enthusiasts can create a solution that can become the starting point for a global change in a world that today can no longer imagine life without web technologies. Someone might argue that Apple engineers, if KHTML / KJS were not available, could have taken something else or write from scratch, and they will be right, but history does not tolerate the subjunctive mood.