
A evolução da web na última década reflete o desenvolvimento da economia americana. Todos os indicadores-chave se movem “para cima e para a direita” nos gráficos, um fluxo constante de inovações fundamentais fornece uma sensação de “progresso”, mas, na realidade, a usabilidade e o impacto da tecnologia nas pessoas estagnam ou até regredem.
Esta crise está afetando plataformas, criadores e consumidores.
Vou tentar analisar e diagnosticar um pouco essa situação. Se você quiser apenas ler meu discurso tacanho e não profissional sobre a necessidade de reiniciar a web, pule esta parte. A ideia é que possamos escolher um novo formato de marcação leve (markdown) para substituir HTML e CSS, dividir a web em documentos e aplicativos da web, recuperando a velocidade, acessibilidade e interesse da web.
Este post usa uma definição pedante de "web". Já falei várias vezes sobre as tentativas de reinventar a "Internet". Projetos como dat, IPFS e arweave foram concebidos para reinventar a Internet ou suas camadas de transporte e transporte de dados. A web é o que fica no topo dessas camadas: HTML, CSS, URL, JavaScript, navegadores.
Quebra de plataformas
Na semana passada, houve uma importante mudança de plataforma - a Mozilla demitiu 250 funcionários e disse que afetaria o desenvolvimento do Firefox. O navegador Firefox não foi o segundo navegador mais popular - o Safari é, principalmente devido ao público "forçado" de proprietários de iPhone e iPad. No entanto, foi o navegador mais popular que as pessoas escolheram .

Gráfico do statcounter
O verdadeiro vencedor não foi o próprio Chrome, mas o motor Chrome. Uma base de código KHTML dividida em WebKit (Safari) e Blink (Chrome, Microsoft Edge, Opera, etc.).
Na prática, é assim que se parece a definição de livro de texto de "monocultura". Por um lado, é uma vitória em termos de colaboração, porque ninguém precisa “perder tempo” com implementações concorrentes e os desenvolvedores web enfrentam os mesmos recursos e bugs em todos os navegadores. Mas, em um sentido mais profundo, ele ameaça os princípios básicos da evolução da web.
Especializações e implementações

