E isso não precisa ser ruim

Toda semana uma nova IA está tirando o emprego de alguém, na ultima semana foi a vez dos programadores. Mas antes vamos conversar um pouco sobre o que é ser realmente um programador.

"Programadores são mais inteligentes, porque criam algoritmos complexos" #SQN

Um mito que precisa acabar é o do programador inteligente, apesar de lidarmos com algo que tem sim complexidade e o nosso principal trabalho é tirar a complexidade disso, não é o código que transforma alguém em mais inteligente ou não porque o código é repetitivo.

Talvez aqui já venha uma luz de todo o texto, tirar a complexidade deveria ser sempre um foco, assim podemos usar o tempo restante para reutilizar a complexidade criando algo novo e assim reduzir novamente a complexidade desse novo.

Por exemplo, o que mais fazemos é reduzir a complexidades das interfaces sejam programaveis ou não, isso trazendo um salto maior de produtividade e qualidade no que produzimos. Durante todo o tempo na profissão estamos lidando com remoção da complexidade e também a remoção das repetições.

Essa remoção de complexidade e repetições acontecem por exemplo ao criarmos interfaces melhores para escrever código de máquina em que reduz erros humanos e permite criar ferramentas melhores e com novas complexidades.

Você já pensou em trabalhar escrevendo Assembly todos os dias? Pouco provável, apesar de ainda ter demanda nesse tipo de programação, desde de que foi inventado a linguagem C se tornou preferível para escrever software. Essa talvez seja a primeira automação que me vem na cabeça quando se trata de software.

