Software capaz de redigir código pode revolucionar trabalho de programador
Os defensores da codificação automatizada dizem que ela pode reduzir os custos —e o trabalho braçal— da programação  É um axioma da era da internet que quase tudo que um ser humano faz pode ser feito melhor por, ou com a ajuda de, software.  Mas e quanto à função de escrever software? Boa parte do trabalho é braçal, repetitivo, sujeito a bugs. Será que não haveria como usar software para tornar esse trabalho mais eficiente? Na verdade, será que software não seria capaz de escrever software?  Que isso acontecesse seria como virar o slogan do Vale do Silício contra ele: o software não só devorará o mundo como devorará o software.  Essa é a direção do trabalho de uma equipe de cientistas da computação do University College London (UCL), cujo projeto visa a não só reduzir as tarefas repetitivas e ineficientes que a programação envolve mas transformar o papel desempenhado pela maioria dos programadores.  "Prevejo que a próxima linguagem de computação não será uma linguagem de computador mas a linguagem natural, humana", diz Guillaume Bouchard, um membro da equipe do UCL.  "Se você instruir seu computador a escrever um jogo no qual um tubarão persegue uma pessoa, o computador deveria saber o que você quer e criar o jogo diante de seus olhos. A instrução seguinte poderia ser 'torne o tubarão mais feroz e rápido', e o computador revisaria o código".  Parece utópico, mas ainda este ano uma companhia chamada Bloomsbury.ai, criada pela equipe do UCL e com Bouchard como um de seus cofundadores, pretende lançar uma demo pública que permitirá que pessoas sem experiência como programadores executem análises complexas de dados em questão de minutos.  Com treinamento, o mesmo agente virtual poderia ser usado para todo tipo de função, da criação de arte à de bens de consumo, a companhia afirma.  Em um mundo como esse, diz Bouchard, a maioria dos programadores passaria a ser descrita, mais precisamente, como "treinadores".  A pessoa conversaria com o computador a fim de ensiná-lo a escrever código e a compreender suas intenções.  Outra empresa que está na vanguarda do software que escreve software é a Queue Software, de Raleigh, na Carolina do Norte.  Aidan Cunniffe, presidente-executivo e cofundador da companhia, diz que "em seis a 10 anos não teremos mais apps para o mercado de massa como o app de e-mail do Apple iOS. Por exemplo, se você estiver em um parque temático e quiser ficar de olho em seus filhos, dirá ao seu aparelho o que deseja e ele escreverá o código necessário para você em um segundo".  Hoje, no entanto, a Queue tem por foco metas de crescimento de prazo mais curto, especificamente o lançamento, marcado para janeiro, da Dropsource, sua plataforma automatizada de escrita de código.  A Dropsource escreve aplicativos com base em funções e na intenção e instruções do usuário.  Com essas informações, o sistema seleciona a abordagem de design e desenvolvimento mais adequada, considerando as mesmas opções que um programador humano normalmente consideraria ao programar um aplicativo para, por exemplo, acompanhar placares, saltar de página a página ou reunir detalhes de contas.  Enquanto o Dropsource escreverá códigos em décimos de segundo, o processo normal requer que um designer ou gerente de projeto colabore com um desenvolvedor e escreva códigos do zero, mesmo que trabalhos praticamente idênticos tenham sido realizados muitas vezes no passado.  A Dropsource já foi usada para criar apps do iOS, por companhias de desenvolvimento de software que receberam acesso antecipado ao produto.  Outra companhia que está a caminho do software escrito por software é a Bubble.is, de Nova York, que oferece uma interface visual para a criação de apps. Uma vez mais, a promessa é de que não será preciso saber como redigir códigos para usar o sistema.  Bouchard estima que haja 11 milhões de programadores no planeta. "Essas pessoas foram treinadas para traduzir e transferir uma ideia alheia para outra linguagem. Boa parte do trabalho de programação é laborioso —elas poderiam usar sua inteligência para outros fins."  A intenção comum desses pioneiros é desmistificar e abrir o reino da inovação tecnológica, criatividade e da autonomia pessoal tanto para a categoria dos desenvolvedores, que compreende as linguagem de computador que acionam os mecanismos invisíveis do mundo moderno, quanto para a vasta maioria de pessoas que não as compreendem.  Mas existem outros poderoso imperativos que são pragmáticos e econômicos. A procura por desenvolvedores, hoje, supera em muita a oferta, e isso restringe a inovação e eleva os custos.  No Vale do Silício, os desenvolvedores giram de empresa a empresa, recolhendo grandes recompensas a cada salto. Enquanto isso, programas de aceleração para startups estão repletos de pessoas com ideias em busca de um cofundador do ramo tecnológico, sem o qual elas não podem nem mesmo se candidatar.  O fundador não técnico usualmente não faz nem ideia de se seu parceiro de tecnologia é um puro sangue ou um pangaré como programador.  Não surpreende que haja muita gente cética quanto ao potencial da programação automática.  Ferramentas de software sempre evoluíram de forma a operar recursos cada vez maiores por meio de instruções cada vez mais simples, afinal. E não existe nada de verdadeiramente revolucionário nesse campo nascente, até agora.  Andrew Ng, vice-presidente de ciência na divisão de pesquisa do grupo de Internet chinês Baidu no Vale do Silício e co-fundador de uma companhia de aprendizado online chamada Coursera, está entre os céticos.  Ele diz que "muito trabalho foi realizado nas décadas passadas a fim de criar ferramentas de desenvolvimento melhores. Por um lado, houve muito progresso. Por outro, a parte realmente difícil da programação é pensar de modo aprofundado sobre o que você gostaria de expressar com o seu software, e essa é a parte realmente demorada e realmente difícil de automatizar".  Nem toda a codificação requer esse tipo de expressão criativa de ideias, porém, e é quanto a isso que a automação deve permitir ganhos de eficiência.  "Sim, existe uma parte importante do trabalho de programação que envolve expressar conceitos novos e inovadores, mas também existe muito trabalho braçal, e muito bem pago", diz Scott Barstow, um veterano do desenvolvimento de software que está pesquisando sobre codificação automática.  "Onde eu vejo mais erosão de valor é nas tarefas repetitivas que ocupam diariamente os desenvolvedores que estão nos degraus mais baixos da hierarquia."  Cunniffe concorda. A Queue Software começou como empresa de desenvolvimento de software, criando aplicativos para clientes que variavam de corretoras de Wall Street a empresas iniciantes.  "Aprendemos que estávamos construindo a mesma coisa repetidamente, e percebemos que a coisa mais interessante a fazer seria reduzir o esforço e custo desperdiçados e trabalhar em como automatizar 90% do trabalho de codificação."  Se a Queue, Bloomsbury, Bubble e outras atingirem seus objetivos, grandes ganhos devem ser obtidos. Os programadores de alto nível continuariam a escrever código, mas para muitos deles o trabalho poderia passar a ser a concepção de uma solução, e não a codificação subjacente.  "Existe muita procura por programadores que ganham entre US$ 160 e US$ 200 por hora para escrever mais ou menos o mesmo código toda vez", diz Barstow.  "Vejo muitas empresas pagando fornecedores terceirizados ou criando equipes internas para desenvolver apps do zero, e isso acarreta muita repetição. Se você paga a uma empresa de desenvolvimento, o custo para criar um aplicativo é de US$ 75 mil a US$ 100 mil ou mais.  Eu diria que em 50% dos casos esse dinheiro está sendo desperdiçado, porque o mesmo código está sendo escrito, repetidamente".  ACELERANDO O PROCESSO  Os programadores sempre buscaram criar atalhos. Com perdão do uso de jargão, pequenos componentes como o NPM for Node.js e o Gems for Ruby permitem que rotinas de codificação predefinidas sejam acessadas sem que seja preciso escrevê-las do zero a cada vez.  Criar sites antigamente envolvia codificar cada um deles manualmente, mas serviços como o Wix, Squarespace e WordPress permitem fazê-lo em minutos e sem grande conhecimento de codificação.  A recente evolução de um ecossistema rico de APIs (interfaces de protocolo para aplicativos), que são como conectores ou tomadas para programas de software, permite que companhias especializadas forneçam seus serviços específicos a desenvolvedores com apenas uma ou duas linhas de código.  A Import.io, por exemplo, toma os dados de qualquer página de Web e os converte em uma planilha. Usar o serviço não requer conhecimento especializado de coleta de dados. O Serviço de Estatísticas do Trabalho do governo norte-americano usa esse método para monitorar sites em busca de anúncios de emprego.  A Twilio.com oferece "telefonia como serviço", permitindo que desenvolvedores incluam recursos de telefonia em seus aplicativos sem que precisem aprender uma linguagem específica de telefonia como a Asterisk.  Tradução de PAULO MIGLIACCI
Software capaz de redigir código pode revolucionar trabalho de programadorOs defensores da codificação automatizada dizem que ela pode reduzir os custos —e o trabalho braçal— da programação  É um axioma da era da internet que quase tudo que um ser humano faz pode ser feito melhor por, ou com a ajuda de, software.  Mas e quanto à função de escrever software? Boa parte do trabalho é braçal, repetitivo, sujeito a bugs. Será que não haveria como usar software para tornar esse trabalho mais eficiente? Na verdade, será que software não seria capaz de escrever software?  Que isso acontecesse seria como virar o slogan do Vale do Silício contra ele: o software não só devorará o mundo como devorará o software.  Essa é a direção do trabalho de uma equipe de cientistas da computação do University College London (UCL), cujo projeto visa a não só reduzir as tarefas repetitivas e ineficientes que a programação envolve mas transformar o papel desempenhado pela maioria dos programadores.  "Prevejo que a próxima linguagem de computação não será uma linguagem de computador mas a linguagem natural, humana", diz Guillaume Bouchard, um membro da equipe do UCL.  "Se você instruir seu computador a escrever um jogo no qual um tubarão persegue uma pessoa, o computador deveria saber o que você quer e criar o jogo diante de seus olhos. A instrução seguinte poderia ser 'torne o tubarão mais feroz e rápido', e o computador revisaria o código".  Parece utópico, mas ainda este ano uma companhia chamada Bloomsbury.ai, criada pela equipe do UCL e com Bouchard como um de seus cofundadores, pretende lançar uma demo pública que permitirá que pessoas sem experiência como programadores executem análises complexas de dados em questão de minutos.  Com treinamento, o mesmo agente virtual poderia ser usado para todo tipo de função, da criação de arte à de bens de consumo, a companhia afirma.  Em um mundo como esse, diz Bouchard, a maioria dos programadores passaria a ser descrita, mais precisamente, como "treinadores".  A pessoa conversaria com o computador a fim de ensiná-lo a escrever código e a compreender suas intenções.  Outra empresa que está na vanguarda do software que escreve software é a Queue Software, de Raleigh, na Carolina do Norte.  Aidan Cunniffe, presidente-executivo e cofundador da companhia, diz que "em seis a 10 anos não teremos mais apps para o mercado de massa como o app de e-mail do Apple iOS. Por exemplo, se você estiver em um parque temático e quiser ficar de olho em seus filhos, dirá ao seu aparelho o que deseja e ele escreverá o código necessário para você em um segundo".  Hoje, no entanto, a Queue tem por foco metas de crescimento de prazo mais curto, especificamente o lançamento, marcado para janeiro, da Dropsource, sua plataforma automatizada de escrita de código.  A Dropsource escreve aplicativos com base em funções e na intenção e instruções do usuário.  Com essas informações, o sistema seleciona a abordagem de design e desenvolvimento mais adequada, considerando as mesmas opções que um programador humano normalmente consideraria ao programar um aplicativo para, por exemplo, acompanhar placares, saltar de página a página ou reunir detalhes de contas.  Enquanto o Dropsource escreverá códigos em décimos de segundo, o processo normal requer que um designer ou gerente de projeto colabore com um desenvolvedor e escreva códigos do zero, mesmo que trabalhos praticamente idênticos tenham sido realizados muitas vezes no passado.  A Dropsource já foi usada para criar apps do iOS, por companhias de desenvolvimento de software que receberam acesso antecipado ao produto.  Outra companhia que está a caminho do software escrito por software é a Bubble.is, de Nova York, que oferece uma interface visual para a criação de apps. Uma vez mais, a promessa é de que não será preciso saber como redigir códigos para usar o sistema.  Bouchard estima que haja 11 milhões de programadores no planeta. "Essas pessoas foram treinadas para traduzir e transferir uma ideia alheia para outra linguagem. Boa parte do trabalho de programação é laborioso —elas poderiam usar sua inteligência para outros fins."  A intenção comum desses pioneiros é desmistificar e abrir o reino da inovação tecnológica, criatividade e da autonomia pessoal tanto para a categoria dos desenvolvedores, que compreende as linguagem de computador que acionam os mecanismos invisíveis do mundo moderno, quanto para a vasta maioria de pessoas que não as compreendem.  Mas existem outros poderoso imperativos que são pragmáticos e econômicos. A procura por desenvolvedores, hoje, supera em muita a oferta, e isso restringe a inovação e eleva os custos.  No Vale do Silício, os desenvolvedores giram de empresa a empresa, recolhendo grandes recompensas a cada salto. Enquanto isso, programas de aceleração para startups estão repletos de pessoas com ideias em busca de um cofundador do ramo tecnológico, sem o qual elas não podem nem mesmo se candidatar.  O fundador não técnico usualmente não faz nem ideia de se seu parceiro de tecnologia é um puro sangue ou um pangaré como programador.  Não surpreende que haja muita gente cética quanto ao potencial da programação automática.  Ferramentas de software sempre evoluíram de forma a operar recursos cada vez maiores por meio de instruções cada vez mais simples, afinal. E não existe nada de verdadeiramente revolucionário nesse campo nascente, até agora.  Andrew Ng, vice-presidente de ciência na divisão de pesquisa do grupo de Internet chinês Baidu no Vale do Silício e co-fundador de uma companhia de aprendizado online chamada Coursera, está entre os céticos.  Ele diz que "muito trabalho foi realizado nas décadas passadas a fim de criar ferramentas de desenvolvimento melhores. Por um lado, houve muito progresso. Por outro, a parte realmente difícil da programação é pensar de modo aprofundado sobre o que você gostaria de expressar com o seu software, e essa é a parte realmente demorada e realmente difícil de automatizar".  Nem toda a codificação requer esse tipo de expressão criativa de ideias, porém, e é quanto a isso que a automação deve permitir ganhos de eficiência.  "Sim, existe uma parte importante do trabalho de programação que envolve expressar conceitos novos e inovadores, mas também existe muito trabalho braçal, e muito bem pago", diz Scott Barstow, um veterano do desenvolvimento de software que está pesquisando sobre codificação automática.  "Onde eu vejo mais erosão de valor é nas tarefas repetitivas que ocupam diariamente os desenvolvedores que estão nos degraus mais baixos da hierarquia."  Cunniffe concorda. A Queue Software começou como empresa de desenvolvimento de software, criando aplicativos para clientes que variavam de corretoras de Wall Street a empresas iniciantes.  "Aprendemos que estávamos construindo a mesma coisa repetidamente, e percebemos que a coisa mais interessante a fazer seria reduzir o esforço e custo desperdiçados e trabalhar em como automatizar 90% do trabalho de codificação."  Se a Queue, Bloomsbury, Bubble e outras atingirem seus objetivos, grandes ganhos devem ser obtidos. Os programadores de alto nível continuariam a escrever código, mas para muitos deles o trabalho poderia passar a ser a concepção de uma solução, e não a codificação subjacente.  "Existe muita procura por programadores que ganham entre US$ 160 e US$ 200 por hora para escrever mais ou menos o mesmo código toda vez", diz Barstow.  "Vejo muitas empresas pagando fornecedores terceirizados ou criando equipes internas para desenvolver apps do zero, e isso acarreta muita repetição. Se você paga a uma empresa de desenvolvimento, o custo para criar um aplicativo é de US$ 75 mil a US$ 100 mil ou mais.  Eu diria que em 50% dos casos esse dinheiro está sendo desperdiçado, porque o mesmo código está sendo escrito, repetidamente".  ACELERANDO O PROCESSO  Os programadores sempre buscaram criar atalhos. Com perdão do uso de jargão, pequenos componentes como o NPM for Node.js e o Gems for Ruby permitem que rotinas de codificação predefinidas sejam acessadas sem que seja preciso escrevê-las do zero a cada vez.  Criar sites antigamente envolvia codificar cada um deles manualmente, mas serviços como o Wix, Squarespace e WordPress permitem fazê-lo em minutos e sem grande conhecimento de codificação.  A recente evolução de um ecossistema rico de APIs (interfaces de protocolo para aplicativos), que são como conectores ou tomadas para programas de software, permite que companhias especializadas forneçam seus serviços específicos a desenvolvedores com apenas uma ou duas linhas de código.  A Import.io, por exemplo, toma os dados de qualquer página de Web e os converte em uma planilha. Usar o serviço não requer conhecimento especializado de coleta de dados. O Serviço de Estatísticas do Trabalho do governo norte-americano usa esse método para monitorar sites em busca de anúncios de emprego.  A Twilio.com oferece "telefonia como serviço", permitindo que desenvolvedores incluam recursos de telefonia em seus aplicativos sem que precisem aprender uma linguagem específica de telefonia como a Asterisk.  Tradução de PAULO MIGLIACCI