Inteligências Artificiais

e como estas podem ajudar o desenvolvedor front-end

Miguel Ângelo Melo Teixeira
MCTW_TDW
7 min readFeb 1, 2023

--

Resumo

Neste ensaio teórico falo de 3 ferramentas tecnológicas com IA embutida e faço uma observação sobre como estas podem ajudar o desenvolvedor front-end. Finalmente, concluo de que forma podem ser benéficas e que impacto podem ter num futuro próximo.

Introdução

O futuro está ao virar da esquina. Hoje em dia presenciamos o desenvolvimento de muitas tecnologias robustas e inovadoras criadas com o propósito de tornar as nossas vidas mais simples. Vemos todo o tipo de plataformas e aplicações espalhadas por toda a web, assim como equipamentos físicos ou serviços modernos virados para a alimentação e o entretenimento. Dentro deste pensamento de melhorar e facilitar a vivência do nosso quotidiano, seja na resolução de tarefas mais complexas ou simplesmente na vontade de aprimorar as nossas experiências físicas e/ou sensoriais, temos testemunhado uma atitude tecno-progressista na mente dos muitos desenvolvedores e criadores de soluções revolucionárias faz bastante tempo.

Desde o nosso passado, enquanto civilização, sempre tivemos a vontade de conceber tecnologias que conseguissem agir e pensar como um ser humano e que nos pudessem ajudar. Com base neste desejo, e nas capacidades tecnológicas que possuímos hoje em dia, tornou-se possível elaborar e fazer crescer estas novas ferramentas poderosas às quais chamamos inteligências artificiais.

Durable

Durable é um exemplo de aplicação web no-code (CMS e CRM) para o desenvolvimento e gestão de websites baseada em inteligência artificial. Nesta plataforma, o utilizador terá inicialmente que preencher um pequeno formulário respondendo a algumas questões como: propósito do website / a que área de negócio se direciona e nome do negócio. Depois de pouco tempo, é gerada a primeira proposta do website com algumas páginas, texto e imagens. O utilizador pode sempre personalizar o resultado dos seus componentes como o estilo dos botões, cores e fontes. Outra das opções que temos é reconstruir todo o website, do início, com a inteligência artificial.

Esta plataforma, apesar da facilidade e rapidez que traz na construção de um website, ainda possui bastantes limitações, não permitindo edição do código, o que restringe a liberdade que o utilizador tem na conceção das suas páginas.

ChatGPT

Quanto ao ChatGPT, este é um ótimo exemplo de uma aplicação web que recorre à inteligência artificial para providenciar respostas elaboradas aos seus utilizadores. Apesar de todo o tipo de respostas passiveis de serem obtidas, o ChatGPT não foi desenhado com o propósito de escrever código, no entanto, continua a ser uma ferramenta bastante forte e capaz de proporcionar apoio ao programador em diferentes aspetos tais como: gerar algumas linhas de código isoladas ou dar, consoante convenções, possíveis sugestões de resolução de problemas de código (especialmente se estes se tratarem de problemas teóricos).

Dentro deste contexto, esta ferramenta poderia ser usada para:

  • Gerar documentação para projetos de código;
  • Ajudar o programador em processos de debugging recomendando soluções viáveis;
  • Ajudar com refatoração de código sugerindo alternativas para a escrita do mesmo de forma a torná-lo mais eficiente e/ou mais legível.

Algumas, possíveis, sugestões da IA para refatoração do código poderiam ser:

  • Propor novos nomes para variáveis;
  • Propor divisões de funções grandes em mais pequenas;
  • Alertar para código repetitivo;

Exemplo

Para exemplificar a aplicabilidade de contextos do ChatGPT, decidi começar por pedir-lhe uma lista de 10 frutos diferentes que podem ser encontrados em Portugal.

Tell me 10 different fruits that can be found in Portugal

Após obter esta lista de frutos, pedi-lhe para que me construísse um array de objetos em JavaScript, no qual todos os frutos estivessem dispostos por nome.

with those fruits provide me array of objects disposed by name. Use JavaScript

Neste exemplo, o ChatGPT mostrou-se bastante capaz de seguir as instruções que lhe foram dadas e o seu nível de complexidade ainda podia escalar um pouco mais, no entanto, a partir de certo nível, as sugestões de código podem demonstrar-se poupo consistentes em casos mais complexos, podendo até mesmo, entregar código com problemas de performance (se falarmos de Regex).

