O mecanismo que poderia: como o Chromium conseguiu capturar 90% do mercado de navegadores



Do motor do navegador, que inicialmente era uma alternativa pouco conhecida, usada em um navegador impopular, ao campeão que conquistou todo o mercado.



Você provavelmente às vezes se depara com o conceito de diversidade de navegador em textos.... Refere-se ao equilíbrio da plataforma web em que existem muitas implementações de navegadores no mundo, suficientes para estimular a inovação e a competição entre eles. A alternativa é a monocultura de navegador, na qual um navegador ou implementação de navegador controla todo o mercado e, portanto, impulsiona o desenvolvimento da web. Quando alguém promove a diversidade do navegador, geralmente o faz em prol de um processo de criação de padrões web independentes mantidos pelo W3C, que só funciona quando nenhum navegador pode ditar os recursos incluídos na plataforma web.



A comunidade da web tem motivos suficientes para temer a falta de diversidade de navegadores. Depois que o Internet Explorer conquistou 90% do mercado de navegadores no início dos anos 2000, seus desenvolvedores levaram meia década para lançar um novo navegador. Nesse período, o desenvolvimento da web parou e começaram a surgir problemas de segurança. Isso piorou a web, então geralmente queremos que os navegadores concorram em vez de monopolizar a web.



Mas esse problema também tem uma desvantagem. Devido à existência de vários fabricantes de navegadores, os desenvolvedores da web precisam garantir que todas as plataformas sejam compatíveis. Pode haver pequenas inconsistências entre os navegadores, o que pode complicar o desenvolvimento para a web.



Este preocupado criador da web, Tim Berners-Lee. Mesmo no início dos anos 90, quando a web era muito jovem, dezenas de navegadores começaram a aparecer em todo o mundo à medida que os desenvolvedores de software faziam experiências. Berners-Lee temia que muitos navegadores tornassem mais difícil testar sites e chegar a um consenso sobre como analisar e entregar HTML aos usuários.



Em 1992, Tim Berners-Lee expressou sua preocupação na lista de mala direta de hipertexto.



8 12 , . (, , ! , , (, ), . , ; , , , .


Berners-Lee reconheceu que várias implementações podem exigir muito esforço por parte do desenvolvedor da web, portanto, os desenvolvedores podem ficar tentados a evitar esse problema totalmente e apenas testar no navegador mais popular (ele não tinha ideia de que um problema semelhante ocorreria com frequência na web). -desenvolvimento ). Ou seja, mesmo sem um monopólio, muitos navegadores podem inundar o mercado e criar um vencedor real contra o qual os padrões serão criados sem levar em consideração todos os outros. Garantir a consistência de todas as implementações de navegador foi a razão para a criação do W3C e a promoção de um conjunto de padrões comuns em tecnologias web.



A preocupação de Berners-Lee era bem fundada. Houve momentos em que os navegadores seguiram seu próprio caminho, forçando os designers da web a mexer nas páginas para que parecessem iguais em todos os lugares. Nos últimos anos, um processo de padronização bem estabelecido resolveu amplamente o problema de inconsistências entre os navegadores, criando um processo claro para adicionar novos recursos da web, garantindo o equilíbrio no processo de tomada de decisão.



A base fundamental para a criação de um grupo diversificado de navegadores é o desenvolvimento de mecanismos de navegador completamente diferentes. O mecanismo do navegador é o código dentro do navegador que pega o código que você escreve e o renderiza na página. Em um nível mais técnico, ele analisa HTML, CSS e JavaScript para lidar com a estrutura e renderização de páginas da web.... O mecanismo geralmente inclui um mecanismo JavaScript que controla a interatividade. Na maioria das vezes, ao discutir um mecanismo de navegador, eles falam sobre o mecanismo JavaScript associado, mas nem sempre é o caso.



Antes de os fabricantes de navegadores começarem a usar os padrões da web, durante a "guerra dos navegadores", houve uma década de domínio sobre o navegador Internet Explorer da Microsoft. O Internet Explorer usava um mecanismo de navegador proprietário da Microsoft chamado Trident. O Internet Explorer foi distribuído gratuitamente e instalado por padrão em todos os computadores Windows. Devido à sua velocidade de distribuição, o Trident se tornou o mecanismo de navegador mais usado por muitos anos.