A web evoluiu combinando especificações e implementações . Organizações como o WHATWG , o W3C e o IETF têm sido espaços para desenvolvedores independentes, corporações e acadêmicos colaborarem para discutir o potencial de novos recursos da web. Os navegadores testaram suas ideias em muitas implementações diferentes.
Era uma parte interessante da estrutura: tal sistema garantiu que todos nós pudéssemos nos desenvolver juntos, e que um de nossos objetivos era poder contribuir com a web para muitos colaboradores. Isso nos chateava quando em caniusecélulas vazias apareceram, mas a ideia geral era que, mesmo que navegadores diferentes possam ser melhores em aspectos diferentes, mais cedo ou mais tarde eles se alcançam. O Chrome não foi o primeiro navegador a apresentar novos recursos e otimizações.
Trabalhar em colaboração é mais lento do que trabalhar sozinho, mas traz benefícios que perdemos hoje. O Chrome evoluiu extremamente rapidamente, adicionando novas especificações e ideias a uma taxa surpreendente, tornando-se um dos produtos de software mais difíceis de recriar.
Parece-me que Mike Healy expressou da melhor maneira :
Você não acha que a web é praticamente "monopolizada" em termos de complexidade se os motores de renderização são capazes de criar apenas uma ou duas organizações para ela?
Hoje, não só é quase impossível criar um novo navegador do zero - se o fizer, a corrida constante para implementar novos padrões exigirá uma equipe inteira de especialistas. Você pode ler sobre isso no artigo de Drew DeWalt que os navegadores da Web precisam parar ; Também recomendo a leitura de seus outros materiais.
Desafio para criadores
Tornou-se muito mais difícil para a web projetar.
A web só cresceu há 25 anos, teve poucas oportunidades de encolher e hoje está sob a influência de uma cultura extremamente míope de crescimento econômico e de carreira sem planos de longo prazo. Existem muitas maneiras de implementar algo, e algumas das maneiras mais populares de criar aplicativos na web são, na minha opinião, geralmente extremamente poderosas.
A melhor maneira de entrar no desenvolvimento da web em 2020 é escolher um nicho como Vue.js ou React e esperar ter um especialista em CSS na equipe.
Existe uma gama desconcertante de tecnologias disponíveis para aqueles que desejam apenas criar uma página da web em vez de se esforçar para entrar no setor, mas as mais simples, e provavelmente as melhores, são estigmatizadas. As pessoas são mais propensas a escrever currículos React com GraphQL do que digitar HTML no Bloco de notas.
Um problema para os consumidores
Esperamos que toda inovação seja criada para o bem do usuário , mas muitas vezes não é o caso. Parece que os sites modernos são os maiores, mais lentos e com mais erros da história da web. Nossos computadores dificilmente estão ficando mais rápidos e nossas velocidades de conexão com a internet estão estagnadas (nem tente dizer nada sobre 5G). O crescimento do tamanho das páginas da web está ultrapassando o crescimento de todos os outros parâmetros.
Por tudo isso, não espero mais que as páginas sejam rápidas, mesmo com o uBlock instalado no Firefox e um bom provedor de fibra local.
Mas não quero culpar esses desenvolvedores da web por tudo.... Posso contar uma história bastante engraçada do meu antigo local de trabalho. Coletamos dados sobre a interação do usuário com sites para responder a perguntas simples como "as pessoas clicam em um botão para enviar arquivos para o servidor ou usam arrastar e soltar?" Portanto, usamos o Segment , uma ferramenta que permite adicionar pipelines de coleta de dados usando um script simples. O problema, entretanto, era que a Segment tinha uma página enorme com centenas de provedores de dados e empresas de tecnologia de anúncios. E, é claro, os caras que fazem negócios na empresa começaram a clicar em todos esses botões .
Veja, o problema com publicidade e rastreamento de dados é que tudo isso pode ser feito, mas quem vai recusar? (Em nosso caso, desativei e adicionei um CSP que bloqueia o acesso de novos anunciantes ao nível da página.)
Um retorno à simplicidade
É impossível chegar a um sistema simples adicionando simplicidade a um sistema complexo. - Richard O'Keeffe
Para onde vamos a seguir? As pessoas mais espertas sugerem que façamos uma revisão da web.
Como tornamos a web interessante, colaborativa e boa?
Primeiro, pensei que havia dois sites:
Documentos da web

Existem "documentos da web": blogs, notícias, Wikipedia, Twitter, Facebook. Pelo que eu entendi, na verdade, esta é a web como era originalmente vista (eu tinha dois anos na época). CSS, que agora vemos como uma ferramenta que os designers podem usar para criar exclusividade da marca e adicionar detalhes precisos em pixels, foi originalmente visto como uma forma de tornar os documentos legíveis sem formatação, permitindo que os leitores desses documentos personalizassem sua aparência. Na verdade, esse atributo foi armazenado no Chrome como folhas de estilo personalizadas por um tempo e ainda funciona no Firefox . No entanto, na web hoje, essa será uma tarefa assustadora, já que ele efetivamente abandonou a ideia de HTML semântico .
Aplicativos da web"

