Categoria

Linguagens de Programação e Runtimes

TypeScript vs JavaScript: quando migrar de vez e por quê
Linguagens de Programação e Runtimes

TypeScript vs JavaScript: quando migrar de vez e por quê

Em 2025, o JavaScript continua sendo a linguagem mais utilizada no mundo, presente em 98% dos sites, segundo estatísticas da Web Technology Surveys. No entanto, o TypeScript, seu superset tipado, já é adotado por 78% dos desenvolvedores em pesquisas do State of JS 2024. Grandes empresas como Google, Microsoft, Airbnb e Stripe migraram seus repositórios centrais para TypeScript, enquanto frameworks como Angular, Next.js e NestJS já o exigem como padrão.

10/06/2026
Dicas para usar o profiler do Python para encontrar gargalos de CPU
Linguagens de Programação e Runtimes 05/05/2026

Dicas para usar o profiler do Python para encontrar gargalos de CPU

Um profiler de CPU é uma ferramenta essencial para qualquer desenvolvedor Python que busca otimizar o desempenho de suas aplicações. Ele permite identificar exatamente quais partes do código estão consumindo mais tempo de processamento, transformando suposições vagas em dados concretos. Diferente de ferramentas de depuração tradicionais que focam em erros lógicos, o profiling revela ineficiências de performance que muitas vezes passam despercebidas.

TypeScript 5.x: as features que você deveria usar agora
Linguagens de Programação e Runtimes 24/03/2026

TypeScript 5.x: as features que você deveria usar agora

O TypeScript 5.0 trouxe os decorators nativos como uma feature estável, alinhada com a proposta do ECMAScript. Diferente dos decorators experimentais (experimentalDecorators), a nova implementação não requer flags de compilação e segue o padrão ES.

Geradores e iteradores em Python: lazy evaluation na prática
Linguagens de Programação e Runtimes 08/03/2026

Geradores e iteradores em Python: lazy evaluation na prática

O protocolo de iteração em Python é a base sobre a qual todo o sistema de loops e compreensões de coleções é construído. Um objeto é considerado iterável quando implementa o método __iter__(), que retorna um iterador. O iterador, por sua vez, implementa __next__(), que retorna o próximo elemento ou levanta StopIteration quando não há mais elementos.

Promises vs Async/Await: evitando o inferno de callbacks moderno
Linguagens de Programação e Runtimes 26/02/2026

Promises vs Async/Await: evitando o inferno de callbacks moderno

Antes das Promises e do async/await, o JavaScript assíncrono era dominado por callbacks — funções passadas como argumento para serem executadas após a conclusão de uma operação. Esse padrão era onipresente no Node.js, especialmente em operações de I/O, leitura de arquivos e requisições HTTP.

Como usar o GC tuning em aplicações Java de alto throughput
Linguagens de Programação e Runtimes 22/02/2026

Como usar o GC tuning em aplicações Java de alto throughput

O Garbage Collection (GC) em Java gerencia automaticamente a memória, mas impacta diretamente o throughput de aplicações de alta carga. O ciclo de vida de objetos envolve alocação na geração jovem (Eden), promoção para sobrevivente e, eventualmente, para a geração velha. Durante a coleta, ocorrem pausas stop-the-world que interrompem a execução da aplicação.

Introdução ao desenvolvimento de sistemas com Rust
Linguagens de Programação e Runtimes 20/02/2026

Introdução ao desenvolvimento de sistemas com Rust

No desenvolvimento de sistemas modernos, a segurança de memória sempre foi um desafio central. Linguagens como C e C++ oferecem controle total sobre o hardware, mas abrem portas para vulnerabilidades graves: vazamentos de memória, buffer overflows e use-after-free. Rust surge como uma alternativa que combina o desempenho bruto dessas linguagens com garantias de segurança em tempo de compilação — sem a necessidade de um garbage collector.

Rust ownership explicado para quem vem de linguagens com garbage collector
Linguagens de Programação e Runtimes 07/02/2026

Rust ownership explicado para quem vem de linguagens com garbage collector

Se você vem de JavaScript, Python, Java ou Go, está acostumado com o garbage collector (GC) cuidando da memória para você. O GC é um processo que periodicamente varre o heap em busca de objetos que não são mais referenciados, liberando-os. Isso funciona, mas tem um custo: pausas imprevisíveis, latência extra e consumo de CPU que poderia estar sendo usado para sua lógica de negócio.

Macros em Elixir: escrevendo código que escreve código
Linguagens de Programação e Runtimes 01/02/2026

Macros em Elixir: escrevendo código que escreve código

Macros em Elixir são ferramentas de metaprogramação que permitem gerar código durante a compilação. Diferentemente de funções comuns, que operam em tempo de execução com valores, as macros operam em tempo de compilação com a própria estrutura do código — a Árvore Sintática Abstrata (AST). Isso significa que uma macro recebe código como entrada e produz código transformado como saída.

Dicas para depurar problemas de memória em Node.js
Linguagens de Programação e Runtimes 25/01/2026

Dicas para depurar problemas de memória em Node.js

O Node.js utiliza o motor V8 do Google para executar JavaScript, que implementa um garbage collector (GC) sofisticado. O gerenciamento de memória no V8 divide-se em duas áreas principais: heap (onde objetos e closures são alocados) e stack (onde variáveis locais e chamadas de função residem). O GC opera em gerações: objetos jovens (young generation) são coletados rapidamente, enquanto objetos que sobrevivem a múltiplas coleções são promovidos para a old generation.