No entanto, vários navegadores menores de código aberto logo começaram a ganhar popularidade. O mais popular deles era o Mozilla Firefox (baseado no Netscape), que usava um mecanismo chamado Gecko. O Opera ficou um pouco para trás com seu mecanismo de navegador Presto. Uma pequena comunidade se apaixonou pelo navegador KHTML do Konqueror, que tinha uma pequena fatia do mercado de navegadores.



O código-fonte de todos esses motores de navegador, com exceção do Presto, era open source, o que significava que estava disponível para qualquer pessoa e poderia ser usado em qualquer projeto. Isso estimulou a colaboração e a competição saudável entre esses novos navegadores, o que favoreceu o processo de padrões da web conduzido pelo W3C. E graças ao código aberto, um grande número de navegadores de nicho pequenos apareceu no mercado, construídos com base nos mesmos motores de navegador.



A ausência da Apple nesta lista é digna de nota. Em 2003, parecia que a empresa havia esquecido completamente a plataforma web. Ela tentou sem sucesso criar seu próprio navegador chamado Cyberdog. Sem um navegador nativo em seu sistema operacional, os computadores Apple vinham com o Internet Explorer, que os ligava a um de seus concorrentes mais sérios - a Microsoft.



Mas então começaram a circular rumores de que a Apple estava trabalhando em um novo navegador. Vários veteranos da Mozilla se juntaram à empresa, contribuindo em nome da Apple para a versão open source do Firefox para Mac. E após o primeiro experimento que falhou, as ferramentas e implementações são muito melhores. Já havia muitas soluções maduras de código aberto.



Inicialmente, presumia-se que a Apple escolheria o Mozilla Gecko como motor do navegador. Ela já tinha as pessoas e a experiência certas com ele, e o mecanismo foi usado na grande maioria dos projetos de navegadores, incluindo um navegador Mac chamado Camino, desenvolvido por uma equipe independente que não era da Apple. Alguns pensaram que a Apple poderia escolher o Presto por meio de algum tipo de contrato de licença.



Steve Jobs concluiu seu discurso na Macworld 2003 com um anúncio muito esperado: a Apple está criando seu próprio navegador chamado Safari. E para a surpresa de todos, ele usará o motor do Konqueror. Nem Gecko, nem Presto. KHTML. A notícia foi grande e, nas duas décadas seguintes, mudou a trajetória da web.





O navegador Konqueror em execução na área de trabalho KDE



O navegador Konqueror é um dos muitos aplicativos que fazem parte do ambiente de área de trabalho KDE para computadores Linux. Estritamente falando, não é um sistema operacional, mas um pacote de software que se parece e se comporta como um sistema operacional. A sigla originalmente significava Kool Desktop Environment, mas foi encurtado simplesmente para KDE. Konqueror é um dos programas do KDE. E KHTML é o motor no qual o Konqueror funciona. Como o próprio Linux, todo o KDE é open source, incluindo seu navegador, e a comunidade de desenvolvedores aderiu aos princípios do open source desde o seu início.



É por isso que é importante que o anúncio da Apple inclua este slide:





No anúncio da escolha do KHTML, a Apple declarou seu compromisso com as idéias de código aberto. A equipe de desenvolvimento do Safari se comprometeu a fazer as alterações feitas no projeto KHTML sempre que possível. Ao adaptar o motor, a Apple o dividiu em duas partes: WebCore, que lida com renderização e estrutura, e JavaScriptCore, que lida com JavaScript. Ambas as partes se tornaram projetos de código aberto, mas o bug tracker do Safari e os elementos do mecanismo do navegador permaneceram fechados. No entanto, esse nível de transparência foi surpreendente para uma empresa conhecida por guardar seus segredos.



A primeira versão pública do Safari foi lançada ao mesmo tempo que o anúncio, em janeiro de 2003. Pouco tempo depois, o Safari começou a ser comercializado como o navegador padrão para todos os Macs. Por um a dois anos, o Safari ocupou consistentemente dois a três por cento do mercado de navegadores. Não foi o suficiente para dominar, mas deu peso à equipe de desenvolvimento da Apple.



