Ao incorporar as capacidades da IA generativa em programas, podemos criar mecanismos que antes eram inatingíveis com programas convencionais.
Além disso, à medida que a IA generativa se tornar capaz de gerar programas automaticamente, poderemos criar e executar programas livre e facilmente, com base nas nossas ideias.
Até agora, criei sistemas que conseguem traduzir os meus artigos de blog para inglês e publicá-los em blogs em inglês, criar vídeos explicativos a partir de vídeos de apresentação e carregá-los para o YouTube, e gerar e publicar os meus próprios sites de blog com índices, categorias e etiquetas.
Desta forma, um sistema que utiliza conteúdo original como matéria-prima e incorpora funcionalidades de IA generativa para produzir vários conteúdos derivados pode ser chamado de fábrica intelectual.
Desenvolvi também uma aplicação web para operar esta fábrica intelectual e gerir o seu estado, tornando-a disponível tanto em PCs como em smartphones. Além disso, as partes que realizam o processamento automatizado acionado por eventos são executadas em máquinas virtuais preparadas para processamento em lote no backend.
Assim, desenvolvi sozinho os frontends para PC e smartphone, o backend do servidor web, o processamento em lote em máquinas virtuais e a infraestrutura para estes, tudo com o apoio da IA generativa.
Isto não é apenas engenharia de full-stack; pode ser chamado de engenharia omnidirecional, pois envolve o desenvolvimento abrangente de vários aspetos do sistema.
Além disso, ao melhorar a usabilidade da aplicação web desenvolvida ou adicionar novas funcionalidades, posso delegar a programação à IA generativa, permitindo melhorias fáceis enquanto a utilizo.
Isto torna o software ainda mais flexível e fluido do que o software tradicional, permitindo-me criar algo que se adapta perfeitamente aos meus padrões de uso. Chamo a isto "liquidware".
De facto, desenvolvi e estou atualmente a utilizar estas ferramentas. Não são meros conceitos, mas já uma realidade no desenvolvimento de software.
Embora ainda não o tenha desenvolvido, prevejo que, no campo dos sistemas de negócios, a metodologia de desenvolvimento conhecida como "desenvolvimento orientado a processos de negócios" se tornará uma realidade.
Esta é uma abordagem que não visa a otimização global de programas, o que complica os sistemas, mas sim segmenta os módulos de software por processos de negócios individuais.
Apenas a definição da estrutura básica da interface do utilizador, a gestão de permissões do utilizador e os modelos de dados que precisam de ser partilhados entre processos de negócios são partilhados como a estrutura externa do sistema de negócios.
Outros processamentos internos do sistema e dados temporários são geridos ao nível do processo de negócios.
Isto pode incluir funções e estruturas de dados que podem ser partilhadas por dois ou mais processos de negócios. No entanto, se estas forem transformadas em módulos partilhados ou bibliotecas personalizadas, embora a reutilização do código e da qualidade melhore, a estrutura do software torna-se complexa, e as alterações exigem uma constante consideração dos impactos noutros processos de negócios.
Numa situação em que a IA generativa gera programas automaticamente, a desvantagem desta última supera a vantagem da primeira. Portanto, a abordagem orientada a processos de negócios, que enfatiza a otimização individual em vez da otimização global, torna-se racional.
Além disso, imagine unidades como "introduzir informações básicas de novos funcionários", "atualizar informações básicas de funcionários" e "procurar funcionários por nome" como processos de negócios individuais.
Em metodologias de desenvolvimento tradicionais, as suas respetivas interfaces de utilizador, processos de frontend, processos de backend e processos em lote são separados em diferentes ficheiros em diferentes diretórios. Além disso, cada um é desenvolvido por diferentes engenheiros.
No entanto, quando um único engenheiro realiza engenharia omnidirecional enquanto deixa a IA generativa fazer a programação, faz mais sentido consolidar o código necessário para um processo de negócios num único ficheiro ou pasta.
Além disso, os resultados da análise de requisitos, especificações de teste, resultados de teste e registos de revisão também podem ser consolidados no mesmo local.
Isto permite que todos os entregáveis da engenharia de software sejam geridos por processo de negócios. E porque não há necessidade de considerar a otimização global, as melhorias podem ser focadas dentro desse processo de negócios, e novos processos de negócios podem ser facilmente adicionados ao sistema de negócios.
Desta forma, o desenvolvimento de programas e o que pode ser desenvolvido com programas estão a mudar significativamente devido à IA generativa. Isto não é uma possibilidade futura; já é a realidade atual, e num futuro próximo, a sua completude só pode aumentar, e a próxima fase deve avançar para além disso.
Sistemas de Simulação
O que pode ser realizado por programas não se limita aos sistemas de negócios e fábricas intelectuais aqui mencionados.
As áreas restantes que não mencionei podem ser amplamente classificadas como sistemas de simulação.
Quer se trate de resolver uma equação física simples com uma única fórmula analítica ou de calcular fenómenos físicos complexos com programas iterativos, ambos podem ser chamados de sistemas de simulação.
Além disso, os sistemas de simulação podem ser utilizados não só na física, mas também na química, biologia, ou mesmo sociologia e economia. Além disso, as simulações são aplicadas não só na academia, mas também em campos como a engenharia, medicina, design institucional e gestão de negócios.
Os jogos também são um tipo de sistema de simulação. Em qualquer jogo, pode-se dizer que a física, a sociedade, as regras, etc., dentro do mundo desse jogo estão, por assim dizer, a ser simuladas.
Para além disso, também realizamos um tipo de simulação quando planeamos as nossas vidas, viagens ou como gastar o nosso dinheiro de bolso.
Estas simulações têm sido realizadas de várias formas: criando e executando programas, formulando e calculando equações em papel, pensando na cabeça, organizando ideias com texto e setas num quadro branco, ou desenhando gráficos no Excel.
Desenvolver um programa de simulação para um problema específico permite simulações mais complexas do que as equações analíticas. No entanto, requer habilidades de programação, esforço e tempo.
Além disso, o modelo de simulação precisa de ser claramente definido, o que requer habilidades, esforço e tempo para consideração.
Adicionalmente, as simulações só podiam ser realizadas de formas que pudessem ser expressas por programas, e até agora, apenas o que podia ser expresso computacionalmente podia ser simulado.
A IA generativa vai mudar significativamente esta situação.
A IA generativa não só permite o fácil desenvolvimento de programas de sistemas de simulação, mas também, ao incorporar a IA generativa em sistemas de simulação, elementos que não podem ser expressos por fórmulas matemáticas também podem ser simulados. Isto permite elementos de simulação qualitativos ambíguos e simulações envolvendo agentes inteligentes semelhantes a humanos.
Além disso, esses modelos de simulação podem ser expressos não só em fórmulas matemáticas, mas também em linguagem natural e interpretados pela IA generativa.
Isto tornará mais fácil sistematizar as várias simulações que realizamos em diversas situações.
Isto permitir-nos-á obter resultados de simulação mais precisos, eficientes e eficazes, reduzindo a possibilidade de supervisão e de suposições enviesadas.
Além disso, ao discutir ou considerar problemas complexos, será possível usar sistemas de simulação para discussão e consideração, em vez de depender de simulações mentais individuais.
Isto aumenta a precisão da deliberação e torna as discussões mais construtivas. Isto porque, em vez de apontar a inteligência ou os erros de pensamento uns dos outros, as discussões podem focar-se em pontos claros, como o modelo subjacente da simulação, quaisquer omissões ou elementos em falta, como as partes altamente incertas são estimadas e quais os indicadores entre os resultados que são enfatizados.
À medida que os sistemas de simulação se tornarem fáceis de criar, a forma como pensamos mudará do pensamento linear, que se foca na intuição, suposições e na malícia ou erros de outros, para o pensamento de simulação.
É como procurar na internet no smartphone durante uma conversa para verificar fontes de notícias, Wikipedia ou fontes primárias. Já não há necessidade de argumentos intermináveis baseados apenas nas memórias de cada um.
Durante uma discussão, a IA generativa organizará o modelo de simulação, as regras de simulação e as pré-condições a partir do conteúdo da discussão.
As pessoas que discutem precisam apenas de adicionar ou corrigir informações e premissas a esse modelo e regras, e depois confirmar os resultados da simulação. Assim como quando uma fonte de notícias fiável é encontrada, esses resultados de simulação podem servir como base comum para uma discussão mais aprofundada.
Isto libertará os ouvintes da era de se perguntarem quem está certo ou quem é fiável. Também deixarão de perder a essência ao tentar compreender o jargão obscuro e os conceitos que aparecem nas discussões.
Apenas precisarão de considerar coisas muito simples: como avaliar a incerteza e quais os valores a priorizar.