This made the web worse. Now we understand that it is better for browsers to compete rather than monopolize the web. In this article, we want to discuss browser wars and Chromium's victory.
How did Internet browsers appear?
Timothy Berners-Lee created the very first browser in 1990. He is also considered the creator of fundamental technologies such as HTML, HTTP, URI, and URL. He could be called the father of the World Wide Web. But back to the browser named WorldWideWeb. A familiar name, isn't it? It was later renamed Nexus. It used the standard FTP and then HTTP protocol and could display mostly text pages, with a few pictures (in a separate window, of course). But honestly, the first graphical browser was the NCSA Mosaic.
It was almost perfect for its time: intuitive interface, free distribution, pictures in text (wow!), Windows versions, easy installation, reliability, and support for several internet protocols. Thanks to open source, other browsers could emulate the success of NCSA Mosaic and develop their own browsers, the largest of which were Netscape Navigator and Internet Explorer.
The first browser war (1995-1999)
Some NCSA Mosaic developers decided to leave the company and start their own to create a new browser, Netscape Navigator. The first versions began to be released in 1994-1995. At that time, the browser had the most extensive features, which attracted users' attention. In its second version, Netscape Navigator could be used for e-mail, then came the HTML editor, new functions, applets, plug-ins, and color solutions for tables. The browser was turning into a full-fledged program for working on the Internet.
Netscape Navigator dominated the world by 1995, but competitors were getting active, the main one being Microsoft's Internet Explorer (IE).
Microsoft acquired a license from Mosaic and created the first version of Internet Explorer based on it. An important difference from Netscape was that IE was distributed with Windows packages, which made it easier to use the browser. This made it unnecessary for users to look for alternatives since IE was almost as good as Netscape in function and speed. The turning point was also when Internet Explorer introduced CSS support, markedly increasing the variety of websites.
The browser war was fought at the development level. The speed of updates was FTL. This conflict can be called a kind of arms race. Each browser supported a different version of HTTP, and different programming languages, such as JavaScript. All this resulted in the fact that websites could only display adequately in a particular browser. By 1997, Netscape had 72% of the market share. The team was not particularly worried about their position, but to their regret, they underestimated the competitors and their capabilities. By 1999, thanks to free distribution and the pre-installed IE browser in the operating system, Microsoft took over 95% of the entire market. The small company Netscape Communications has not recovered from this blow.
Opera and its innovations
In 2001, IE was firmly entrenched in the corporate environment and was used everywhere because there was no other alternative. That was what killed IE later on. Due to a lack of solid competition, it quickly became obsolete, and Microsoft did not develop the IE browser further. Problems surfaced that previously seemed insignificant. For example, web developers realized that IE standards were highly inconvenient and the browser had few features.
The Opera browser was one of the sources of future change. Created back in the 90s, it won a small market share, being outside the browser war. Opera achieved recognition in developing countries, such as Ukraine. In the first half of the 2000s, Opera introduced tabs, an ad blocker, a download manager, and a search box (wow!). Later, these features migrated to other browsers. And Microsoft was still doing nothing instead of developing new features or implementing existing ones.
The second browser war (2005-2012)
Netscape managed to hit Microsoft before its defeat by releasing its source code online. It seemed like no big deal. But this decision allowed the development of a new browser, which would set a record for the number of downloads per day in a couple of years - more than 8 million. It was the Mozilla Firefox browser.
Firefox quickly gained users due to its convenience and wide functionality, unlike the outdated and slow IE. The browser added many innovations, such as opening recently closed tabs, session recovery, phishing filters, and built-in support for audio and video. Microsoft woke up and rolled out new versions with features taken from competitors, but it was too late - people were increasingly using other browsers. In addition, some companies began to develop and support their products. For example, Apple created Safari. Because of this, Microsoft stopped supporting MacOS versions of IE.
The emergence of mobile browsers for smartphones had a strong impact. It opened up a new market for competition, where companies entered and tried to occupy a niche. In this case, those who installed their default browser on the smartphone began to win, as Microsoft did with Windows and Internet Explorer. Thus, the popularity of iPhones led to a rapid increase in the use of Safari. Android, in turn, installed Google Chrome.
In late 2008, Google Chrome appeared with an improved JavaScript engine and used WebKit (later switched to Blink). Since Google's search engine was the most popular in the world, it had the opportunity to promote its browser through major websites. Thus, Chrome quickly gained users, and competitors could not compete with such a large corporation. Initially, they wanted to release it only for Windows, but then they developed versions for MacOS and Linux.
In 2009-2010, Firefox overtook IE and became the most popular browser. But since 2012, it has been overtaken by Google Chrome (more than 60% market share), which still holds the leading position.
What is a browser engine?
A browser engine is software inside the browser that takes the JS code, web page's styles, HTML files, XML files, images, etc, and converts them to an image on the screen. It parses HTML, CSS, and JavaScript to handle the structure and rendering of web pages. This background is useful when comparing Deno vs Bun vs Node.js, as they each offer innovative approaches to JavaScript execution and web application management. If you want to learn more about Node application development, check out our comprehensive guide.
Before browser developers started using web standards, there was a decade-long period of Microsoft's IE browser dominance. IE used Microsoft's proprietary browser engine called Trident. Because of its speed of distribution Trident for many years became the most widely used browser engine.
Mozilla Firefox used an engine called Gecko. Opera used the browser engine Presto. A small community liked Konqueror with its KHTML engine, but it had a tiny share of the browser market.
The source code for all of these browser engines, except for Presto and Trident, was open source, meaning that it was available to anyone and could be used in any project. This encouraged teamwork and healthy competition among these new browsers, favoring the process of creating Web standards under the W3C.
It was originally assumed that Apple would choose Mozilla Gecko as its browser engine. It already had the right people and experience with it. Some thought that Apple might choose Presto by entering into a licensing agreement.
But everyone was surprised that Safari would use the engine from Konqueror. Not Gecko, not Presto. KHTML. The news was loud, and in the next two decades, it changed the trends of web development.
Safari and KHTML browser engine
The Konqueror browser was one of the many applications that were part of the KDE (Kool Desktop Environment) for Linux computers. It was not an operating system but a software package that looked and behaved like an OS. Like Linux itself, all of KDE is open source, including its browser, and the development community has adhered to the principles of open-source software since its founding.
The Safari development team promised to make changes to the KHTML project whenever possible. In adapting the engine, Apple broke it into two parts: WebCore (dealing with rendering and structure) and JavaScriptCore (dealing with JavaScript). Both of these parts became open-source projects, but Safari's bug-tracking system and elements of the browser engine remained closed. Still, this level of transparency was surprising for a company well-known for guarding its secrets.
Despite the promise to the open-source community, Safari developers found it difficult to port their changes back to the KTHML project. Some of the code was specific to the Mac operating system. Other parts were simply incompatible with the existing code base. This led to a confrontation between the Apple team and the KHTML contributors.
Eventually, a satisfactory compromise was found. In June 2005, Apple combined JavaScriptCore, Webcore, and other browser engine components into a single open-source project with a public bug tracker. The project was called Webkit.
If you’re interested in exploring more, check out these cool open-source JavaScript projects that showcase the versatility and power of JavaScript today.
Webkit fork by Google: Blink
In 2013, Google announced its fork of the WebKit engine and its use in Chrome and Chromium browsers. Blink is based on the multiprocess architecture originally used in Chrome/Chromium projects. It differs significantly from the main WebKit parallelization architecture.
The main reason for creation was the increased laboriousness of maintaining separate multiprocess parallel development. WebKit2 provides a special framework for separating content processing and interface formation processes. In contrast, Chrome's process separation mechanism was based on using WebKit WebCore as one of the multiprocess modules interacting with other modules via a separate resource manager. There was a steady increase in WebKit and Chrome code complexity, which has slowed down Chrome development because of the need for constant code porting.
In the Chrome browser introduced in 2008, Google used the WebKit WebCore subsystem to render HTML and CSS but used its V8 engine instead of the WebKit JavaScript engine. Google originally developed a WebKit fork in Chrome because it uses a separate branch of WebKit in its browser. Google directly makes changes to it, porting third-party changes from WebKit, then returning its improvements to upstream. For optimizing JavaScript performance and integrating advanced features, you can hire JavaScript engineers who are skilled in working with cutting-edge browser technologies.
WebKit2 had many new features and functions that Google doesn't intend to use but must be considered when porting. As a result, the resources spent on porting have become unacceptably large. The creation of Blink removed Google's obligation to bring back changes to WebKit.
Opera, which was in the process of migrating to WebKit from its own Presto engine, announced its intention to switch to the Blink engine. Thus, the community formed around WebKit split into two camps, representing the technology and interests of Google Chrome and Apple Safari.
Creating a new browser engine has not negatively affected the ecosystem and only healed it because competition inspired innovation.
We also recommend you to read an article about 5 FinTech trends for 2023.
Chromium news: introducing Rust
All the libraries for the Chromium engine are written in C++. It is a powerful language but rather old and not very safe. For example, the programmer has to handle memory manually in C++ - arrange pointers, clean up the program from trash, and watch for leaks. Because of this, the human factor effect increases, and programs lose reliability.
According to statistics, 70% of critical errors in Chromium-based browsers are caused by manual memory management. One of the popular problems is the dangling pointers that appear when a variable refers to an object that does not exist.
To solve this issue, Google has added the Rust programming language to the Chromium ecosystem. Rust was developed for Mozilla Firefox, and it was originally designed to work with browsers. It is as powerful as C++ but safer: all the work with memory is performed by special rules. If any of these rules are broken, the compiler will refuse to build the program, meaning that the developer will know about it immediately and can fix it quickly.
Conclusion
In 2023, few people will notice the difference between Chrome, Edge, Safari, and Opera. They are all great browsers with smart engines. The market has matured and stabilized. New features are rare, but users are happy regardless of their choices.
The same cannot be said about Firefox. It has been living with the same engine for more than 10 years and is considered outdated compared to other browsers. This browser lives solely thanks to Google, which pays to be the main search engine in this browser. Google's sponsorship accounts for more than 60% of Firefox's entire budget.
As with other products, the diminishing differences between browsers were inevitable. An app can only survive when it appeals to the masses, so the most successful features are duplicated while the least used are discarded. The result after 20 years of different browsers development is excellent: good cross-browser compatibility.
MaybeWorks is an IT staff augmentation provider partnering with clients since 2012. Our NodeJS/Angular/React developers have knowledge of AWS/Google Services and Database Management. We specialize in web development and know the peculiarities of popular browsers, following all the new features and trends. Stay tuned for more news!