Apesar de não ter sido concebido para tal, o ChatGPT mostra-se qualificado para nos ajudar com algum código ou até mesmo com perguntas teóricas sobre o mesmo, contudo, ainda é uma ferramenta com os seus limites neste departamento e ao qual o programador apenas poderá usar como suporte adjacente ao seu projeto.

Github Copilot

Por fim, o Github Copilot é um dos melhores exemplos de ferramenta de inteligência artificial incorporada num editor de código. Esta ferramenta foi criada pela Microsoft e pela OpenAI, desenhada especificamente com o propósito de assistir o programador durante o desenvolvimento dos seus projetos.

Esta ferramenta também faz uso de um enorme dataset de código disponível com o objetivo de prever o próximo passo do programador, funcionando como um programador auxiliar.

Esta pode sugerir novas linhas de código consecutivo àquele que foi escrito previamente ou até mesmo, escrever funções inteiras com base numa descrição fornecida previamente. Consoante o código sugerido, pode também apresentar alguma documentação que ajude o programador a entender a sugestão dada. Relativamente à componente menos técnica, esta ferramenta promove ao programador uma maior eficiência no seu trabalho, poupando tempo com a escrita de longos e complexos blocos de código.

Exemplo

De forma a testar o Github Copilot em ação, decidi criar um StopWatch (cronómetro) utilizando apenas HTML e JavaScript.

Inicialmente, comecei por escrever a estrutura básica do HTML, um Heading (para levar o Github Copilot a ter já uma ideia daquilo que eu pretendia desenvolver) e um parágrafo com 2 <span> relativos aos números do cronómetro.

Logo a seguir, o Github Copilot começou de imediato a sugerir-me algumas linhas de código relativas aos botões do cronómetro.

Chegando ao JavaScript, dentro do window.onload, comecei a escrever algumas variáveis e logo quando ia escrever a segunda, o Github Copilot começou-me a sugerir, pelo contexto, todas as variáveis que eu iria precisar.

Neste momento, ao serem-me sugeridas varáveis associadas aos Ids, encontrei uma discrepância entre o id dos botões sugerido pela IA no HTML e o Id que esta me sugeria no JavaScript.

(HTML id = “start” | JavaScript id = “button-start”)

Para corrigir este impasse, fui ao HTML e troquei para as novas sugestões presentes no código do JavaScript.

Logo a seguir à inserção das variáveis, comecei por escrever o nome da função para o começo do cronómetro e assim que o faço, o Github Copilot sugere-me toda a função por completo.

Por fim, quando ia a começar a escrever as funções mais pequenas relativas aos eventos OnClick dos botões do cronómetro, o GitHub Copilot volta a sugerir-me todo o código associado a estas funções, percebendo o contexto da aplicação.

Para finalizar a aplicação, voltei ao HTML e chamei o ficheiro de JavaScript no final da página.

Após testar, confirmei que todos os botões estavam funcionais e que esta pequena aplicação tinha sido rápida e eficazmente desenvolvida. Como resultado final e sem a componente do CSS, obtive o seguinte produto.

Conclusão

Hoje em dia já podemos experienciar IA embutida em tecnologia de muitas formas diferentes, tais como ferramentas capazes de nos ajudar com pequenas partes de design, código, resolução de dúvidas, conselhos, etc. No entanto, não podemos contar ainda com a IA para nos fazer todo o trabalho, o que é um aspeto positivo, visto que, neste momento, o desenvolvedor terá de continuar a ser o cérebro por de trás de todo o projeto, tendo ainda assim, acesso a estas ferramentas que lhe facilitam todo o trabalho e sem o risco de perder já o seu emprego.

O desenvolvedor ainda terá de se preocupar com toda a componente humana e experiência do utilizador, até porque, a experiência do ser humano face às novas tecnologias tem vindo a mudar ao longo dos anos, sendo considerado algo dinâmico.

Acredito que futuramente as inteligências artificiais poderão tornar-se bastante mais poderosas, sim, no entanto, haverá sempre toda uma componente humana que terá de ser cuidadosamente aplicada.

--

--