Idealmente, teríamos navegadores diferentes compatíveis com os mesmos padrões e o mesmo código, produzindo o mesmo resultado em todos os navegadores.
Isso ainda não aconteceu. Quais são as razões pelas quais?
gopher
.
Idealmente, teríamos navegadores diferentes compatíveis com os mesmos padrões e o mesmo código, produzindo o mesmo resultado em todos os navegadores.
Isso ainda não aconteceu. Quais são as razões pelas quais?
gopher
.
Respostas:
Não, não é realista, porque as especificações são confusas às vezes e todo mundo entende algo de maneira diferente das outras. Afinal, somos apenas humanos. Só pode haver o único padrão verdadeiro quando há apenas um fornecedor com uma versão de um produto.
Joel escreveu um excelente artigo sobre esse assunto, chamado Martian Headsets .
Acho que vou citá-lo aqui, já que esta é a melhor explicação sobre por que nunca veremos isso enquanto houver diferentes fornecedores envolvidos:
Esses documentos são super confusos. As especificações estão cheias de declarações como “Se uma caixa de bloco irmão (que não flutua e não está absolutamente posicionada) segue a caixa de introdução, a caixa de introdução torna-se a primeira caixa embutida da caixa de bloco. Um encontro não pode ser executado em um bloco que já começa com um encontro ou que é um encontro. ” Sempre que leio coisas assim, me pergunto como alguém se conforma corretamente às especificações.
Além disso, há concorrência e evolução no mercado. Tome caixas de preenchimento automático, por exemplo. Todos os principais navegadores já os possuem, mas não há um padrão definido. O W3C é muito lento e, quando o padrão chega, já existem 5 implementações diferentes com comportamentos diferentes por aí, que você precisa oferecer suporte também, se quiser ser competitivo. Outro excelente exemplo para esse problema é a incorporação de vídeos.
Dito isto: contanto que você precise oferecer suporte a vários navegadores e ambientes diferentes, esteja preparado para fazer ajustes.
Não, porque o W3C em muitas especificações atribui a responsabilidade da implementação de algum lugar aos implementadores do UA (implementadores de navegador). Por que digo isso, porque geralmente escrevo meus artigos diretamente das especificações do W3C e vejo esses casos. Por exemplo, o W3C diz que os navegadores devem obter o consentimento do usuário sobre o compartilhamento de sua posição (via API de geolocalização ), mas não diz como devem solicitá-lo. Isso pode resultar em diferentes tipos de mensagens exibidas de maneira diferente (pop-up, deslize para baixo etc.) em diferentes navegadores.
Em geral, podemos dizer que:
Desde que exista alguma implementação de requisitos pluralista , é difícil alcançar a consistência entre os navegadores .
Só podemos ver navegadores consistentes quando o W3C diz imperativamente aos implementadores de navegador o que fazer.
Não vai acontecer da forma que você descreve.
Contudo; se você codifica de maneira conservadora, não é preciso muito para escrever um código que funcione de maneira confiável e previsível em todos os novos navegadores. Já percorremos um longo caminho na última década - até o IE atualmente implementa um grande subconjunto das recomendações do W3C corretamente, o suficiente para realmente criar sites independentes de navegador.
Obviamente, se você deseja fazer coisas que não estão nas recomendações ou usar recursos que são vagamente especificados ou ainda implementados incorretamente (ou não existem), você estará por sua conta.
É extremamente improvável que isso aconteça em breve - na verdade, eu chegaria ao ponto de dizer que quando / se acontecer, é um forte sinal de que o mundo seguiu em frente e simplesmente não se importa mais com os navegadores da web .
O problema é bastante simples: a maior parte do limite para escrever novos padrões para coisas ainda mais legais que os navegadores poderiam fazer é a falta (até razoável) de conformidade com os padrões existentes. Observando isso de uma direção um pouco diferente, no momento em que os navegadores estão em conformidade com os padrões existentes (ou até se aproximam razoavelmente da conformidade), é quase certo que pelo menos algumas pessoas vão começar a pensar "Mas não seria legal se nós poderia ... ", e eles farão uma de duas coisas: eles implementarão sua ideia em um navegador e depois trabalharão na padronização da ideia (quase inevitavelmente antes de qualquer outro navegador implementá-la), ou trabalhe escrevendo um padrão para esse comportamento, mesmo que nenhum navegador o implemente ainda.
O ponto principal é que a implementação de padrões nos navegadores quase inevitavelmente fica atrás da invenção de novos padrões com os quais se conformar. A única maneira de todos os navegadores se atualizarem é se as pessoas deixarem de escrever / projetar coisas novas para os navegadores.
Ao mesmo tempo, sinto-me obrigado a salientar que mais ou menos o inverso também é verdadeiro: esse é um conjunto de padrões em constante crescimento com os quais os navegadores se adaptam cada vez mais estreitamente. Não faz muito tempo, que a melhor pontuação que qualquer navegador obteve no teste Acid3 foi 93/100. Por acaso, é exatamente a mesma pontuação que o IE atualmente obtém ...
Idealmente, teríamos navegadores diferentes compatíveis com os mesmos padrões e o mesmo código, produzindo o mesmo resultado em todos os navegadores.
Isso levanta a questão de por que precisamos de navegadores diferentes. Se todos fizerem basicamente a mesma coisa, um navegador será suficiente para todos. Isso seria realmente ideal. Não há mais duplicação de esforço inútil e não há mais código específico do navegador. Finalmente, as pessoas poderiam começar a construir uma base sólida.