🛟 IAs assistentes de código para conhecer e testar
Experimente algumas de graça no VSCode. Mais: Docker Desktop 4.31 com contêneineres "offline"; ES2024 aprovado e TypeScript 5.5 lançado, e CriticGPT, um GPT especialista em erros de código.
Assistentes de IA para programação são ferramentas que auxiliam tarefas como gerar código, ajudar a pensar no que deve ser feito e sugerir correções para bugs.
Já falamos sobre uma das principais delas aqui algumas vezes: o GitHub Copilot. Mas as opções não se resumem apenas ao assistente da Microsoft e já contam com concorrentes, no mínimo, interessantes.
Vamos dar uma olhada no cenário, com base em junho/2024 (as informações podem mudar com o tempo):
GitHub Copilot: não há muito como fugir dele, porque é a ferramenta mais usada e badalada do mercado. Tem a vantagem de levar a marca GitHub no nome, que é praticamente unânime entre desenvolvedores. Ganhando novos recursos gradativamente, o Copilot usa LLMs da OpenAI, como o Codex, nos bastidores, e é facilmente integrável ao VSCode. O porém fica por conta de não ter planos gratuitos. Assinaturas são de US$ 10/mês para uso individual, US$ 19/mês por pessoa para times e US$ 39/mês no plano enterprise (empresarial). No caso da assinatura enterprise, há recursos como fine-tuned do modelo para gerar melhores sugestões a partir dos projetos de código da empresa e mais recursos de segurança.
Tabnine: na mesma pegada, Tabnine é uma solução que vem ganhando adeptos pela qualidade e recursos. É um dos principais concorrentes do Copilot. Tem recursos gratuitos básicos, como autocompletar para códigos, que você pode testar no seu IDE preferido. Versões com mais recursos custam US$ 12/mês para uso individual ou pequenos times e US$ 39/mês para empresas. Tem diferenciais como não só levar em conta bases de código existentes para sugestões, mas de poder ser treinado especificamente no código de um produto ou de toda a empresa, o que torna a IA muito precisa nas respostas.
Codeium: também com uma comunidade crescente, é uma boa escolha para quem quer experimentar como um desses assistentes de IA funciona, já que oferece plano gratuito mais robusto que concorrentes para uso de desenvolvedores individuais. Permite integração com seu IDE preferido e até alguns recursos como se basear em arquivos de código seus para aprimorar respostas. Planos pagos são de US$ 12/mês, para uso individual e pequenos times, e preço a negociar na versão enterprise.
Amazon Q Developer: antes chamado Amazon CodeWhisperer, Amazon Q pode ser considerado um "retardatário" na corrida da IA. Mas, por se tratar de um produto Amazon, recursos para melhorias não devem faltar na empresa. Em Você pode testar gratuitamente no VSCode, Visual Studio. Há um plano pago de US$ 19/mês por usuário para mais funcionalidades. A principal vantagem da ferramenta é sua integração com produtos AWS, podendo ser usada diretamente nos serviços de nuvem da empresa. É uma boa dica para quem quer começar a experimentar um assistente de IA para programação.
AskCodi: outra ferramenta que vem ganhando popularidade e uma comunidade em torno, funciona para escrita, análise, ajuda e até conversão de imagens em código (segundo seu próprio marketing). Há um plano free, mas que oferece apenas 50 créditos para uso por mês e não tem outros recursos de concorrentes, como autocompletar para código, por exemplo. Há um plano Premium de US$ 99/ano e o Ultimate, de US$ 299/ano, mas ambos também têm limitações de créditos (500 e 3000 créditos, respectivamente).
Correm por fora uma variedade de outros assistentes, como Replit AI, assistente de IA do IDE online Replit, CodiumAI, Sourcegraph, Refact.ai, o próprio Devin (que trouxemos na primeira edição da newsletter, e que recebeu críticas após um marketing inicial meio barulhento).
Há também assistentes especialistas, como o CodeWP, uma IA só para códigos Wordpress, e uma fila de subprodutos feitos mais para investidores verem do que desenvolvedores usarem, como é típico do mercado de alto risco da IA.
Fora isso, é claro, as IAs baseadas em prompts que todos usamos, como ChaGPT, Claude, Gemini e outras, certamente são úteis ou "quebram um galho" de muitos desenvolvedores que não querem se dar ao luxo ou trabalho de instalar um assistente de IA e ter de lidar com suas eventuais complexidades.
Por ser um mercado muito novo e em rápido desenvolvimento, ainda não há rankings confiáveis que elejam criteriosamente uma ferramenta como melhor que outra. Usamos o senso comum e muitas leituras e avaliações informais (e na disponibilidade de versões gratuitas) para essa nossa lista.
Não se assuste se, em breve, algumas dessas ferramentas caírem no esquecimento ou nem existirem mais, e surgirem outras novas no lugar. É do jogo da tecnologia. Por hora, em uma posição mais segura e com chances de abocanhar mais mercado, aparentemente só o GitHub Copilot mesmo. Acompanharemos.
🐳 Docker Desktop 4.31 traz contêineres isolados da internet
A versão 4.31 do Docker Desktop, lançada em junho/2024, veio com novidades na segurança: contêineres air-gapped, que podem funcionar sem acesso à internet, protegendo ambientes de desenvolvimento e aplicações. Novidades também incluem compilações aceleradas em nuvem com Docker Build Cloud e suporte beta para Windows on Arm (WoA), Compose File Viewer (visualização de configurações do Docker Compose no Docker Desktop) e acesso a dados de build do GitHub Actions via Docker. Mais no anúncio oficial.
🚀 ECMAScript 2024 aprovado e TypeScript 5.5. lançado
O ECMAScript 2024, padrão que norteia os recursos JavaScript, foi aprovado em 26 de junho de 2024. Antecipamos e resumimos algumas das principais novidades na abertura da edição de 19 de abril da newsletter. Os recursos completos estão na especificação da ECMA, mas um resumo amigável pode ser lido aqui. Além disso, TypeScript 5.5 foi lançado. Também havíamos antecipado recursos do release candidate por aqui, na edição de 15 de junho. O anúncio oficial com todos os recursos pode ser conferido no DevBlogs da Microsoft.
🧐 CriticGPT consegue detectar mais bugs em código gerado por IA do que humanos
A OpenAI desenvolveu o CriticGPT, um modelo GPT-4 para ajudar humanos a avaliar e detectar erros em código gerados por outras IAs. Em testes, CriticGPT detectou 85% dos bugs inseridos em código gerado por IAs, enquanto revisores humanos detectaram apenas 50%. Os treinadores humanos da ferramenta também preferiram os códigos do CriticGPT a seus próprios códigos 63% das vezes. O modelo foi treinado em códigos com falhas intencionais. Um resumo do estudo pode ser conferido aqui. Aqui, o estudo completo.
🤖 Conheça um pouco de uma das maiores conferências para engenheiros de IA
Esta semana (25 a 27 de junho) aconteceu em São Francisco, EUA, a AI Engineer World's Fair, uma das maiores conferências técnicas de IA, voltada a engenheiros. A lista de palestrantes teve pessoas de praticamente todas as grandes empresas do setor (Microsot, AWS, Google), bem como das donas dos principais LLMs (OpenAI, Anthropic), até startups como Cognition (que desenvolve o Devin), mais GitHub, Mozilla etc. Um pouco do que rolou, para quem gosta ou quer acompanhar um lado mais técnico da IA, pode ser conferido nestas transmissões.
🧑🏫 Tentando aprender Promises e ficando só na "promessa"?
Que tal um um tutorial aprofundado sobre Promises em JavaScript e sua importância na programação assíncrona atual? "Promises From The Ground Up" é um guia sobre este recurso destinado a desenvolvedores iniciantes e intermediários. A lição aborda todo o caminho das Promisses, desde sua chegada como solução ao "Callback Hell", passando pelo beabá de como criá-las, encadeá-las, como funciona a passagem de dados e o tratamento de promessas rejeitadas, além de preparar terreno para entendimento de async/await.
❓Você sabe o que é duck typing?
Parece um pato? Nada como um pato? Grasna como um pato? Então, provavelmente, você está lidando com duck typing e talvez nem saiba. Responderemos na próxima.
A propósito, a resposta à pergunta anterior é: polimorfismo é um princípio da Programação Orientada a Objetos (OOP) que permite tratar objetos de diferentes classes de forma uniforme, através de uma interface comum. Ele se manifesta principalmente de duas formas: (1) em tempo de execução, objetos de classes derivadas podem ser tratados como objetos de uma classe base, e (2) métodos definidos em classes base podem ser sobrescritos por classes derivadas. Isso possibilita que um mesmo método tenha comportamentos diferentes dependendo do tipo de objeto que o executa, sem necessidade de verificar explicitamente o tipo do objeto. Este, este, este, este e este são bons recursos para aprender mais.
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 BeTalent!