Um programador está constantemente inventando automações que vai acabar com o que ele faz. Muito do nosso trabalho é repetitivo e uma regra que deveríamos levar para a vida é o famoso e conhecido DRY (Don't Repeat Yourself). Essa regra nos permite criar coisas novas e pensar em soluções novas o tempo todo.

A criação de um botão, de um formulário é uma repetição constante, com visual diferente.

Print screen do modal de cadastro do twitter com formulário perguntando nome e telefone com um botão para avançar
Print screen da tela do aribnb também um formulário de cadastro perguntando um telefone e o continuar
Tela de cadastro do Facebook perguntando por nome sobrenome e telefone com data de nascimento e gênero

Então que venha a automação para isso.

As vezes só a mudança de interface já é um grande responsável por matar profissões, por exemplo quando olhamos a necessidade de um DBA (Database Administrator) dentro das empresas só a gestão ágil e boas ferramentas de ORM (Object Relational Manager) já foram o suficiente para demanda reduzir, apesar do mercado de tecnologiar ter crescido.

Quero incluir aqui ainda um outro trend interessante sobre esse assunto e como essas mudanças geralmente abrem outros caminhos e espaços.

Olha a demanda por empregos com Delphi comparado por empregos em JS, repare a mudança que acontece entre 2010 e até 2012, foram anos de grandes mudanças. Em 2007 tivemos o lançamento do iPhone e 2008 o lançamento dos primeiros celulares Android, mas é em 2010 que a interface realmente mudou.

Em 2009 até 2011 tivemos os primeiros Motorola Milestone, os Galaxys e também o Windows Phone fora o iPhone 3G e 3Gs, nesse periodo os smartphones começaram realmente a se popularizar. Também em 2010 tivemos o lançamento do iPad e necessidade mudou completamente. Agora não precisava mais de aplicações só no desktop, mas também aplicações que funcionassem em todos os dispositivos.

Aqui vem uma coisa me preocupo: hardware, software é até o de menos e isso aqui talvez tire mais empregos do que inteligencia artificial.

Imagem de totens de pedido dentro do macdonalds

Você é muito além de um mero escriba de código

Uma analogia que se usa muito para programadores é que somos como escribas do passado em uma sociedade analfabeta. Apesar da analogia ser bem interessante, precisamos entender que a escrita de código é super simples comparada com a atividade de escrita.

Inteligência artificial já tem escrito textos, artigos complexos e até matérias jornalisticas e porque você pensou que programador ficaria de fora?

Além de ser repetivo a criação de formulários e botões a escrita de código é estruturada e repetitiva apesar de sempre lutarmos para evitar a repetição, códigos são cheio de padrões repetitivos e uma máquina pode aprender os padrões e reproduzir.

Mas aqui que mora algo super curioso sobre máquinas, sempre falta um porque para ela iniciar o processo criativo e o ser humano sempre tem vários. Pode ser uma nova ferramenta para termos ainda mais criações, seja de produtos entretenimento ou jogos.

E porque ficar com essa ideia de que programadores devem serem os únicos a criar software? Por conta da prensa de tipos moveis, pensa na quantidade de criação de conhecimento que foi feito? Ou o que seria da internet se ainda tivesse a restrição de saber programar HTML para publicar algo ao invés de simplesmente jogar o texto em um Blogspot ou Medium?

O GPT-3 pode proporcionar isso e vamos precisar disso.

Falamos do fim dos empregos mas e o fim dos jovens?

Uma preocupação de muitos países é a taxa de fecundidade, se você quiser uma explicação rápida tem esse video do IBGE.

Como o próprio vídeo explica essas taxas interferem diretamente na reposição populacional e no mundo todo já sinaliza seus problemas e uma coisa o ser humano é bom, criar ferramentas para facilitar sua vida.

Ter ferramentas mais inteligentes e que consiga reagir de forma adequada seja acelerando o processo de criação de outras ferramentas ou em tarefas repetitivas, para uma sociedade velha e sem tantos jovens para manter ela me parece um caminho necessário.

Custo

Alem dos pontos que já levantei quando se discute sobre inteligência artificial tirando empregos e trabalhos, não vejo levantarem o fator custo e de novo aqui aponto para o hardware.

Para fazer as tarefas de GPT-3 precisa de muito processamento, qualquer NLP(natural languagem process) de uso complexo tem um custo e não é baixo, mas também tem o custo do programador que não é baixo, principalmente por conta dos bootcamps e treinamentos rápidos não entregam o valor na quantidade e e velocidade do preço cobrado.

Mas o hardware ainda pode ser um gargalo para que GPT-3 consiga realmente ser algo, por isso ficar atento aos hardwares e como a OpenIA lida com eles será importante para dizer se vai realmente ter uma substituição.

Agora um ponto complicado sobre o mercado e importante que leva para vários outros pontos. Mas no geral quem está desenvolvendo algum produto, não quer pagar por isso, ele paga por não saber fazer ou por não ter o tempo para fazer e cuidar de outras tarefas como marketing, vendas e etc.

Ferramentas como essa animam muito, porque traz um mundo em que é necessário menos desenvolvedores ou a formação deles é mais rápida e reduzindo o valor cobrado. Lembra que falei sobre os bootcamps, ele é um forma de tirar valor. Afinal porque a empresa pagaria mais se a pessoa tem só 3 meses de formação em ferramentas especificas ao invés de uma faculdade completa?

Aqui mora o lado sujo da coisa, porque trata da precificação do nosso trabalho, feito por alguém que muitas vezes não entende nada sobre o que fazemos e ter uma máquina ou site descritivo que tenha o mesmo resultado digitando um texto é o sonho de muitos empreendedores e clientes.

Já por um outro lado um bom desenvolvedor vai além de só escrever código. Sabe ver o problema e usa o código para resolver ele. Se hoje você não faz isso no seu trabalho ou não quer fazer isso, talvez tenha entendido errado o que um programador faz. E deveria se preocupar porque não será a GPT-3 que vai deixar você sem emprego, novamente programar é muito além de ser um simples escriba de código.

Criar o futuro não só através do código

The best way to predict the future is to invent it. - Alan Curtis Kay

Essa frase do Alan Kay diz muito sobre o que nós programadores deveríamos pensar ao escrever código, a melhor forma de prever o futuro é inventando ele, isso de um cara que trouxe a vida orientação a objetos e interface gráfica.

Mas o que isso tem a ver com inteligência artificial? Tudo, precisamos ficar a atentos com o futuro para saber quais ferramentas poderemos usar e melhorar as nossas criações. Todos sabemos que software está engolindo o mundo, cada vez mais precisamos dele e se pudessemos dar um salto para suprir essa necessidade?

Assim como o Wix e Wordpress de certa forma mataram os web masters, o mercado ao mesmo tempo cresceu e se modificou. Hoje em dia você não procura por web master, mas sim por front-ends ou um back-ends e possivelmente para entregar algo bem mais complexo do que um simples site.

Esse crescimento é bom para todos e aqui vai talvez um pouco de futurologia, será que no futuro como programadores seremos Product Owners? E quanto ao futuro, estamos trabalhando na criação da próxima interface, precisamos ainda ter o código no caminho?

Remover barreiras é importante para o acesso e talvez precisamos remover a barreira do código e programador na criação de software. Por exemplo, o mercado de audio visual nunca esteve tão grande e cheio de amadores, criadores de conteúdo próprio, isso porque temos ferramentas melhores na criação de videos e na distribuição dos mesmos através do streaming.

O conteúdo feito por essas pessoas desafia e quebra o mundo que conhecíamos no passado onde músicas, livros e arte era algo para se passar por herança.

Quantas rádios e podcasts podemos escutar hoje, porque o acesso ficou facilitado? Isso sem falar que hoje em dia ficou banal escutar uma música, assistir um filme, tirar fotos e ler livros. A tecnologia modificou completamente o acesso e porque não modificar o acesso a criação de tecnologia.

O que você criaria se não precisasse escrever código?

Trabalhar com tecnologia é criar o futuro e como programadores não podemos ficar no caminho da construção de software, imagine o tanto de ferramentas, jogos, gadgets que poderão ser melhores e existir por mais tempo só por ter simplificado a interface?

Sem contar os avanços na ciencia porque os cientistas poderão criar softwares melhores de analise e predição, uma das dificuldades dos cientistas é na criação desses softwares e modelos.

Nossa area é sobre criar a próxima interface e porque não remover o código do caminho? Você quer ser um mero escriba com sinais e mensagem de erros que você odeia ou criar algo além disso? Eu gosto mais de ver o resultado que o código gerado.

E se você não se sente um criador, lembre que "tudo no mundo foi criado por pessoas não muito mais inteligente que você. E você pode mudar ele e influenciar ele. Você pode construir coisas que outras pessoas usam."

E imagina com isso ainda mais fácil sem precisar escrever tanto código ou escrevendo ainda mais rápido?

Vamos com calma

É importante lembrar também que até o próprio Sam Altman (sócio da openIA e fundador da YCombinator) também mostra que o GPT-3 ainda não é tudo isso.

Tanto é que algumas coisas que me incomodam nas demonstrações e o porque acredito que ainda estamos longe, ao invés de gerar um botão simples em React, porque ele não gerou logo um html ou algo nativo?

E questões de perfomance a máquina vai saber escolher entre códigos que funcionem melhor ou pior? E questão de custo de processamento até se tornar um produto e após ter se tornado um produto vai ter aderencia? Para isso sugiro você ler os pontos bem interessantes levantados pelo Vinicius.

Outro ponto sobre os modelos eles se degradam. Quer um exemplo? Sua timeline do Facebook foi treinada por meses e até anos, mas você mudou e hoje talvez não veja a menor graça nela. Isso porque o modelo viciou em conteúdos que você já gostou, mas deixou de ser interessante.

O mesmo serve para o Spotify, com o tempo você deixa de descobrir coisas novas, ficaria o GPT-3 viciado trazendo sempre os mesmos resultados depois de acertar algumas vezes? Tipo quando todos os sites ficaram a cara do bootstrap?

Modelos se degradam por falta das criações humanas, ou por simplesmente queremos repetir a mesma coisa.

Esse são alguns dos pontos que acho importante considerar quando vemos uma nova tecnologia como o GPT-3 e ainda mais uma ferramenta que se propõe a escrever o código por nós.

Lembrar que interfaces dependem do hardware e elas matam profissiões dentro de tecnologia o tempo todo, ajuda a ter um equilíbrio ao ver coisas assim e não se desesperar.

Levar sempre em conta o que entregamos e que isso precisa ser além do código. Apesar de impressionante ainda está longe de substituir o programador então vale continuar aprendendo e estudando.


Resolvi fazer algumas mudanças nesse texto, principalmente por que agora o aviso de Drops vem no fim e também na tag que uso. Obrigado por ler até aqui, dicas, sugestões e correções só me falar. :)

Foto do site Unplash tira por Kelly Sikkema