Apesar da promessa feita à comunidade de código aberto, os desenvolvedores do Safari inicialmente acharam difícil transportar suas alterações de volta para o projeto KTHML. Parte do código era específico para o sistema operacional Mac. Outras partes eram simplesmente incompatíveis com a base de código existente. Isso levou a um pequeno desentendimento entre a equipe da Apple e os co-autores do KHTML que durou alguns anos.



Com o tempo, foi encontrado um compromisso que agradou a todos. Em junho de 2005, a Apple fundiu JavaScriptCore, Webcore e o resto do motor do navegador, lançando-os como um único projeto de código aberto com um rastreador de bug público e uma chamada para contribuir. Dessa forma, a empresa mostrou à comunidade KHTML que estava pronta para colaborar enquanto mantinha a independência do código.



O projeto foi denominado Webkit.



O momento era crítico. A web como plataforma desenvolveu-se rapidamente e estava no estágio da Web 2.0. De modo geral, Web 2.0 era apenas um bom termo de marketing, uma tentativa de nomear o número crescente de aplicativos sofisticados que existem exclusivamente na web. Inclui os primeiros dois aplicativos da web do Google - Google Maps e Gmail. O Google adicionou o YouTube à lista em um ano.



Em meados dos anos 2000, os engenheiros do Google examinaram mais de perto os navegadores e descobriram que eles não conseguiam atender à necessidade de criar aplicativos complexos. Isso foi especialmente verdadeiro para navegadores mais antigos e autônomos como o Internet Explorer (a propósito, o YouTube também ajudou a encorajar os usuários a abandonar o IE6 ). Mas a principal prioridade do Google era a velocidade. Os co-fundadores da empresa certa vez expressaram seu desejo de criar "a web tão rápido quanto folhear uma revista de papel". Esse era o objetivo da empresa, e o Google sentiu que mesmo os navegadores modernos como Firefox e Safari não estavam chegando perto o suficiente.



Em 2006, a empresa começou a fazer planos para construir seu próprio navegador. Ela queria o navegador mais rápido do mercado. Depois de experimentar uma variedade de mecanismos de navegador, os desenvolvedores do Google voltaram sua atenção para o projeto Webkit, que mudou para o código aberto. Seu código era compacto e legível, e sua intensidade de recursos permanecia relativamente baixa em comparação com engines com uma rica história como Gecko ou Trident (o último não foi considerado de qualquer maneira devido ao seu código-fonte fechado). Mas o mais importante, ele era rápido. Como ponto de partida, era mais rápido do que todos os outros motores.



Se a equipe do Safari não tivesse decidido abrir o código-fonte de seu mecanismo de navegador neste momento, a história poderia ter tomado uma direção completamente diferente. Mas os desenvolvedores fizeram isso, então o Google estudou essa possibilidade e decidiu usar o mecanismo. Nos anos seguintes, ela começou a trabalhar em uma implementação nova e ainda mais rápida do Webkit.



Sua primeira etapa foi livrar-se do JavaScriptCore e substituí-lo por um mecanismo JavaScript personalizado chamado V8, em homenagem ao poderoso mecanismo de pistão. Como o nome sugere, o V8 era rápido. Na época do lançamento, revelou-se dez vezes mais desempenho do que JavaScriptCore. Ele alcançou essa velocidade trabalhando em uma máquina virtual e uma maneira ligeiramente diferente de executar o código, tornando-o modular e independente do resto do mecanismo do navegador. Aliás, depois de alguns anos, essa modularidade tornou possível a criação da linguagem de programação Node: seus desenvolvedores pegaram o motor V8, livraram-se do navegador e o colocaram no servidor.



A segunda coisa que o Google fez foi adicionar arquitetura multiprocessos ao seu navegador. Há muito a ser dito sobre multiprocessamento, mas é melhor explicado usando as guias do navegador como exemplo. Anteriormente, quando uma guia travava, todo o navegador travava. No entanto, o Google conseguiu forçar os processos em cada guia a serem executados de forma independente, de forma que apenas uma guia travasse por vez. Após o lançamento do navegador, este se tornou seu principal atrativo. Também acabou sendo uma decisão importante porque foi um grande desvio da maneira como o Webkit costumava funcionar. Em breve, essa decisão vai sair pela culatra para a empresa.



