ChatGPT é assustadoramente bom em escrever código.
Todo mundo já ouviu falar ChatGPT nesta fase. É um chatbot com inteligência artificial que utiliza modelos de processamento de linguagem natural para produzir respostas a perguntas complicadas. Essas respostas podem nem sempre ser precisas, mas tendem a ser detalhadas o suficiente para que você possa verificar os fatos com bastante facilidade. E se você pegasse o ChatGPT e tentasse escrever código com ele?
Acontece que isso é algo que você pode fazer com vários graus de sucesso, dependendo dos idiomas que deseja usar e do que deseja alcançar com eles. Eu o testei para ver como ele se sairia em diferentes linguagens de programação para concluir diferentes tarefas. Também não farei nenhuma alteração no código que o ChatGPT produz, apenas o guiarei para criar um código funcional se o código que ele criar não funcionar.
Usei três linguagens que já conheço para testar o ChatGPT: Python, C e Java. Os resultados foram particularmente surpreendentes, pois ele lutou um pouco com o Python por causa da natureza abstrata do que eu estava pedindo para fazer, mas ele lidou com C e Java básico com facilidade. eu também tenho
criou um repositório GitHub com todo o código aqui acessível para que você mesmo possa experimentá-lo.Verificação automática de página em Python
Python é minha linguagem de programação favorita para trabalhar, e isso graças ao poder que tem e à sua simplicidade de uso. Eu escrevi muitas ferramentas em Python no passado para automatizar partes do meu fluxo de trabalho, e minha tese de bacharelado em ciência da computação foi feita inteiramente por meio do Python. Pedi ao ChatGPT para escrever um programa que pudesse escanear uma página da Web em busca de alterações periódicas, e ele funcionou.
O problema com o código acima que ele me fornece é que ele não simula um navegador real. Os sites verificam um parâmetro em seu navegador chamado "agente do usuário" e isso define que tipo de navegador você está usando ou se é um bot. Muitos sites não aceitam conexões que não definam um agente de usuário, e me deparei com isso quando indiquei para o XDA. Pedi para adicionar cabeçalhos personalizados à solicitação para simular um navegador real e ele obedeceu.
O código fornecido acima funciona para sites estáticos, mas o problema é que grande parte do conteúdo que você lê online é dinâmico. Se uma página retornar a hora atual, por exemplo, em algum lugar da página, o código acima sempre dirá que a página foi alterada toda vez que for atualizada. Quando indiquei isso ao ChatGPT, ele ficou confuso e me deu uma solução totalmente incorreta para o problema.
O que foi dito acima é uma explicação incorreta de como os hashes funcionam. O ponto de um hash é que uma pequena alteração na entrada resultará em uma grande diferença no hash, pois dois hashes são basicamente incomparáveis. Quando eu disse que era uma afirmação incorreta sugerir que os hashes eram a melhor maneira de comparar e procurar alterações, ele respondeu com um pedido de desculpas e me deu algo que fez trabalhar.
O único problema que descobri com o código acima é que, para sites maiores, é computacionalmente caro, pois usa processamento de linguagem natural para comparar e calcular a diferença entre eles. Ainda assim, um limite de 5% no conteúdo alterado é bom o suficiente para a maioria dos sites, se você deseja verificar se há atualizações e pode ajustar o limite, se necessário. Demorou, mas no final chegou.
Há muitas razões pelas quais você pode querer um web scraper como um desses e, embora existam ferramentas que podem fazer isso, é legal criar o seu próprio. Você pode usá-los para rastrear pacotes ou, no meu caso, procurar novas propriedades que vão para aluguel em sites de propriedades locais.
Gerador de senha em C
Com a segurança sendo a última moda recentemente, é importante que você use senhas seguras e também use autenticação de dois fatores. Se você tiver dificuldades com a parte de senha segura, é muito fácil escrever um gerador de senha em C. O ChatGPT lidou com isso com bastante facilidade, e o único problema que descobri foi que, quando pedi para criar um gerador de senhas, ele não importou a biblioteca String C. Eu disse isso e ele adicionou às importações no início.
Aumentei a variável global MAX_LENGTH para 32 caracteres em vez de 16 e ela gerou a seguinte senha para mim: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. É seguro dizer que funciona!
Calculadora em Java
Um programa bastante básico com o qual muitas pessoas têm experiência em Java é a criação de uma calculadora. É um dos primeiros desafios que os cientistas da computação enfrentarão em suas carreiras de programação, independentemente da linguagem que aprenderem primeiro. Pedi ao ChatGPT para escrever uma calculadora em Java que fizesse uso de pelo menos duas classes, e funcionou perfeitamente na primeira tentativa.
Esta é a classe da calculadora:
Esta é a classe principal:
Criar essas duas classes no meu IDE, IntelliJ, e executar a classe principal resulta em um funcionamento perfeito programa de calculadora que recebe dois números e um operador para adição, subtração, multiplicação ou divisão.
ChatGPT é decente em programação
Embora eu não confie no ChatGPT para fazer tudo por você, é claro que ele pode fazer um bom trabalho na criação de programas e levar em consideração as críticas quando há problemas. Fiquei surpreso ao vê-lo sugerir um algoritmo de hash como uma forma de discernir entre pequenas alterações em uma página da web, mas, além disso, não teve problemas com as tarefas mais básicas. Mesmo no caso do programa Python, ele teve a ideia certa desde o início e, em páginas mais estáticas, teria funcionado perfeitamente.
É claro que o ChatGPT não substituirá exatamente os programadores tão cedo, mas está a caminho de se tornar uma ferramenta muito boa na força de trabalho. Copiloto do GitHub, por exemplo, utiliza GPT tecnologia para ajudar as pessoas a escrever código, e só vai ficar mais avançada com o passar do tempo. Mesmo se você for um programador iniciante, esse tipo de ferramenta pode potencialmente ajudá-lo a aprender se você confiar totalmente nela, mas às vezes ela comete erros estranhos, como vimos.
É claro que os exemplos fornecidos aqui são muito básicos e a maioria dos programadores seria capaz de escrevê-los com bastante facilidade, mas esse não é o ponto. É assustadoramente bom em criar soluções para tarefas simples e parece lidar bem com tarefas mais complexas também. Estamos ansiosos para ver onde ferramentas como essas irão no futuro e ajudar as pessoas a melhorar suas habilidades.