A IA está fazendo o frontend repetir sua década perdida?
(mastrojs.github.io)- Desqualificação substitui trabalho especializado por operação técnica de menor qualificação, reduzindo custos e barreiras de entrada, mas também enfraquece o poder de negociação dos trabalhadores
- Nos últimos 10 anos, o frontend viu frameworks e ferramentas encobrirem conhecimentos sobre navegador, acessibilidade e desempenho, empurrando para fora a especialidade do front of the frontend
- A IA agêntica eleva a programação a um nível maior de abstração, mas é uma abstração vazante (Leaky), não determinística, em que pequenas mudanças na entrada ou no modelo podem alterar muito o resultado
- LLMs são uma continuação do copiar e colar do Stack Overflow: aceleram quem já tem experiência e permitem que iniciantes também produzam algo que funciona, mas alguém ainda precisa entender e corrigir a saída
- A IA pode gerar mais AI slop e redução de custos, mas isso não elimina a necessidade de pessoas que entendam qualidade, usuários e trade-offs
Frontend e programação com IA sob a ótica da desqualificação
- Desqualificação (deskilling) é o processo de substituir trabalho especializado por tecnologia que pode ser operada por trabalhadores semiqualificados ou não qualificados, reduzindo custos e barreiras de entrada, mas enfraquecendo o poder de negociação dos trabalhadores
- O desenvolvimento frontend passou por um processo de desqualificação nos últimos 10 anos por meio de frameworks e ferramentas JavaScript, e a IA agêntica está produzindo uma mudança semelhante na programação em geral
- Como sugere a expressão Frontend’s Lost Decade, a especialização em frontend que antes envolvia um entendimento profundo de navegadores e da experiência do usuário foi empurrada para o lado pelo desenvolvimento centrado em frameworks
A especialização que desapareceu do frontend
- No passado, o desenvolvimento frontend exigia conhecimento especializado em HTML semântico, CSS, diferenças entre navegadores, acessibilidade, aprimoramento progressivo, desempenho de rede, design de interface e testes com usuários
- Alguns profissionais distinguem essas áreas do “frontend” atual e as chamam de front of the frontend
- A desqualificação do frontend avançou com a adoção de frameworks e ferramentas que tratam o navegador como um simples alvo de compilação, como a JVM ou o iOS, em vez de um ambiente com características próprias
- Ao importar componentes como Shadcn radio button, é possível criar funcionalidades sem entender profundamente o HTML subjacente, as sutilezas entre navegadores, o desempenho no carregamento da página ou acessibilidade
- As empresas conseguem colocar programadores generalistas para trabalhar com frontend com mais facilidade e reduzir custos
- “Desenvolvedor full stack” passou muitas vezes a significar não alguém que entende profundamente frontend e backend, mas um desenvolvedor genérico capaz de lidar com ambos usando frameworks JavaScript
- Fica mais fácil remanejar o mesmo desenvolvedor entre vários projetos, além de atribuir até apps nativos com React Native e Electron
- Junto com a vantagem de reduzir a barreira de entrada, o poder de negociação dos trabalhadores enfraquece
Programação com IA é uma abstração mais alta e também uma abstração vazante
- A mudança que hoje acontece na programação em geral se parece muito com a transformação que os desenvolvedores web já viveram
- O movimento aponta para a substituição do trabalho especializado de escrever código manualmente por uma tecnologia operada por trabalhadores semiqualificados ou não qualificados
- Ainda não está claro de quais capacidades os trabalhadores que operam IA agêntica precisarão no fim das contas, nem até onde chegarão os custos de mão de obra e de LLMs locais ou remotos
- Mas parece evidente que as empresas podem usar essa tecnologia para reduzir custos e enfraquecer o poder de negociação dos trabalhadores
- A perda de valor de mercado de habilidades refinadas ao longo de muitos anos lembra a substituição de artesãos e trabalhadores manuais por operários de linha de montagem
- A desqualificação também pode ser vista como um ganho de eficiência via automação, isto é, uma mudança para trabalhar em um nível mais alto de abstração
- Novas tecnologias escondem detalhes e permitem que o operador foque no panorama geral, mas decidir quais detalhes podem ser tratados como “não importantes” é uma escolha crítica
- Os detalhes da abstração acabam vazando em algum momento
-
A abstração vazante do frontend “moderno”
- Abstrações costumam trazer custo de desempenho, e abrir mão de parte do desempenho em tempo de execução em nome da produtividade do desenvolvedor pode ser razoável em servidores potentes e com carga normal
- Em celulares sobre redes lentas, o mesmo trade-off se torna um problema totalmente diferente
- O uso intenso de frameworks pesados de JavaScript no cliente, como React, e de pacotes do ecossistema abstrai demais questões como acessibilidade e desempenho em celulares fracos e redes lentas
- O resultado é que essas questões deixam de ser consideradas e passam a ser escolhas feitas sem atenção
-
A não determinismo da programação agêntica
- Ao criar uma funcionalidade ou corrigir um bug com IA agêntica, em vez de escrever todo o código manualmente, descreve-se a mudança em alto nível com menos palavras
- A IA observa os dados de treinamento e o contexto ao redor para preencher os detalhes omitidos; às vezes acerta, às vezes falha
- O quanto isso é útil depende fortemente do que se considera importante no trabalho de programar
- A programação agêntica, ao contrário de um compilador, não é determinística, e pequenas mudanças na entrada ou no modelo podem produzir resultados muito diferentes, vazando muito mais do que abstrações tradicionais de programação
- A comparação entre IA e “engenheiro júnior” também vem dessa não determinismo, mas com a diferença de que pessoas conseguem aprender sem exigir ajustes infinitos em arquivos AGENTS.md ou SKILL.md
LLMs são uma continuação do copiar e colar do Stack Overflow
- A analogia mais próxima para o uso de LLMs é a antiga forma de usar a busca do Google
- Saber escolher palavras-chave exatas para fazer um post de fórum ou uma resposta do Stack Overflow aparecer na primeira página de resultados também era uma habilidade que desenvolvedores precisavam aprender
- Fazer prompts para LLM é, de forma parecida, um processo de fazer com que o modelo retorne combinações adequadas dos dados de treinamento, algo mais próximo de uma busca em um espaço de altíssima dimensão, semelhante a uma pesquisa web difusa
- Os resultados de busca eram sensíveis a pequenas mudanças na formulação e a mudanças no índice de busca do Google, e os LLMs também são sensíveis à forma da entrada e às mudanças do modelo
- Recentemente, o Google mudou a busca para normalizar com mais força os termos de entrada, tornando a pesquisa mais fácil para quem não dominava o “Google-fu”, mas menos poderosa para os mais experientes
- Google e Stack Overflow mudaram a programação de forma irreversível, permitindo obter, com surpreendente frequência, resultados que pelo menos funcionavam ao copiar e colar respostas em vez de ler manuais
- Os LLMs são uma continuação dessa mesma tendência
- Tornam um pouco mais rápido quem sabe o que está fazendo
- Permitem que até quem não sabe muito bem o que está fazendo consiga montar algo que funcione
- Abstrações acabam vazando em algum momento, e então alguém precisa entender profundamente o que de fato está acontecendo para corrigir o problema
- Assim como se ensinava desenvolvedores juniores a ler e entender respostas do Stack Overflow antes de usá-las, agora é preciso ensiná-los a ler e compreender a saída dos LLMs e ver como ela se encaixa na base de código existente
A distância entre qualidade e negócio
- Alguns programadores nunca chegaram ao ponto de realmente entender as respostas do Stack Overflow e achavam suficiente se o resultado funcionasse
- Muitas empresas, embora não admitissem isso publicamente, também estavam satisfeitas com essa abordagem
- Agora chegamos ao ponto em que empresas exibem publicamente o quanto usam IA sem nem fingir que estão examinando os resultados
- Existem claramente casos de uso válidos para LLMs, mas também surgem muitas novas maneiras de estragar o código, a comunicação e os processos da organização
- Assim como no code review, há grande divergência de opiniões sobre como usar e integrar LLMs ao fluxo de trabalho, e se isso não combinar com o que a equipe valoriza, podem surgir grandes problemas no processo
- Muitas empresas continuam funcionando bem mesmo produzindo software ruim
- Ao contrário do que programadores gostam de acreditar, sucesso de negócio e qualidade de software raramente têm correlação forte
- Em geral, outros fatores, como marca e preço, pesam mais, e projetos de software são tratados como caixas-pretas em que sucesso e fracasso parecem ocorrer com probabilidades semelhantes
- No frontend, sites lentos e muitos banners de cookie podem prejudicar conversão, mas esse efeito costuma ser menor do que fatores como lealdade à marca e preço, e os sites dos concorrentes muitas vezes também são lentos
- Em um clima de “ninguém foi demitido por escolher React”, escolhas seguras acabam sendo preferidas à qualidade
- Isso não significa que se deve parar de se importar com usuários e capricho técnico, mas encontrar um trabalho onde isso seja possível ficou mais difícil
- Quando o hype passar e houver mais clareza sobre tarefas para as quais LLMs realmente servem ou não, algum equilíbrio pode voltar, mas a profissão em si não será a mesma de antes
As habilidades que permanecem após a industrialização
- Quando produtos do cotidiano e edifícios passaram a poder ser produzidos em massa por processos industriais, uma das reações foi fabricar em escala produtos e construções que imitavam estilos antigos para parecer artesanais
- Em oposição a esse historicismo, a Bauhaus do início do século XX desenvolveu uma abordagem que, em vez de opor trabalhador de fábrica e artesão, propunha que ambos trabalhassem juntos e reinventassem arte e ofício com base nos processos industriais de fabricação
- A Bauhaus exigia que o designer voltasse à oficina e trabalhasse diretamente com os materiais, mas com o objetivo final de criar projetos passíveis de produção em massa
- O software se aproxima do artesanato no fato de que o programa escrito é entregue ao usuário “como está”, sem uma etapa de fabricação, e se aproxima do design industrial no fato de ser distribuído para milhares de usuários
- A capacidade de escrever código manualmente continua necessária, e, assim como um designer industrial precisa conhecer os materiais do produto, um web designer precisa dominar muito bem HTML e CSS
- Google, Stack Overflow, bibliotecas prontas para uso e LLMs facilitam o início para iniciantes, mas também continuam reduzindo a barreira natural para simplesmente fazer algo funcionar
- A industrialização produziu muitos itens baratos de plástico sem refletir o suficiente sobre uso e usuários, mas o bom design industrial continua existindo
- Processadores de texto geraram muitos documentos mal formatados, mas tipografia e design gráfico continuam existindo
- Wix e Next.js tornaram possível criar muitos sites lentos e pouco acessíveis, mas profissionais do front of the frontend continuam existindo
- A IA torna possível produzir muito AI slop, mas isso não significa que deixem de ser necessárias pessoas que sabem o que estão fazendo e se importam com o próprio trabalho
Mudanças futuras e trade-offs
- Como em outros setores, é possível que a parcela de trabalho realmente bem feito fique menor em relação ao todo
- Ao mesmo tempo, o tamanho total do mercado deve continuar crescendo, já que se tornará mais fácil e barato criar coisas
- Ainda é difícil dizer agora se o número absoluto de pessoas bem pagas por fazer um bom trabalho vai aumentar ou diminuir
- Em alguns casos, produzir rapidamente um protótipo ou MVP é a escolha certa
- Se o produto ainda não encontrou product-market fit, iteração rápida e aprendizado importam mais do que tornar tudo preparado para o futuro
- Mas é preciso saber o que se está tentando aprender e como esse aprendizado será validado
- Quando chega o momento certo, geralmente é melhor dar um passo atrás e refazer desde o começo da maneira correta
- Por exemplo, é muito difícil alcançar bom desempenho depois em um frontend com arquitetura ruim
- Começar com uma stack simples e adicionar recursos depois costuma ser mais fácil do que o contrário
- O Mastro incentiva explicitamente começar com bom desempenho e uma stack simples
- Seja ao comprar um serviço, usar uma biblioteca open source, gerar com LLM ou escrever manualmente, é preciso entender quais trade-offs estão sendo feitos em cada parte do sistema
- Quando o hype esfriar, o setor perceberá que IA é apenas mais uma ferramenta na caixa de ferramentas
- Até lá, código feio, comunicação quebrada e demissões terríveis podem continuar aparecendo sob o rótulo de IA
Quer continuar recebendo tópicos de tecnologia selecionados?
Siga o canal no Telegram. @GeekNewsBrasil
1 comentários
Comentários do Hacker News
Acho que a especialização profunda da qual o OP sente falta era, na verdade, algo bem inconveniente para muita gente
Entendo a ideia de viver de dominar peculiaridades de cada navegador, implementar componentes acessíveis na mão e ter grande domínio de CSS, mas, para a maioria, isso se parece mais com complexidade acidental. É claramente uma coisa boa que mais pessoas consigam criar algo, e se parte do resultado for mais lenta ou menos acessível, isso é um compromisso que pode ser escolhido
Dá para dizer que a abstração empurra consequências que o usuário não escolheu, mas também acho possível que um LLM entenda convenções de acessibilidade melhor do que eu
Só que frameworks de altíssimo nível e agora os LLMs passaram a facilitar lançar rapidamente um MVP meio cru mesmo estragando essas partes, e assim a distância entre “aceitável” e “bom” está ficando maior. Para quem tenta buscar o “bom”, está cada vez mais difícil competir com quem empurra o “aceitável”
No fim, isso leva a mais trabalho até tarde e queda na qualidade do software, talvez até a uma piora geral na satisfação com o trabalho. Hoje em dia já começou a acontecer de eu usar ferramentas de desenvolvedor e uBlock para consertar sites quebrados ou remover distrações só para restaurar funcionalidades básicas, e vi gente aqui dizendo que faz a mesma coisa (https://news.ycombinator.com/item?id=47042747). Antigamente, nem na era do Flash ou dos navegadores iniciais era preciso mexer manualmente desse jeito
Há também um exemplo menos anedótico: https://news.ycombinator.com/item?id=47390945
Pior ainda é que a maior parte do dinheiro economizado com esses cortes fica só com o topo da organização
O AI mode do Google também tem isso, e outros sites aparentemente colocaram coisas parecidas por pura vibe coding
No começo eu não entendia por que o uso de GPU disparava e a ventoinha ficava a todo vapor, mas agora vejo que esse é um erro comum que a IA comete e que ninguém testa direito. Humanos também podem cometer esse erro, mas, até agora, eu quase nunca tinha visto isso na vida
Como uso um monitor de 240Hz, o navegador tentava repintar 240 vezes por segundo, e a única saída foi bloquear com uBlock Origin. Absurdo
O pior é que, no meio do caminho, eles acabam refutando a própria tese
Por exemplo, foi dito que “decidir quais detalhes importam pouco é uma decisão profundamente importante e às vezes subjetiva, e no fim os detalhes sempre vazam”; se é assim, então essa nova tecnologia também vai acabar recompensando o entendimento técnico profundo. Porque isso é inevitável. Concordo com isso. Mas então por que o tom geral é “a IA está transformando minhas habilidades em mercadoria barata”?
Os sites, tecnicamente, em geral estão melhores do que há 10 anos. Têm mais recursos, são mais rápidos, e SSL/acessibilidade/responsividade viraram padrões mais fortes por padrão. O problema das fábricas de conteúdo, de SEO e dos sites de notícias é outro modo terrível de falha criado por anúncios e incentivos corporativos, não culpa do React
Um LLM às vezes consegue aproveitar isso. Mas, se as pessoas deixarem de escrever, o que acontece depois?
Concordo que é bom que mais gente consiga criar alguma coisa. Mantido todo o resto igual, quanto mais, melhor. Se a “IA” tivesse se espalhado por toda parte por causa de melhorias incontestáveis, o contexto e o sentimento seriam bem diferentes
Ainda assim, as pessoas não passam a ter um direito automático sobre o conhecimento “gerado” pelo trabalho alheio. Se atribuição e remuneração fossem tratadas com seriedade, e só fosse possível treinar com material pago às pessoas que o produziram, talvez simplesmente aprender CSS fosse muito mais rápido e barato
Claro, ninguém se importa com o computador do usuário/uso de memória, a piora da experiência, a largura de banda desperdiçada, o custo extra de energia para 8 bilhões de pessoas e o impacto ambiental
Também é “claramente uma coisa boa” que mais gente construa infraestrutura pública? E se o resultado forem estradas piores, pontes piores e sistemas que falham? Com software é a mesma coisa, e na verdade com a maioria das coisas também
Grande parte das “tecnologias de frontend” que, segundo este texto, estariam perdendo relevância consistia em atravessar um campo minado cheio de exceções nada intuitivas, incompatibilidades entre navegadores, bagagem histórica e exceções das exceções das exceções
O frontend moderno, isto é, essa “torre de abstrações que vaza”, finalmente se aproxima de um modelo mental sensato para desenvolvimento web. Foi forçado por cima de uma explosão de esquisitices chamada padrões e convenções da web, mas o fato de ainda assim funcionar e vazar só um pouco já é uma conquista
Ainda estamos num campo minado de exceções, e é difícil dizer que as tecnologias com que se faz frontend tenham se tornado limpas, previsíveis e livres de bagagem histórica
O que fizemos foi só passar massa corrida por cima dos erros e incompatibilidades da base, não resolvê-los. React não resolve o fato de que HTML não foi projetado para ser uma caixa de ferramentas de UI. Next.js não resolve o fato de que JavaScript está cheio de erros de projeto que o impedem de ser uma linguagem segura, sensata e racional. Tailwind não resolve o problema de que o CSS foi introduzido de forma improvisada para estilizar uma marcação que não foi projetada para isso
O que os LLMs fazem agora é apenas “saber”, dentro de um modelo estatístico, dos horrores que estão sob essa massa corrida. Esse modelo foi treinado com exemplos de uma era em que 99% dos casos eram só remendar de novo as rachaduras da camada anterior de massa corrida
Se você não sair de um pequeno e razoável conjunto de boas práticas, dá para oferecer uma experiência muito boa só com algumas bibliotecas entediantes e já testadas
Mas, quando você se envolve com o framework frontend da moda de hoje, ou pior, com o framework da moda de ontem, ou precisa se adaptar às preferências bizarras de outro desenvolvedor que insiste em uma única forma de fazer as coisas, ou começa a lidar com hacks “geniais” presos com esperança e fita adesiva, a complexidade e o modo como as coisas interagem aumentam exponencialmente
Eu vivi aquela época. JavaScript puro voltado para IE6 foi substituído por jQuery cheio de bugs, depois por aplicativos de página única em Angular impossíveis de manter, e depois por codebases monstruosas em React
Na prática, é muito mais do que isso
Já vi gente demais aparecer em entrevista como especialista em Next.js e, fora isso, não saber fazer mais nada. Isso não é habilidade, é só conhecimento, e hoje está espalhado de graça por toda parte
O fato de algo não ter sido perfeitamente projetado por um comitê desde o começo não significa que dá para esquecer tudo, fechar o livro e deixar a máquina calcular
Eu também faço a segunda coisa, então sei no que ela erra, mas não me deixo enganar a ponto de criar um caos impossível de manter. Sempre que os agentes saem dos trilhos, minha habilidade de frontend se torna realmente útil
Dizer que “frontend era uma habilidade altamente especializada que exigia conhecer HTML semântico, CSS, diferenças entre navegadores, acessibilidade, melhoria progressiva, desempenho de rede, design de interface, testes com usuários etc.” provavelmente soaria bem engraçado para a geração anterior de desenvolvedores frontend, isto é, os desenvolvedores C/C++
A web era vista como algo que reduzia muito a barreira de entrada e desqualificava a técnica. Programadores de assembly provavelmente pensariam algo parecido sobre desenvolvedores C/C++
Mas todas as camadas estão erradas. Cada camada é construída sobre abstrações da camada abaixo. Se você descer até física e matemática, vai ver que até os teóricos dos conjuntos assumem certos axiomas. Ninguém sabe o que os lógicos fazem
A lógica de “o novo processo produz resultados de qualidade inferior, e é triste que tanta gente pareça não se importar” parece se apoiar na premissa de que, antes da IA, a maior parte desse trabalho era feita por artesãos qualificados e comprometidos com a qualidade
Quem já trabalhou de verdade no setor e é honesto sabe que não era assim. Havia muita coisa abaixo da média
E, dependendo de como se define “qualidade”, também não dá para ter certeza de que o resultado da IA seja de qualidade inferior. A IA pode produzir uma uniformidade incômoda, mas, ao mesmo tempo, como as convenções aprendidas pelo modelo, goste-se delas ou não, “funcionam” para a maioria dos usuários finais, também há muitos resultados bem utilizáveis
Já existia muita pressão para fazer só o mínimo que atendesse aos requisitos e declarar sucesso. Agora essa pressão parece ter se tornado insuportável
Ainda assim, concordo que isso já tinha desaparecido antes mesmo da IA
Se estamos falando de baixa qualidade, aquilo era na verdade o normal
Recentemente eu também pensei em algo parecido
Faz pelo menos 10 anos que quase não mexo com desenvolvimento frontend, mas já tenho idade suficiente para lembrar da época, no fim dos anos 2000, em que de repente todo mundo começou a usar frameworks em vez de fazer GUI web na mão, e quem ainda escrevia HTML/CSS/JS e consultas de banco manualmente era ridicularizado. As vagas também de repente passaram a pedir Ruby on Rails, Django, Spring, GWT e depois Angular, em vez de PHP/HTML/CSS/SQL/JS
A sensação é estranhamente familiar ao momento atual. Dava para criar uma aplicação web funcional em poucos minutos sem conhecimento profundo, e parecia mágica. Depois vinha aquela fase de folhear a documentação por alto e ir pesquisando enquanto customizava dentro do framework, até chegar num ponto em que você simplesmente não conseguia mais avançar. Porque não fazia a menor ideia de como aquilo funcionava por dentro. Assim como os webapps de vibe coding, os webapps padronizados montados numa tarde com frameworks padrão eram reconhecíveis de longe, mas impressionavam bastante os gerentes
O curioso é que os desenvolvedores falam do modelo de ponta que usam com a mesma entonação com que os devs de GUI de 15 a 20 anos atrás falavam dos frameworks web de que gostavam. Personificam a ferramenta e até se identificam com ela, ficam frustrados porque algo que funcionava na versão X piorou na X.1, e repetem frases como “agora desenvolvo 10x mais rápido” ou “vou voltar a escrever XYZ na mão”
Também não é vantagem ter uma GUI caseira que ninguém sabe manter
Pessoalmente, rejeito coisas que “parecem” grandes demais, como Nuxt/Next, mas gosto de Vue. Só que hoje quero me livrar da maior parte do JavaScript, então estou tentando ir para soluções na linha de HTMX ou Alpine com templates server-side
Para mim, quanto menos tecnologias em uso, melhor. Já houve época em que o webapp vinha lotado de um monte de tralha inútil antes mesmo de eu adicionar uma única linha de código customizado
Em 2004 eu já tinha feito site com uma abordagem básica de colocar arquivos txt numa árvore de diretórios e usar PHP para inseri-los no HTML adicionando tags em vez de quebras de linha. Na época, a alternativa era um sistema pesado de gerenciamento de conteúdo
Cheguei ao Django depois de passar por dois frameworks PHP horríveis feitos pelos leads no trabalho, então frameworks como Django pareceram uma transição mais gradual e bem mais agradável
Claro, se você força mais a barra e vai na direção de adicionar controle de versão a objetos, por exemplo, a coisa fica muito complicada, deixa de ser garantidamente funcional e você também deixa de ter como consertar
Mesmo assim, a atitude em si parece semelhante à de agora
Estamos na indústria de software. O cerne desta indústria é automatizar tarefas muito repetitivas
Projetos de frontend são muito repetitivos, e agora a IA faz isso. É ótimo e libera muito tempo para construir coisas mais interessantes
A desespecialização de técnicas que já não são tão relevantes é algo que acontece na indústria desde a invenção do computador. Porque o problema foi resolvido, seja com IA ou de outra forma
Basta seguir em frente e aprender a nova técnica. Na prática, usar IA com eficácia também é uma habilidade difícil para algumas pessoas. As coisas ainda não se constroem sozinhas. Dá para fazer se você der o prompt certo, mas será que está dando o prompt certo? A ferramenta está fazendo o que você pediu? Como você sabe? Você verificou? Eu mesmo gasto um tempo enorme dando prompts para IA, e certamente estou melhorando, mas ainda assim isso chega perto de um trabalho em tempo integral
Daqui a uns 10 anos vamos olhar para trás e achar que esse era um jeito muito ineficiente de fazer software. As ferramentas vão melhorar e a IA vai se tornar mais autônoma. Se você passa o dia repetindo os mesmos prompts, alguém ou alguma coisa também vai precisar automatizar isso
A reclamação aqui é que essa automação corre o risco de codificar o que não se queria
O mundo precisa de muito mais software do que somos capazes de construir agora
É uma opinião tão ruim que nem sei por onde começar a refutar. O repetitivo seria o fato de toda UI ter botões?
Se as pessoas realmente acreditam nisso, dá para entender por que a UX vem sendo arruinada desde os anos 90 e só piorou depois
Programar com IA ajuda muito a criar protótipos de produto, mas ao mesmo tempo também gera produtos que, vistos de longe, têm cara evidente de terem sido feitos por IA
Acabei de ver uma startup demonstrar um app, e ele tinha exatamente aquela cara de UI de vibe coding
O feedback que receberam foi frio, mas preciso. Era algo como: “Está até bem legal, mas dá muito para ver que foi feito com IA, e nesse caso qualquer outra pessoa que queira isso também consegue fazer muito rápido com IA, então há pouco valor no que vocês estão tentando vender”
Mas a maioria nem se dá a esse trabalho básico
Bordas arredondadas continuam sendo uma moda sem fim, e tudo o que já não tem uma definição clara parece ser contaminado por essa forma
Um investidor de venture capital competente não daria um feedback sem sentido desses. Se é bom, é bom; que diferença faz se foi IA que fez? Se fosse um produto da mesma qualidade, mas sem cara de vibe coding, então estaria tudo bem? Só quem se opõe ideologicamente à IA se importaria com isso
Às vezes parece que as técnicas para criar interfaces de usuário complexas só com HTML, sem AJAX nem manipulação de DOM, no começo dos anos 2000, praticamente desapareceram como técnicas de construção de pirâmides
Há um aspecto de “desqualificação” entre desenvolvedores full stack mais jovens; por exemplo, muita gente acha que é preciso JavaScript para fazer validação de formulário
A partir do momento em que você começa a usar AJAX e manipular o DOM, a complexidade da comunicação assíncrona inevitavelmente leva a algo de escala parecida com React. Mesmo que dê para escrever algo como
document.title="A new title"e não seja preciso importar nada, se você enxergar o frontend apenas como “atualizar a UI quando chegam dados do servidor”, aplicações complexas precisam atualizar várias partes da UI, e em algum momento você acaba criando algo como um barramento de comunicação ou barramento de gerenciamento de estado. Daria para fazer de outro jeito? Claro que simSe existe um problema no ecossistema React, não é o fato de criar abstrações sobre abstrações, mas sim que essas abstrações vazam. Se você estiver fazendo algo muito simples e não se importar com a aparência, dá para usar Bootstrap ou MUI sem entender CSS. Mas, para entregar um trabalho de nível profissional para apresentar a clientes, você precisa entender HTML, CSS, JS e todos os frameworks usados no projeto
A maioria das pessoas que critica React na verdade não entende que problema o React resolve. Se você mostrar o código-fonte de um webapp suficientemente complexo que não dependa de React, dá para encontrar ali uma imitação de React feita manualmente
Não concordo que operar aplicações frontend usando renderização no lado do servidor, lazy loading etc. do NextJS seja “mais fácil” do que na época em que se usava só HTML, JS e CSS
O nível de complexidade e as expectativas dos usuários estão em um lugar completamente diferente
Além disso, hoje há algo como 1000 vezes mais engenheiros qualificados, e é preciso competir com o mercado global. No começo dos anos 2000, quase não havia concorrência. As habilidades dos trabalhadores em geral têm uma correlação frouxa com o nível exigido pelo mercado, mas agora o cenário é extremamente competitivo