Em setembro de 2008, o Google anunciou oficialmente seu projeto de navegador ao público. A empresa combinou o anúncio com o webcomic Nerd de Scott McCloud, que detalhou todos os detalhes técnicos do projeto. O navegador processava sites da forma mais rápida do mercado e, graças à sua arquitetura de multiprocessamento, era capaz de manter as páginas ativas mesmo quando outro site estava congelado. Isso foi na época em que os navegadores ainda estavam sobrecarregados com barras de ferramentas e complementos, bem como pacotes de grandes empresas que incluíam correio. O nome que o Google deu a este projeto também está de acordo com o conceito. No mundo dos navegadores, o termo "cromo" (cromo) significa tudo o que envolve uma página da web - a barra de endereço, as barras de ferramentas e os menus de arquivo. O Google se livrou da maior parte desse lixo, e é por isso que chamou o navegador de Google Chrome, na esperança de que o foco na simplicidade e no desempenho valha a pena.





O fragmento de quadrinhos da web que deu início a tudo



Além do algoritmo de busca fechada, o Google contribuiu para projetos de código aberto e criou novos por muitos anos. Tendo entendido a lição da Apple, a empresa foi ainda mais longe no desenvolvimento do Chrome. No mesmo dia em que o Google Chrome foi anunciado, a empresa disponibilizou todo o mecanismo como um projeto de código aberto chamado Chromium. Essas não são apenas algumas extensões do Webkit. Não é apenas um mecanismo de renderização. Tudo se abriu: Webkit, o motor V8 JavaScript e todo o código do próprio navegador. Com pouco esforço, qualquer desenvolvedor pode complementar o Chromium e lançar seu próprio navegador. Após seu lançamento, isso aconteceu com muitos navegadores .



2008 foi um grande ano para a web. No mesmo mês em que o Chrome foi lançado, o Google mostrou um protótipo de sua plataforma operacional móvel Android, montada a partir de vários projetos de código aberto. Ele também incluiu a versão móvel do Google Chrome. Isso aconteceu pouco mais de um ano após o lançamento oficial do iPhone, que veio com uma versão modificada do Safari. No momento em que Steve Jobs começou a eliminar o Flash de forma irrevogável e a tornar a plataforma nativa da web uma prioridade, esses dispositivos já estavam em toda parte.



Ou seja, agora o Safari ou Chrome estava rodando em todos os dispositivos móveis inteligentes. O próprio Safari, inteiramente graças às compras do iPhone, dobrou sua participação no mercado em apenas alguns anos. A popularidade do Chrome cresceu ainda mais rápido. Ao usar o Chromium, você tem acesso a uma lista cada vez maior de navegadores independentes e projetos de navegador. Além disso, o Chromium se tornou a espinha dorsal da linguagem de programação Node e da estrutura de aplicativos de desktop Electron.



E todos esses projetos funcionaram graças ao Webkit. Com o passar dos anos, ele deixou de capturar uma pequena fatia do mercado de navegadores para dominá-lo.



Esse estado de repouso durou pouco. Em abril de 2013, o Google anunciou inesperadamente que iria bifurcar o projeto Webkit em um novo mecanismo chamado Blink. O Google Chrome e o projeto Chromium serão movidos para este novo mecanismo.



Houve vários motivos para essa transição, mas o mais importante nos traz de volta à questão do multiprocessamento. Por vários anos, o Google tem estendido o Webkit para adicionar multiprocessamento a seus navegadores, o que se tornou um recurso crítico e a base para o crescimento do desempenho dos navegadores Chromium. Em 2013, o projeto Webkit deveria lançar uma nova versão do motor, que também melhorou o multiprocessamento. O problema era que sua implementação se tornaria completamente diferente e incompatível com a implementação no Chrome. Ele já usava um mecanismo de JavaScript diferente e essa nova mudança teria movido o Chromium muito para longe do projeto original. O núcleo do Blink ainda precisava e continua sendo o Webkit. Mas ele vai seguir um caminho diferente e criar um novo projeto para si mesmo.