E então existem "aplicativos da web". Tudo começou como aplicativos do lado do servidor construídos sobre algo como Django e Ruby on Rails . Antes deles, havia muitas tecnologias que agora viverão para sempre nas corporações, como os servlets Java .
O Backbone.js demonstrou que muitos desses aplicativos poderiam ser portados para o navegador, após o que React e muitos de seus concorrentes do SPA criaram uma nova ordem mundial para os aplicativos cliente da web com um alto grau de interatividade e complexidade.
Guerra entre partes da web
Eu argumento que é essa natureza dual que cria a magia da web. Mas também é uma força destrutiva.
A mágica é que um simples blog pode ser um meio criativo, uma ótima maneira interativa de se expressar. Meu site não é assim, mas estou apenas dizendo que é possível .
O problema é que os “documentos da web” geralmente sofrem com as características do aplicativo - é o JavaScript e a animação, e sua complexidade que torna um site de notícias comum um desastre. Quando os sites de documentos adotam padrões de aplicativos, eles freqüentemente sacrificam acidentalmente a acessibilidade, a velocidade e a legibilidade da máquina.
E os "aplicativos da web" sofrem com as características do documento - aplicativos interativos não medem esforços para evitar a maioria das características fundamentais de HTML e CSS, e apenas os usam como matéria-prima - evitando completamente escrever HTML diretamente, evitando escrever CSS , evitando funções de animação padrão , substituindo paginar para algo que parece semelhante, mas funciona de forma completamente diferente . Os aplicativos da Web usam JSX em vez de HTML e preferem lidar com isso no próprio navegador, ou usam Svelte em vez de JavaScript e também preferem.
Quando leio postagens de blog de "desenvolvedores web tradicionais" que estão chateados porque HTML e CSS não são suficientes hoje e as coisas se tornaram tão complexas, acho que isso ocorre principalmente porque em muitos lugares a pilha de desenvolvimento de aplicativos na construção da web -sites substituiu a pilha de criação de documentos. Onde quer que tenhamos usado Jekyll ou renderização do lado do site, React ou Vue.js agora é aplicado. Existem vantagens nessa abordagem, mas para muitos sites com interatividade mínima, isso significa abandonar décadas de conhecimento em troca de alguns benefícios de velocidade que podem nem importar.
O apelo das redes sociais
O apelo das mídias sociais se deve em parte ao fato de que nos permite criar documentos sem pensar em tecnologia web e fornece garantias de velocidade, acessibilidade e perfeição que tomariam muito do nosso tempo sem as mídias sociais. Não precisamos nos preocupar com a postagem no Facebook carregando rapidamente nos telefones de amigos ou com a edição e postagem de uma foto no Instagram corretamente - tudo isso foi resolvido por nós.
Até certo ponto, isso não requer recursos de mídia social: padrões como RSS e serviços como Instapaper demonstram que bela formatação e distribuição podem ser feitas no nível da plataforma. e construir em cima de sites vanilla existentes.
Mas não há uma divisão clara
, - : ! , , -, , , («» JavaScript -), , . , , . : , , , .
Documentos da web 2.0
Obviamente, seria ótimo implementar uma teoria unificada da nova web que tenha características de aplicativo e documento suficientes para criar todos os documentos interativos híbridos com os quais estamos trabalhando hoje. Mas o caminho para a divisão da web é mais claro para nós, e pensei sobre isso primeiro, então vamos conversar um pouco sobre isso.
- Regra nº 1 - não crie subconjuntos . Se a substituição da web for apenas os recursos que estavam presentes no Firefox 10 há dez anos, então ninguém vai gostar desta versão.
- №2 — . , , , - , .
- №3 — . , : , , , , , , .
Então, digamos que estamos criando um novo documento da web.
Primeiro, precisamos de uma linguagem de marcação padronizada mínima para comunicar documentos. Provavelmente, vamos querer começar com uma linguagem de marcação leve que será adaptada para geração de HTML. Um sabor estrito de Markdown chamado Commonmark parece uma escolha muito boa . Este é o idioma no qual escrevi todas as minhas postagens, as mais populares da minha família. Existem muitos analisadores excelentes para Markdown e um grande ecossistema de ferramentas.
Em seguida, precisamos de um navegador. Por muito tempo, a Mozilla tem trabalhado em um navegador totalmente novo - Servo... A equipe de desenvolvimento foi demitida na semana passada, o que é triste. Este projeto inclui frameworks Rust independentes para renderizar fontes , bem como uma implementação Markdown de ponta no Rust e um conjunto cada vez maior de frameworks de aplicativos incríveis . É possível criar um navegador Markdown puro que usa esse pipeline diretamente? Talvez?
Acredito que tal combinação nos permitirá recuperar em grande parte a velocidade perdida. Poderíamos exibir uma página em uma fração de tempo em comparação com a web moderna. O consumo de memória pode ser mínimo. O sistema padrão será incrivelmente acessível. Você pode criar folhas de estilo padrão de excelente aparência e compartilhar folhas de estilo personalizadas alternativas. Graças ao volume significativamente reduzido, seremos capazes de portar o sistema para todos os tipos de dispositivos.
Qual será a aparência das ferramentas de edição de site (que provavelmente é a mais importante)? Eles podem ser muito mais simples.
Qual seria a aparência da agregação? Se as páginas da web fossem mais parecidas com documentos do que com aplicativos, não precisaríamos de RSS - os sites teriam um índice apontando para documentos e um “leitor” poderia agregar as próprias páginas da web por padrão.
Poderíamos conectar as duas web usando algo como um arquivo de protocolo dat conhecido , ou poderíamos usar o cabeçalho Accept para criar um navegador que entende HTML, mas prefere páginas leves.
Aplicativos da Web 2.0
Tenho a sensação de que, qualquer que seja o problema da web que mencionei, serei automaticamente respondido que o WebAssembly pode corrigi-lo. Pode ser assim?
Eu não sei. WebAssembly é realmente uma coisa ótima, mas os aplicativos da web deveriam apenas renderizar na tela e cada aplicativo desenhar seu próprio kit de ferramentas gráficas? Precisamos realmente de diferenças na implementação de anti-aliasing em aplicativos da web? Aplicativos em contêineres existem, dê uma olhada no Qubes , mas eles não são realmente o que os usuários deveriam buscar . Qualquer pessoa que já usou o Blender ou o Inkscape em um Mac tem uma ideia aproximada de como seria.
Ou o WebAssembly poderia se tornar o novo "núcleo" e ainda renderizar o HTML da IU? Ou ... podemos criar uma biblioteca vinculada compartilhada que os aplicativos WebAssembly usam. Ele funcionaria como o SwiftUI e forneceria padrões amigáveis ao aplicativo, como restrições, em vez de conceitos como altura da linha e flutuações encontradas em documentos.
O problema de moldar o conceito de aplicativos da web é que ele está crescendo muito.
Quanto pior fica a Mac App Store, a Windows App Store, a App Store e a Play Store, quanto mais esses monopólios exigem, mais custos são necessários para ser um desenvolvedor Mac ou Windows, mais esses aplicativos estão migrando para a web. Certamente alguns aplicativos são melhoresNa internet. Mas muitos vão para lá simplesmente porque é o único lugar onde o produto pode ser facilmente, barato e livremente distribuído ou vendido.
Era uma vez, podíamos instalar aplicativos, dar consentimento explícito para que eles fossem executados em um computador e usar nosso hardware. Esse tempo está chegando ao fim, e as páginas da web hoje possuem meios bastante sofisticados de obter qualquer informação, desde webcams, arquivos, controladores de jogos, síntese de áudio a criptografia e tudo o que antes era o reino das possibilidades
.exe
e .app
. Claro, isso dá novo poder, mas a situação é bastante incomum.
Quem está trabalhando nisso?
- Beaker Browser — dat , .
- Project Gemini — -. ( .)
- taizen — . , .
?
Existem muitas visões possíveis sobre este problema e maneiras de resolvê-lo. Acredito que isso seja realmente um problema (para todos, exceto para o Google). A ideia de um navegador web como algo que podemos entender , páginas web como algo que mais pessoas podem criar , me parece incrível.
A abordagem de redução parece muito realista. Acho que o argumento mais forte contra isso é que "suga todas as coisas interessantes da web", e isso é parcialmente verdade. No entanto, a web inicial não era interessante em nosso sentido usual - lá não podíamos criar arte ou usá-la para outra coisa que não a troca de documentos. Mas foi incrivelmente interessante, porque é interessante compartilhar informações, e ali poderia ser feito de forma simples e universal. Portanto, o mais importante é encontrar os elementos que abram as possibilidades de tal plano, se é que existem. Ou encontre outro plano que "seja interessante o suficiente".
A mídia social tende a ser mais restritiva do que as páginas da web, mas também mais envolvente.por muitas razões importantes, a mais importante das quais é a possibilidade de participação de muito mais pessoas. E se o resto da web tivesse tanta simplicidade e rapidez sem ser tão centralizado? E se pudéssemos começar de novo?
Publicidade
Os servidores da Epic são servidores virtuais para hospedar sites de um pequeno blog WordPress a projetos sérios e portais com um milhão de públicos. Uma ampla gama de planos tarifários está disponível, a configuração máxima é de 128 núcleos de CPU, 512 GB de RAM, 4000 GB NVMe!
