BAYOU – Será o princípio do fim da profissão de programador?
A profissão de programador, mais na vertente de "debitar código", parece ter já os dias contados, isto porque foi "inventado" um software que recorre à Inteligência Artificial para programar.
Chama-se BAYOU e foi desenvolvida por uma equipa de cientistas da computação da Universidade de Rice, que recebeu financiamento dos militares e da Google.
BAYOU - O programador de apps em Android
BAYOU é uma ferramenta de aprendizagem profunda que funciona como um mecanismo de pesquisa para codificação: diga que tipo de programa deseja criar com algumas palavras-chave, e este software devolverá código java que fará o que está à procura, com base no seu melhor palpite.
A ferramenta foi desenvolvida por especialistas da Universidade de Rice e as verbas para a criação deste software foram disponibilizadas pelo exército americano e pela gigante das pesquisas, a Google. Num estudo publicado no início deste mês, o BAYOU foi descrito com fases de desenvolvimento e quais os tipos de problemas que pode ajudar os programadores a resolver.
Basicamente, o sistema BAYOU leu o código fonte de cerca de 1500 aplicações Android, algo como 100 milhões de linhas de Java. Todo esse código foi alimentado através da rede neuronal do BAYOU, resultando em AI que pode, sim, programar outro software.
Se o código que o BAYOU leu incluísse qualquer tipo de informação sobre o que o código faz, então o BAYOU também aprendeu o que esses programas pretendiam fazer e como eles funcionam. Essa informação contextual é o que permite à IA escrever software funcional baseado em apenas algumas palavras-chave e informações básicas sobre o que o programador deseja.
Para o mundo da informática pode ser uma boa notícia, isto é, com este tipo de aplicação de programação, baseada na Inteligência Artificial, será muito mais fácil qualquer pessoa, mesmo sem grandes conhecimentos na área de programação, criar software. Basta dar algumas linhas mestre do objetivo final, alguns exemplos funcionais e a IA irá gerar exemplos de código ou até poderá ser usado para analisar código escrito sobre determinado cenário de execução.
Neste momento, a aplicação BAYOU ainda está nos inícios da sua carreira e a equipa por trás dela ainda está à procura de cenários onde a sua tecnologia funcione e seja necessária.
Mas poderá substituir os programadores totalmente?
Não, pelo menos por agora este sistema apenas gera esboços de um programa, linhas de código relevantes para o trabalho que o programador está a fazer. Esses esboços ainda precisam de ser reunidos no trabalho maior e podem ter que ser adaptados ao projeto em questão.
Mesmo que a tecnologia esteja já a gatinhar, esse é um passo importante na procura de um programador de inteligência artificial, um objetivo de longa data para investigadores das ciências da computação. Outras tentativas de criar algo como BAYOU exigiam restrições extensas e estreitas para orientar os programadores em direção ao tipo correto de código.
Como o BAYOU pode trabalhar com apenas algumas palavras-chave, este consome menos tempo e é muito mais fácil de usar no geral para os operadores humanos.
Este artigo tem mais de um ano
E quem programa e desenvolve essa inteligência artificial?
Depois de estar programada, a própria IA evoluiu, desenvolve competências, pensa por si e considera cenários de ação. Estes são alguns pontos basilares da IA. Então, depois de criada, para que precisa do criador?
“Infelizmente” essa é a “pior” parte do AI! 😉
True!
No mundo da programação, um programa com inteligência artificial, acho difícil esse programa ganhar consciência. Normalmente, a AI programada são situações previstas pelo programador.
Depende. A AI pode aprender sozinha e por isso consegue criar situacoes nao programadas directamente. Ha muito exemplos sobre isso… recordo-me de um ponte a ser construida por uma AI em Amsterdam cujo objectivo era entender com essa mesma AI concebia a construcao.
A nivel de Design a AI consegue criar modelos impressionantes…
Nao é assim tao vdd, hoje em dia o que existe é inteligência por aprendizagem, machine learning, tens que dar muitos exemplos para a maquina aprender, mas dai a ganhar consciência esta um longo caminho ainda a percorrer
porque raio o chamaram de BAYOU? Porque não… SkyNet? xD
Para evoluir. porque mesmo “aprendendo” a utilizar o mesmo código em contextos diferentes, se não lhe forem fornecidas novas linhas de código, não será de as criar por si. Isto por enquanto, no futuro poderá ser diferente…
Um AI pode inclusive criar a propria linguagem de programacao. Nao ha limite, basicamente… ‘E so dar-lhe tempo, e portanto, capacidade de computacao.
Interessante ‘e que a capacidade de computacao ‘e cara e isso faz, novamente, que apenas os grandes players consigam “mandar nisto tudo”.
O paia…!! Moa tangue !
“meia dúzia de programadores de top” que depois vai substituir “milhões” de programadores medianos.
sneak, precisarias dos milhões…
*vão substituir
*senão precisarias
E como a Profissão de Programador muitas outras mais hão-de desaparecer. Só um exemplo dentro de 10 anos a profissão de médico de clínica geral sucede o mesmo , restando só especialistas e operadores com o fim adiado. Fruto da evolução e como em tudo existe sempre um culpado ou foi as grandes superfícies, ou os computadores , mas a criar mais estrago de monta neste aspeto vai ser IA.
Não poderia estar mais longe.
O medico será dos últimos a ver a sua profissão substituída por maquinas.
Sobre isto, é bem mais provável haver (e já há, mas ainda de forma limitada) computadores a auxiliar no diagnostico medico, ou “validando” o acto medico, ou fazendo algum tipo de pre triagem, do que substituir o medico.
Se falarmos de médicos de clínica geral que numa boa % só sabe curar constipações e mal….não sei se estará assim tão longe.
Não faz a mínima ideia do que diz. Um médico, tem a sua especialidade, e medicina geral e familiar é uma especialidade. E antes de estar anos a tirar a especialidade, já teve 6 anos de um curso de medicina. Medicina geral e familiar é a base do serviço nacional de saúde.
E já agora, quando vai a uma urgência de um hospital, saiba que não há a especialidade de urgência, a quase totalidade dos médicos que o vêm são de medicina geral é familiar. Aqueles que só “sabem curar constipações, e mal” , são o garante da sua saúde e dos seus familiares.
Substituir o medico ‘e muito facil. Ja foram feitos varios testes no UK em que a AI teve muito mais sucesso que o medico.
O maior factor que vai proteger a profissao, por enquanto, ‘e a responsabilizacao. Alguem tem que poder “ir preso”. Prender uma AI, por enquanto, ‘e estupido 🙂
Não é só por isso.
A IBM tem á disposição o Watson, que já foi testado no diagnóstico de determinada doença, com taxas de sucesso boas.
Mas o contexto neste caso é tudo, pois dar ao computador um conjunto de dados, é uma coisa, pedir para o computador interagir com um humano doente, queixoso, que mente, que o médico tem de observar, fazer um conjunto de perguntas decorrentes dessa interação, provavelmente mexer, escolher os exames a serem feitos, enfim, tanta variável.
Não há a mínima hipótese de substituição do médico.
Excelente, eu não aguento esses programadores, se acham muito. Pior que ele são os designs mequetrefes.
Nem os programadores e pelos vistos nem os professores de português 🙂
Nem tem de gostar de nós programadores, mas pode agradecer o trabalho pelo trabalho que fazemos. Permitimos que o Danilo, mesmo em muito mau português, pudesse escrever esse texto. Alegrei um pouco o seu dia? Pois é.
Não conhecia, ainda vou ler o pdf e site disponibilizado.
Agora ser o fim da arte de programar, longe, muito longe disso.
Só será atingível quando for possível dar todo o conjunto de especificações pretendidas, e depois sair da “maquina inteligente” um código que implemente todas essas especificações de forma segura, com recurso a métodos de verificação formal sempre que possível, e quando não for possível, que gere gere uma bateria de testes (dos mais variados tipos de testes). Tem ainda de automaticamente ser capaz de integrar diferente software que queiramos ligar à aplicação, e gerar todo o tipo de testes tb aqui para nos certificarmos que faz o é esperado.
E isto para um projecto novo, de raiz, porque para alterações em software já existente, então ai, estamos a anos luz de qualquer coisa automática.
Maquinas só substituem o homem em trabalhos mecânicos, ou com baixo grau de complexidade ou iteração. Há até um conjunto de trabalhos que poderiam já ser feitos totalmente de forma automática, mas programar, não é um desses casos, nem será nos próximos tempos.
Quem diria que, nos tempos mais próximos, a profissão de programador, esse profissional tão procurado no mercado de trabalho dos países ocidentais cuja curva de procura tem vindo a subir e até registou um salto de 3,6 % de 2016 para 2017 ( só nos USA os dados apontam para cerca de 800.000, e na UE os números devem ser superiores ) viesse a ser também ameaçada pelo chamado desemprego tecnológico causado por IA ?
A tecnologia ameaçada pela … tecnologia, até parece uma tautologia ! Será que o feitiço se voltou contra o feiticeiro ?
Isto a par com uma progressiva robotização na indústria, uma agricultura extensiva cada vez mais mecanizada, as caixas automáticas de levantamentos e pagamentos automáticos generalizadas, portagens automatizadas, correio físico substituído por digital, digitalização da moeda fiduciária, livros e publicações digitalizadas, automóveis sem condutor e demais exemplos que não param de surgir, todos eles conspirando em sinergia para uma dispensa de mão de obra e eliminação de postos de trabalho.
A tecnologia da IA expulsa a tecnologia de mão obra como a má moeda expulsa a boa moeda, um preocupante fenómeno qualitativamente diferente do desemprego da evolução em que um condutor de diligências sempre seria substituído por maquinistas de comboios ou motoristas de táxi.
A questão que se impõe é a seguinte :
Diminuindo o rendimento disponível das famílias face ao desemprego tecnológico diminui a procura de bens e serviços.
Assim sendo, como equilibrar uma oferta exponencialmente crescente com uma procura exponencialmente decrescente , ou seja, como conciliar tal desemprego tecnológico com o desenvolvimento económico ?
A Lei de Say, segundo a qual o produto cria o seu próprio rendimento, deixará de ser válida ?
Nada vai restar para os humanos, e cada vez são mais….
Mais depressa desaparece a profissão de quem escreveu este artigo…não é um comentário depreciativo. É simplesmente mais fácil por uma máquina a escrever notícias.
Grande joao S! este senhor sabe do que fala
Ao contrário de alguns, onde provavelmente o João e o zeze se incluirão, e não é um comentário depreciativo, não tenho qualquer problemas em me adaptar ao que o mundo nos oferece 😉 facilmente trabalho no que o futuro necessitar. Se as notícias forem escritas por uma máquina, eu crio uma empresa de fazer essas máquinas 😉 😀
” facilmente trabalho no que o futuro necessitar”, trolha…?!
Caro Vitor, capacidade de adaptação é digerir os comentários que fazem ao que o amigo escreve, coisa que ficou aquém com esta resposta. Volto a referir antes de desaparecer a profissão de programador muitas outras desaparecem primeiro.
A digestão é feita na mesma conta e medida, usando o mesmo critério, penso que o João não quis ofender nem foi ofendido. Foi tudo em proporções idênticas. No mesmo sentido referi que mesmo que algo acabasse, com o exemplo concreto que o João deu, algo novo começava e esse é o princípio da natureza, até da humana.
Se há coisa que vale a pena a IA fazer são programas informáticos.
Serão feitos com mais coerência, com menos desperdício logo, com mais qualidade/tempo/preço.
Como estes são os factores ditadores da “evolução” o emprego de programador tem os dias contados, e mais cedo do este artigo alerta.
Acredito que vai ser o futuro, libertar o programador do trabalho de “partir pedra” e libertar mais a criatividade.
Andam a brincar com o fogo esses gajos, e ainda vão queimar o planeta inteiro.
Se pensarmos no programador tal como indicado na notícia e esse software evoluir, sim, acredito vir a ser possível, ou seja, esse software poderá vir a substituir os programadores indianos.
Se pensarmos no engenheiro informático/developer/consultor ou como queiram chamar, está completamente fora de questão.
Queria ver esse software (ou melhor não queria) a ter consciência para ser capaz de pesar e desenvolver uma rotina complexa de software de gestão.
Se isso algum dia vier a acontecer, poderão vir a ter aberto a pior caixa de pandora da humanidade.
Passaremos todos nós a estar para as máquinas assim como hoje em dia os castores estão para os humanos.
Nao me parece que esteja fora de questao. Ja temos, neste momento, exemplos de grande sucesso de AI na area de RH e seguros, porque, o que ‘e fantastico, consegue entender melhor o comportamento dos humanos, atraves de varias metricas, e dar melhor recomendacoes que os humanos! Medo, muito medo!
“Basicamente, o sistema BAYOU leu o código fonte de cerca de 1500 aplicações Android, algo como 100 milhões de linhas de Java” – Google a ser… Google.
A I.A. aprende com código já feito.
E se esse código não é perfeito não irá ela aprender mal ?
Ela terá a capacidade de analisar o código e corrigir, mediante milhões de instruções que possui. Big data.
Sim Vítor isso eu sei mas acho que ainda há muito trabalho a fazer até a I.A. nos substituir pois terá de ser perfeita ou então uma outra que faça o controle um pouco como o ser humano em que existe a ação e a consciência.
Sem dúvida que há… muito mesmo.
Bem, já li por alto o paper, obrigado ao Pplware pela divulgação.
O assunto anda na moda, e é um hot topic qué Por acaso é bastante interessante, pelo menos para mim.
Em relação ao paper, há ali algumas coisas a considerar que eles simplesmente ignoram e até fingem que não existe.
Chamar type-safe aos programas gerados por código Java, epa revela ali um fechar de olhos grande (aquilo é gente esperta, sabem bem que não são type-safe).
Depois, o. João tem razão, neste caso, não há nenhuma métrica que permite dizer se aquilo é o melhor código para a tarefa, ver o ponto 6.3 (accuracy). Ou seja, sim João, o motor de AI não vai reescrever nada muito melhor do que já foi escrito, nem era o objetivo da investigação.
Mas há ali mais pontas soltas decorrentes da escolha de Java, por exemplo, o facto de haver mutação das variáveis, ou o facto dos objectos terem um estado no tempo, o que complica muito a um motor de AI, só analisando o código (sem o correr), dizer que o programa A é “melhor” ou “mais adequado” que o programa B para desempenhar a tarefa.
Pior, como podemos ter um pesadelo de excepções a viajar por todo o lado, o propósito desta experiência, serve apenas para coisas mais simples, ou muito direcionadas. Pode num futuro ser um assistente “automático” do programador, nunca irá escrever um programa completo apartir de uma especificação, isso é certo.
Já agora, ao ler aqui a notícia, e depois ao ler o paper, lembrei-me logo das macros do Lisp.
Essa IA assim como outros geradores do código, só criam lixo. Baseado no lixo que recebem de entrada. A capacidade cognitiva é claramente menor que a humana, depois toda essa porcaria não passam de estimadores estatísticos, regra de 3x e porcaria do gênero. IA é só um rótulo bonito para estatística, para vender mais e ganha dinheiro dos trouxas. Gastei 5 anos da minha vida fazendo um PhD em inteligência artificial para percebe que tudo isso não passa de uma grande fraude.
Calma homem, dizer que AI é um rótulo bonito para estatística, é como dizer que física teórica é um rótulo bonito para matemática aplicada, não é que esteja errado, mas um certo conhecimento normalmente é aplicado em vários domínios diferentes. Estatística é desses casos, e realmente hoje em dia é do conhecimento mais utilizado em muitas áreas diferentes.
Tive um professor, numa disciplina de estatística aplicada a um certo contexto, que nos disse qualquer coisa como: “a estatística é a arte de validar a *nossa verdade com números”, o que tbm não deixa de ser verdade. 🙂
Mas o certo é que, aplicada ao mundo da exploração de dados, ao mundo da inteligência artificial (ou se quiser, das acções automáticas), a estatística encaixa que nem a luva.
Pode-me dizer, bem mas uma rede neuronal pesada é uma autêntica caixa negra, sabemos como a construímos mas é impossível explicar/justificar as respostas que dali saem. Sim é verdade, mas o ser humano depois arranja mais uma forma mágica de aceitar isso, é comparar com algo que faça o mesmo, se apresenta melhores resultados, então é melhor, pronto 🙂
Ao menos há trabalho bem pago nessa área 🙂
E muito por fazer 🙂
…é o Procalipse
Esquece-se que a chave do sucesso está na diferença e não na semelhança.
Adoraria ter um algo que gerasse o código repetitivo para mim, mas o que faz um software alcançar seu objetivo, é justamente atender as necessidades que os outros já prontos não atendem.
Esta ou outra ferramenta qualquer nunca poderá substituir totalmente um programador devido às regras de negócio que existem em cada projeto. Sou programador de profissão e há muitos casos específicos em cada projeto. Acredito que este tipo de ferramentas seja útil para gerar interfaces, nomes de métodos, loops ou copia de propriedades de objetos mas as decisões que o programa tem que tomar serão sempre definidas por um utilizador porque uma máquina não tem nem nunca terá consciência.
Os programadores não vão desaparecer, pelo contrário, serão sempre precisos cada vez mais, simplesmente vão tendo o trabalho mais facilitado. Mas este facilitismo não consegue acompanhar a crescente demand pela digitalização e informatização de quase todas as coisas pelo que estão-se a criar cada vez mais empregos na área e não o contrário.
Programadores ao poder!!