Nesse ponto, a web se tornou mais complexa do que se imaginava. O problema apresentado pela primeira vez por Berners-Lee - muitos desenvolvedores independentes construindo seus próprios mecanismos de navegador - não era mais um problema. Construir e manter o mecanismo do navegador agora exigia grandes equipes. Com a expansão da plataforma web e o fortalecimento de seus padrões, a complexidade de renderizar um site em uma página cresceu exponencialmente. O navegador teve que executar inúmeros sites, codificados de inúmeras maneiras para mais ou menos corresponder a todos os outros navegadores.



Depois desse ponto, os motores do navegador começaram a desaparecer.



Dois meses antes do lançamento do Blink, a Opera anunciou que estava abandonando seu próprio motor Presto e movendo seu navegador para o Chromium. Quando o Google anunciou o fork, o Opera se juntou a ele. Em maio de 2013, ela lançou seu primeiro navegador baseado no Blink.



Nesse ínterim, a Microsoft manteve seu próprio mecanismo de código fechado por anos. O Trident foi transformado em um mecanismo chamado EdgeHTML desenvolvido para o navegador Microsoft Edge, lançado pela primeira vez em 2015. Mas investir no desenvolvimento de um mecanismo independente tem se mostrado muito difícil em um mercado de navegadores já lotado. Em 2019, a empresa anunciou que também estava mudando para o Blink. Desde então, este navegador também foi lançado.



Descendentes do KHTML, ou seja, navegadores com motores da família Blink / Webkit, são usados ​​por mais de 90% dos usuários. Do praticamente esquecimento a 90% de participação de mercado em quinze anos, é uma conquista incrível. E isso teve consequências.



O Blink e o Webkit são dois mecanismos diferentes e existem algumas diferenças em seu código-fonte. Mas eles usam a mesma abordagem para renderizar páginas da web, e a maior parte do código dentro do projeto permanece o mesmo. Isso significa que no estágio atual, de fato, restam dois grupos de motores de navegador - a família Blink / Webkit e o navegador Firefox Gecko. Mesmo se você separar o Blink e o Webkit, ainda restam apenas três.



E isso nos traz de volta à questão da diversidade do navegador. A inovação na tecnologia do navegador não desapareceu e, felizmente, todo navegador sério está comprometido com o processo de padronização da web. No entanto, se a comunidade Blink e Webkit decidir que deseja mover a web em uma determinada direção, eles terão todo o poder de que precisam para fazer isso. Isso é verdade até hoje, apesar do fato de que o Gecko ainda está resistindo.



Jeffrey Zeldman resumiu bem no momento em que a Microsoft decidiu mudar para o Blink:



Quando uma empresa decide quais ideias vale a pena apoiar e quais não, quais questões de acesso são importantes e quais não são, ela sufoca a inovação, destrói a concorrência e abre oportunidades para excluir pessoas do trabalho com informação digital.


De uma perspectiva histórica, a trajetória de desenvolvimento do Webkit é um milagre. E isso aconteceu graças à abertura e apoio da comunidade. Mas é tão importante manter a diversidade e inovação do navegador.



Esta postagem cobre cinco marcos na história da web.



  • 3 de abril de 2013. Criando o Blink como um fork do projeto Webkit. O mecanismo de renderização Blink é usado em navegadores baseados em Chromium, incluindo o Google Chrome. A base de seu código foi estabelecida pelo Webkit, mas ele lida com tarefas de multiprocessamento e contém o mecanismo V8 JavaScript.
  • 2 2008 . Google Chrome, . , Google . , .
  • 7 2005 . Webkit — Apple , : WebCore JavaScript- JavaScriptCore. Apple, Google Webkit .
  • 7 2003 . Safari — Apple , . Mac Internet Explorer Microsoft. KHTML, Webkit.
  • 23 2000 . Konqueror — KDE Konqueror 2. KDE , Konqueror . , , Apple Safari Google Chrome.









Publicidade



Nossa empresa oferece servidores seguros com proteção DDoS gratuita . A capacidade de usar um Windows Server licenciado em planos com 2 GB de RAM ou superior, criando backups de servidor automaticamente ou com um clique.



Usamos drives de servidor extremamente rápidos da Intel e não economizamos em hardware - apenas equipamentos de marca e alguns dos melhores data centers da Rússia e da UE. Apresse-se para verificar.






All Articles