🔎 O que é tendência em JavaScript, segundo quem usa
State of JS 2023 coletou 23,5 mil respostas e traça panorama abrangente do uso de JS no mundo. Mais: htmx 2.0, guia de prompt engineering, giro na IA e comandos Git que todos deveriam saber.

Acabou de sair a "State of JS 2023", pesquisa realizada por um coletivo de devs, de forma bastante independente (financiada até com vendas de camisetas), com um universo de 23.540 desenvolvedores JavaScript de diversos países.
O resultado é um panorama abrangente do uso da linguagem, que resumimos a seguir. Destacamos os 3 a 5 itens mais relevantes de cada tópico. Alguns itens somam mais de 100% porque eram de múltipla escolha.
Por que é importante? Para nos mantermos atualizados sobre o que a comunidade JS está desbravando, utilizando e até sofrendo com a linguagem no dia a dia.
Ferramentas
Frontend frameworks: os mais populares são React (84,4%), Vue.js (50,1%) e Angular (45,8%). Principais dores: problemas no React (17%), excesso de opções para escolha (10%) e complexidade (9%).
Backend frameworks: Express (73%), Nest (29%) e Fastify (17%) — nosso preferido, AdonisJS, ficou com 2%.
Metaframeworks: Next.js (57,1%), Nuxt (23,5%) e Gatsby (23%). Dores: problemas do Next (15%), complexidade (8%) e implantação (5%).
Testing tools: Jest (74,3%), Storybook (52,1%) e Cypress (47,1%). Dores: simulação (16%), configuração (12%) e performance (11%).
Mobile e desktop tools: Electron (39,1%), React Native (37,5%) e apps nativos em linguagens como Java, Kotlin e outras (29%). Dores: performance (15%) e problemas com Apple/iOS (6%).
Build tools: webpack (90,1%), Vite (73,3%) e tsc CLI (52,2%). Dores: configuração (26%), performance (14%) e complexidade (12%).
Monorepos: pnpm (41,3%), npm (31,1%) e Yarn (29,8%). Dores: problemas no gerenciamento de pacotes (17%), configuração (15%) e complexidade (11%).
Runtimes: Node.js (94%), navegador (83%) e o novato Bun (22%). Na nuvem: AWS Lambda (33%), Vercel Edge Runtime (24%) e Cloudflare Workers (16%).
Hosts: AWS (47%), Vercel (45%) e GitHub Pages (42%).
AI Tools: quesito novo na pesquisa, o campeão de uso é o ChatGPT (68%), seguido do Copilot (48%) e, quem diria, Google Bard, hoje Gemini (12%).
Outras linguagens: outras linguagens que programadores JS mais usam são Python (44%), PHP (31%) e Java (72%).
Recursos recentes mais usados
Sintaxe: operador ?? ou "coalescência nula" (80%), importação dinâmica (62%) e private fields (35%).
String: string.replaceAll() (73%), string.matchAll() (44%) e Regex Match Indices (24%).
Array: array.findLast() e array.toSorted() (30%) e array.toReversed() (26%).
Async: Top-level await (74%), Promise.any() e Promise.allSettled() (43%).
APIs do navegador: WebSocket (61%), PWA (48%) e Geolocation API (33%).
Dores sobre recursos: falta de tipagem estática (33%), ECMA vs. CommonJS (9%) e manipulação de data/hora (8%).
Uso de JS
Onde devs usam JS: profissionalmente (91%); hobbies e estudos, 37% e 12%.
Especialidade: obviedade, mas a maioria esmagadora usa para frontend (98%), seguida de backend (67%) e mobile (27%).
Padrão das aplicações: SPAs (91%), Server-Side Rendering (62%) e geração de sites estáticos (48%).
Dores gerais de JS: arquitetura do código (37%), gerenciamento de estado (32%) e build tools (28%).
Faltam na linguagem: tipagem estática (57%), biblioteca padrão (43%) e melhorias para data/hora (40%).
Dados gerais e curiosidades
A maioria dos respondentes foi dos EUA (16%), seguido de França e Alemanha empatados, Reino Unido e, curiosamente, Polônia. Brasileiros foram 393 (2%). Homens e brancos são maioria esmagadora.
Essa galera tem 31,7 anos em média e renda média anual de US$ 75 mil, ou US$ 6,25 mil mensais — o que, na conversão atual para reais, daria uma bolada. Muitos trabalham em empresas de porte médio (~75 funcionários) e têm entre 4 e 6 anos de experiência, sendo que 55% possuem formação universitária na área.
Entre as curiosidades:
Os recursos que a maioria disse ter adicionado a suas listas de leitura: error.cause (44%), Logical Assignment (38%) e Hashbang Grammar (35%).
O nível de satisfação não subiu em nenhum dos aspectos abordados; muitos, aliás, tiveram leve queda — não há menção às causas.
Por fim, dados interessantes ficaram por conta das fontes de informação que o público disse consumir:
Cursos: Udemy (29%), Frontend Masters (14%) e Pluralsight (5%).
Podcasts: Syntax (36%), JS Party (10%) Web Standards (7%).
Criadores de vídeos: Fireship (40%), The Primeagen (29%) e Theo (28%).
Pessoas/influencers: Midudev (9%), Theo (8%) e Rich Harris (7%).
A pesquisa completa está em https://2023.stateofjs.com/. Bastante informação, mas esperamos que seja útil para entender para onde JS caminha. Como diz a pesquisa, "para o bem ou para o mal, JS não está desacelerando"; pelo contrário, "as inovações estão surgindo mais rápido do que conseguimos acompanhar".
💻 Interfaces em HTML puro com htmx 2.0
htmx é uma lib JS para criar interfaces de usuário dinâmicas e interativas com HTML puro, que acaba de ganhar versão 2.0. É como Alpine.js ou até JQuery — ou, se você usa Tailwind, é uma abordagem declarativa parecida, só que para comportamentos. A lib estende capacidades do HTML e permite que qualquer elemento faça requisições AJAX. Também facilita implementar funcionalidades como atualizações parciais de página, transições CSS e WebSockets no HTML, por meio de atributos.
💡 Um guia sobre prompt engineering (é útil, prometemos)
Impossível fugir dos vendedores de cursos e consultorias de IA. Mas mesmo nesse comércio, é possível pescar conhecimentos. Este guia, feito pelo autor deste vídeo (que, sim, vende consultoria), ajuda a entender prompt engineering, a "arte" de escrever pedidos em linguagem natural a LLMs. O guia cobre fundamentos, estrutura de prompts, processo, técnicas e como evitar alucinações. Também explica terminologias como zero-shot, few-shot, chain-of-thought, self-consistency, tree-of-thought e skeleton-of-thought. Dica de uma pessoa da comunidade Be.
🧠 Dicas para lidar com a fadiga cognitiva
O trabalho mental ao codar pode levar à fadiga cognitiva. Esta entrevista aborda como o assunto está relacionado à Experiência do Desenvolvedor (DX) e como lidar com isso. Conselhos? Minimizar trocas de contexto nas tarefas, reduzir tempo entre ação e resposta (codar e testar, por exemplo), reconhecer limites de cansaço e descansar, gerenciar o ambiente e o fluxo do trabalho, medir a produtividade para melhorá-la e aproveitar a IA. Ciência Cognitiva também ajuda.
🤖 Giro na IA: Claude 3.5 batendo GPT-4o, personalidade de um LLM e mais
No lado tecnológico da IA, Anthropic lançou Claude 3.5 Sonnet, que bate GPT-4o, e traz relato sobre a personalidade de um LLM (como Claude foi treinado para ser mais “humano”). Já um estudo da OpenAI tenta entender o que ocorre no GPT-4. No lado político, Nvidia ultrapassou Microsoft e Apple e se tornou a mais valiosa do mundo (US$ 3,3 bi), embora o ranking esteja mudando com frequência. Sam Altman quer transformar OpenAI em organização lucrativa e Ilya Sutskever, que quis demitir Altman e depois deixou OpenAI, quer criar empresa de IA segura.
🥷 Comandos Git para levar no bolso
Git é algo que aprendemos por necessidade e uma certa "osmose", sem estudo sistemático. Há comandos tão triviais que usamos no "piloto automático". Mas há outros que temos de consultar para relembrar, não é? O blog do GitHub traz um artigo para facilitar o dia a dia: uma lista de 12 comandos para saber de cor. Tem push
, pull
, config
, branch
e mais. É rapidão de ler e fácil de manter por perto.
❓Você sabe o que é polimorfismo?
Nas últimas duas edições, trouxemos perguntas sobre conceitos de Programação Funcional (FP). Agora, algo mais comum na Orientação a Objetos (OOP). Responderemos na próxima.
A propósito, a resposta à pergunta anterior é: composição de funções vem da matemática e envolve aplicar uma função ao resultado de outra. Dadas duas funções f(x)
e g(x)
, a composição delas é representada por (f ∘ g)(x)
. Significa aplicar g(x)
primeiro e, então, aplicar f
ao resultado. Em programação, é usada para criar funções mais complexas a partir de outras mais simples. Devs podem encadear várias funções, onde a saída de uma serve como entrada à próxima, criando uma sequência de operações. Há muitos recursos na web sobre. Aqui, um que explora aspectos mais profundos do assunto.
Obrigado por ler!
Voltaremos com mais fatos, tendências e dicas na próxima semana. Curta, compartilhe, comente e vote na enquete. Obrigado por ler e por estar com Be!