As premiações Bossie de 2023 reconhecem as principais ferramentas de software livre do ano para desenvolvimento de software, gerenciamento de dados, análise, IA e aprendizado de máquina. Quando as folhas caem, o céu fica cinza, o frio começa a morder e todos nós anseiamos por um pouco de sol, sabemos que é hora das premiações de Melhor Software Livre, um ritual de outono que chamamos carinhosamente de Bossies.
Por 17 anos agora, os Bossies têm celebrado o melhor e mais inovador software livre. Como nos anos anteriores, nossas principais escolhas para 2023 incluem uma mistura incrivelmente eclética de tecnologias. Entre os 25 vencedores, você encontrará linguagens de programação, tempos de execução, frameworks de aplicativos, bancos de dados, motores de análise, bibliotecas de aprendizado de máquina, modelos de linguagem grande (LLMs), ferramentas para implantar LLMs, e pelo menos um ou dois projetos que ultrapassam tais descrições diretas.
Se há um problema importante a ser resolvido em software, você pode apostar que um projeto de software livre surgirá para resolvê-lo. Leia mais para conhecer nossos Bossies de 2023.
- Apache Hudi: Ao construir um lago de dados aberto ou uma casa de dados no lago, muitas indústrias requerem uma plataforma mais evolutiva e mutável. O Apache Hudi não apenas fornece um formato de dados rápido, tabelas e SQL, mas também os habilita para análises de baixa latência e em tempo real. Ele se integra com Apache Spark, Apache Flink e ferramentas como Presto, StarRocks e Amazon Athena. Em suma, se você está procurando análises em tempo real no lago de dados, Hudi é uma aposta realmente boa.
- Apache Iceberg: Quem se importa se algo “escala bem” se o resultado demora uma eternidade? HDFS e Hive eram simplesmente muito lentos. Entre o Apache Iceberg, que funciona com Hive, mas também diretamente com Apache Spark e Apache Flink, bem como outros sistemas como ClickHouse, Dremio e StarRocks. O Iceberg fornece um formato de tabela de alto desempenho para todos esses sistemas, ao mesmo tempo que permite a evolução completa do esquema, compactação de dados e reversão de versão. O Iceberg é um componente chave de muitos lagos de dados abertos modernos.
- Apache Superset: Por muitos anos, o Apache Superset tem sido um monstro da visualização de dados. O Superset é praticamente a única escolha para quem deseja implantar análises de autoatendimento, voltadas para o cliente ou para o usuário em escala. O Superset fornece visualização para praticamente qualquer cenário de análise, incluindo tudo, desde gráficos de pizza a gráficos geoespaciais complexos. Ele fala com a maioria dos bancos de dados SQL e fornece um construtor de arrastar e soltar, bem como um IDE SQL. Se você vai visualizar dados, o Superset merece sua primeira olhada.
- Bun: Uma Nova Ferramenta para JavaScript Quando você pensava que o JavaScript estava se estabilizando em uma rotina previsível, surge o Bun. O nome aparentemente frívolo esconde um objetivo sério: colocar tudo que você precisa para o JS do lado do servidor – tempo de execução, empacotador, gerenciador de pacotes – em uma única ferramenta. Torná-lo um substituto direto para o Node.js e NPM, mas radicalmente mais rápido. Esta simples proposta parece ter feito do Bun a parte mais disruptiva do JavaScript desde que o Node virou a mesa. O Bun deve parte de sua velocidade ao Zig; o resto se deve à obsessão do fundador Jared Sumner com o desempenho. Você pode sentir a diferença imediatamente na linha de comando. Além do desempenho, apenas ter todas as ferramentas em um pacote integrado torna o Bun uma alternativa atraente para o Node e Deno.
- Claude 2: Uma Nova Ferramenta de IA da Anthropic O Claude 2 da Anthropic aceita até 100 mil tokens (cerca de 70 mil palavras) em um único prompt e pode gerar histórias de até alguns milhares de tokens. O Claude pode editar, reescrever, resumir, classificar, extrair dados estruturados, fazer QA com base no conteúdo e muito mais. Ele tem o maior treinamento em inglês, mas também se sai bem em uma série de outros idiomas comuns. O Claude também tem um conhecimento extenso de linguagens de programação comuns. O Claude foi treinado constitucionalmente para ser útil, honesto e inofensivo (HHH), e foi amplamente testado para ser mais inofensivo e mais difícil de ser provocado para produzir saídas ofensivas ou perigosas. Ele não treina com seus dados ou consulta a internet para respostas. O Claude está disponível para usuários nos EUA e no Reino Unido como uma versão beta gratuita, e foi adotado por parceiros comerciais como Jasper, Sourcegraph e AWS.
- CockroachDB: Um Banco de Dados SQL Distribuído CockroachDB é um banco de dados SQL distribuído que permite transações ACID fortemente consistentes. Ele resolve um problema-chave de escalabilidade para aplicações de alto desempenho e com muitas transações, permitindo a escalabilidade horizontal de leituras e gravações de banco de dados. O CockroachDB também suporta implantações multi-região e multi-nuvem para reduzir a latência e cumprir regulamentos de dados. Exemplos de implantações incluem a Plataforma de Dados da Netflix, com mais de 100 clusters de produção CockroachDB suportando aplicações de mídia e gerenciamento de dispositivos. Clientes de destaque também incluem Hard Rock Sportsbook, JPMorgan Chase, Santander e DoorDash.
- CPython: Melhorando o Desempenho do Python Aprendizado de máquina, ciência de dados, automação de tarefas, desenvolvimento web… há inúmeras razões para amar a linguagem de programação Python. Infelizmente, o desempenho em tempo de execução não é uma delas – mas isso está mudando. Nas duas últimas versões, Python 3.11 e Python 3.12, a equipe de desenvolvimento central do Python revelou uma série de atualizações transformadoras para o CPython, a implementação de referência do interpretador Python. O resultado é um tempo de execução Python que é mais rápido para todos, não apenas para os poucos que optam por usar novas bibliotecas ou sintaxe de ponta. O palco foi montado para ainda mais melhorias com planos para remover o Global Interpreter Lock, um obstáculo de longa data para o verdadeiro paralelismo multithreaded no Python.
- DuckDB: Um Banco de Dados OLAP Leve Bancos de dados OLAP são supostos ser enormes, certo? Ninguém descreveria IBM Cognos, Oracle OLAP, SAP Business Warehouse, ou ClickHouse como “leves”. Mas e se você precisasse apenas de OLAP suficiente – um banco de dados de análise que roda embutido, no processo, sem dependências externas? DuckDB é um banco de dados de análise construído no espírito de projetos pequenos mas poderosos como SQLite. DuckDB oferece todos os recursos familiares de RDBMS – consultas SQL, transações ACID, índices secundários – mas adiciona recursos de análise como junções e agregações em grandes conjuntos de dados. Ele também pode ingerir e consultar diretamente formatos comuns de big data como Parquet.
- HTMX e Hyperscript: Aprimorando o HTML Você provavelmente pensou que o HTML nunca mudaria. O HTMX pega o HTML que você conhece e ama e o estende com melhorias que facilitam a escrita de aplicações web modernas. O HTMX elimina grande parte do JavaScript padrão usado para conectar as interfaces de usuário da web aos back-ends. Em vez disso, ele usa propriedades HTML intuitivas para realizar tarefas como emitir solicitações AJAX e preencher elementos com dados. Um projeto irmão, Hyperscript, introduz uma sintaxe semelhante ao HyperCard para simplificar muitas tarefas do JavaScript, incluindo operações assíncronas e manipulações do DOM. Juntos, HTMX e Hyperscript oferecem uma visão alternativa ousada à tendência atual em frameworks reativos.
- Istio: Simplificando a Comunicação entre Microserviços Simplificando a rede e as comunicações para microserviços baseados em contêineres, o Istio é uma malha de serviço que fornece roteamento de tráfego, monitoramento, registro e observabilidade, ao mesmo tempo que melhora a segurança com recursos de criptografia, autenticação e autorização. O Istio separa as comunicações e suas funções de segurança da aplicação e da infraestrutura, permitindo uma configuração mais segura e consistente. A arquitetura consiste em um plano de controle implantado em clusters Kubernetes e um plano de dados para controlar políticas de comunicação. Em 2023, o Istio se formou na incubação CNCF com grande tração na comunidade nativa da nuvem, incluindo apoio e contribuições do Google, IBM, Red Hat, Solo.io e outros.
- Kata Containers: Unindo Velocidade e Isolamento Combinando a velocidade dos contêineres e o isolamento das máquinas virtuais, o Kata Containers é um tempo de execução de contêiner seguro que usa Intel Clear Containers com Hyper.sh runV, um tempo de execução baseado em hipervisor. O Kata Containers funciona com Kubernetes e Docker, enquanto suporta várias arquiteturas de hardware, incluindo x86_64, AMD64, Arm, IBM p-series e IBM z-series. Google Cloud, Microsoft, AWS e Alibaba Cloud são patrocinadores de infraestrutura. Outras empresas que apoiam o Kata Containers incluem Cisco, Dell, Intel, Red Hat, SUSE e Ubuntu. Um lançamento recente trouxe contêineres confidenciais para dispositivos GPU e a abstração do gerenciamento de dispositivos.
- LangChain: Facilitando o Desenvolvimento de Aplicações com Modelos de Linguagem: LangChain é um framework modular que facilita o desenvolvimento de aplicações alimentadas por modelos de linguagem. O LangChain permite que os modelos de linguagem se conectem a fontes de dados e interajam com seus ambientes. Os componentes do LangChain são abstrações modulares e coleções de implementações das abstrações. As cadeias prontas para uso do LangChain são montagens estruturadas de componentes para realizar tarefas de nível superior específicas. Você pode usar componentes para personalizar cadeias existentes e para construir novas cadeias. Atualmente, existem três versões do LangChain: uma em Python, uma em TypeScript/JavaScript e uma em Go. Há aproximadamente 160 integrações do LangChain até o momento.
Software Livre: Uma Jornada de Liberdade e Colaboração
O software livre é um termo que se refere a programas de computador que são distribuídos sob uma licença que permite aos usuários executar, copiar, distribuir, estudar, modificar e melhorar o software. Essas liberdades formam a base do que chamamos de “software livre”, um termo que foi cunhado no final dos anos 80 pela Free Software Foundation (FSF).
A ideia por trás do software livre é simples, mas poderosa: quando os usuários têm liberdade para estudar, modificar e compartilhar software, eles podem usar, personalizar e melhorar o software de maneiras que beneficiam a todos. Isso contrasta com o software proprietário, onde os usuários não têm permissão para ver o código-fonte ou fazer alterações, e onde o uso do software é restrito por termos de licença.
O software livre tem suas raízes na comunidade de hackers dos anos 60 e 70, que acreditava na colaboração e na partilha de conhecimentos. No entanto, foi Richard Stallman, um programador do MIT, que realmente deu início ao movimento do software livre. Em 1983, Stallman lançou o Projeto GNU, um esforço para criar um sistema operacional completamente livre. O projeto GNU levou ao desenvolvimento de muitas ferramentas importantes de software livre, incluindo o compilador GCC e o editor de texto Emacs.
Em 1985, Stallman fundou a Free Software Foundation para apoiar o movimento do software livre. A FSF foi responsável por muitas iniciativas importantes, incluindo a criação da Licença Pública Geral GNU (GPL), uma licença de software livre amplamente utilizada que garante as liberdades do software livre.
O software livre tem muitas vantagens. Para os usuários, a liberdade de usar, copiar e modificar software significa que eles podem personalizar o software para suas necessidades, melhorar o software e compartilhar suas melhorias com a comunidade. Isso leva a um software de melhor qualidade, pois as melhorias são compartilhadas e todos podem se beneficiar delas.
Para os desenvolvedores, o software livre oferece a oportunidade de aprender com o trabalho de outros e melhorar suas habilidades. Ao contribuir para projetos de software livre, os desenvolvedores podem ganhar experiência, melhorar suas habilidades e construir uma reputação na comunidade.
O software livre também tem benefícios sociais. Ao permitir que todos usem, copiem e modifiquem software, o software livre ajuda a reduzir a divisão digital e promove a igualdade de acesso à tecnologia. Além disso, o software livre promove a transparência e a responsabilidade, pois qualquer pessoa pode ver o código-fonte e verificar o que o software está fazendo.
Apesar de todas essas vantagens, o software livre enfrenta muitos desafios. Um dos maiores desafios é a falta de entendimento sobre o que é software livre e por que ele é importante. Muitas pessoas confundem “software livre” com “software grátis”, mas o “livre” em software livre se refere à liberdade, não ao preço. Outro desafio é que muitas empresas preferem software proprietário porque acreditam que ele oferece melhor suporte ou é mais confiável.
No entanto, apesar desses desafios, o software livre continua a crescer e prosperar. Hoje, há milhares de projetos de software livre, desde pequenas bibliotecas e ferramentas até grandes sistemas operacionais como o GNU/Linux. Além disso, muitas das tecnologias que impulsionam a Internet, incluindo o servidor web Apache e o sistema de gerenciamento de banco de dados MySQL, são software livre.
Em conclusão, o software livre é uma poderosa força para a liberdade, colaboração e inovação. Ele permite que os usuários controlem sua própria tecnologia e promove a partilha de conhecimentos e a melhoria coletiva. Embora o software livre enfrente desafios, sua filosofia e seus benefícios garantem que ele continuará a desempenhar um papel importante no mundo da tecnologia.