Como esta simplificação do desenvolvimento de software ignora uma série de fatores e relativiza todo o trabalho a simplesmente ‘escrever código’.
Estou eu há alguns dias observando o imenso hype que está sendo gerado devido a demonstrações de várias possibilidades de ferramentas e usos junto ao GPT-3 (se você ainda não ouviu falar, logo irá e muito!), criado pela OpenAi (que teve como um dos sócios: Ellon Musk). Tudo começou há cerca de uma semana e meia atrás, após ver este vídeo do Filipe Deschamps em seu canal do YouTube. O vídeo fala sobre o futuro dos programadores diante o novo, novamente citando: GPT-3, que de maneira didática, posso te explicar como sendo um modelo de rede neural baseado em um auto-aprendizado por conexões, que aprende pela entrada de informações. E atualmente com a bagatela de 175 bilhões de conexões.
E atualmente, uma das fontes de aprendizado está sendo a própria internet.
Ou seja, o modelo lê textos, códigos, projetos open-source, relaciona estas informações e fornece o que lhe é especificado.
Somado a isto, está sendo gerado na internet, principalmente no Twitter, um imenso hype sobre as possibilidades e, principalmente, a falácia do fim de várias profissões, entre elas, dos programadores. Parte disto está sendo gerado diante alguns tweets de um programador chamado Sharif Shameem que nos últimos 3, 4 dias tem postado vídeos sobre seus experimentos, o mais recente até o momento em que escrevo este post é este abaixo:
This is mind blowing.
— Sharif Shameem (@sharifshameem) July 13, 2020
With GPT-3, I built a layout generator where you just describe any layout you want, and it generates the JSX code for you.
W H A T pic.twitter.com/w8JkrZO4lk
É de se notar que além de programador, o cara também é bom em marketing, seus videos exibindo o logo de uma de suas empresas tem ganhado centenas de visualizações, compartilhamentos e seguidores em seu perfil.
Além deste exemplo, gerando código, há outro que também gera layout no Figma, software de prototipação.
This changes everything. 🤯
— Jordan Singer (@jsngr) July 18, 2020
With GPT-3, I built a Figma plugin to design for you.
I call it “Designer” pic.twitter.com/OzW1sKNLEC
Tudo isso tem gerado um imenso barulho, teoria e previsões sobre o fim de não apenas programadores e designers, como também advogados, jornalistas, engenheiros e uma série de outras profissões.
Diante isso, diversos pensamentos rondam minha mente, muitas perguntas e reflexões, vamos lá.
Hype e muito, muito barulho
Em nossa vida online há uma série de buzzwords que se associam a estar surfando na onda do momento, entre elas: blockchain, crypto, IOT, e claro: Inteligência Artificial. É, inclusive em alguns casos, inserido goela abaixo em muitos produtos/serviços onde sequer utiliza-se de fato a tecnologia, mas, por outro lado: vende, ou no mínimo, gera curiosidade.
People are tweeting about GPT-3 today with the same level of intrigue as folks tweeted about blockchain back in 2013.
— Semil (@semil) July 18, 2020
As pessoas gostam de estar falando sobre as mais recentes tendências, afinal isso traz o sentimento de estar atualizado e diante as novidades do momento, o que também faz com que as pessoas comecem a criar previsões e muita suposição sobre o futuro. E como sabemos, o homem sempre foi péssimo em prever o futuro. Lembra dos filmes e desenhos da década de 80 que diziam que nos anos 2000 teríamos carros voadores, skates voadores, entre outros avanços, alguns vistos nos Jetsons e outros na trilogia: “De volta para o Futuro”. Claro que obtivemos muitos avanços e alguns deles semelhantes ao que foi previsto, mas nada comparado ao cenário que fora imaginado para esta década.
Muita inovação e evolução tecnológica que o homem cria não tem aderência ou simplesmente não funciona como o esperado. Fazendo uma analogia ao momento atual: é como você criar uma vacina contra o coronavírus e esperar que, sem testes e nem uma série de processos, ela funcione em toda a população.
Por exemplo, lembram do Google Glass? Prometiam ser a revolução, um óculos tecnológico onde você teria informações de produtos só de olhar e uma série de outras funcionalidades, foi tido como a melhor invenção de 2012 e depois tiveram vários reviews negativos, chegando até a ser considerado um dos piores gadgets de todos os tempos. Uma das características negativas era a total inacessibilidade, sendo caríssimo e por apresentar problemas nos olhos, como também uma série de questionamentos referente a dados pessoais e segurança dos mesmos.
Tivemos uma série de outros widgets, produtos e serviços prometidos como “game changers” e que não “colaram”.
O futuro não é algo linear, é algo vivo, e em movimento. É impossível dizer e querer prever qualquer coisa pois tudo muda a todo momento.
E ai entramos em um dos problemas que considero nocivo, proveniente dessas provisões, no tópico abaixo.
A ansiedade e o perigo da desmotivação dos iniciantes
É de se esperar que tudo isso gere ansiedade. Vi em diversos tweets e comentários de vídeos pessoas relatando este sentimento, além de também ataques de pânico. Diante tudo isso que está acontecendo, é claro que mais uma nóia para nos atormentar só vai piorar nossa saúde mental.
Outro relato que ví em diversos relatos são iniciantes em programação questionando se devem ou não investir na área, dizendo estarem desmotivados e alguns até frustrados.
Trabalhar com tecnologia nunca foi a área ideal para quem quer estar livre de preocupações, pois somos constantemente visitados pela síndrome do impostor, pressões de estar o tempo inteiro atualizado diante tanta linguagem, novos frameworks, novos método de desenvolvimento, bibliotecas, isso fora dilemas pessoais como utilizar tab ou spaces (pra descontrair, hehe), entre outras questões. No entanto é uma área repleta de oportunidades, imensa e com uma grande necessidade por profissionais. Por isso penso que seria de bom grado um cuidado maior em comunicar esse tipo de evolução, principalmente aos mais novos e iniciantes, para que não se desistam, que continuem a estudar e se dedicar. Creio que a maior probabilidade é de que a IA só realmente nos impactará décadas a frente, e a desistência de novos talentos na área só aumentará a escassez e principalmente a inibição de muita gente boa, impedindo criações e melhorias em tudo que já usamos e gerando problemas, inclusive econômicos. Pensemos que no pior cenário, em um futuro muito próximo onde o programador seja realmente substituído, ainda sim quem entende de desenvolvimento e programação estará a frente de quem não.
Os clientes querem isso?
Me pergunto se, em um mundo totalmente no-code com ferramentas geradoras de código com o GPT-3, os clientes vão realmente querer isso.
Talvez até usem para validar ou iniciar algum projeto, mas depois precisarão de alguém que cuide disto. Hoje em dia há diversos tipos de builders, principalmente dentro do WordPress.
Por exemplo o Elementor, em que você não fala ou escreve, mas arrasta e solta os elementos. Isto não gerou extinção de programadores, pelo contrário, gerou ainda mais demanda. Primeiro que permitiu a pessoas que não sabem programar, criar páginas e sites praticamente inteiros. Mas quando surge uma limitação (e sempre surge), entra quem sabe programar. A existência de ferramentas como o Elementor aumenta a aderência de pessoas a mexer com desenvolvimento, mas especializa ainda mais o âmbito de quem programa. Quem usa o builder vai, hora ou outra, lidar com aquilo que estas ferramentas e geradores de código não fazem, seja por limitação da ferramenta, ou por quem a utiliza.
Já atendi a diversos projetos que o próprio empreendedor iniciou utilizando estes builders. Mas seja por ter alcançado o teto de limitação da ferramenta/capacidade técnica, ou por querer que alguém especializado tome conta disso para ele focar em sua área de atuação do negócio, precisará de alguém para a realização daquilo que não consegue, ou a ferramenta não atinge.
E no final, acaba sendo necessário alguém que lide com a ferramenta e saiba uma linguagem, seja ela natural ou não, que tenha todos os detalhes e requisitos para o funcionamento do software, ou seja, que tenha domínio de código.
E para quem acha que dar direções é fácil, esse vídeo abaixo ( muito engraçado por sinal) ilustra um pouco os desafios de detalhar instruções. E mesmo com a abstração tendo cada vez mais camadas, ainda haverá a necessidade de instruções assertivas.
Estamos preparados para lidar com máquinas em todos os cantos?
Não sei vocês, mas eu quando tenho algum problema, quero falar com seres humanos, e não URAS ou chatbots. Talvez seja algo da minha geração, e talvez as próximas já nascendo nessa era terão mais facilidade, mas em momentos de ter de resolver algo com urgência preciso de outro ser humano, que sinta minha dor, minha necessidade, e tenha sensibilidade para saber como me ajudar.
Será que realmente funcionará você escrever ou falar todo o seu projeto, produto ou serviço a uma ferramenta, ela obter toda a engenharia e propriedade de como funciona, não conseguirmos ter esse conhecimento, debuggar, ou ter de descer em um nível de detalhes tão grande, que o que for escrito não terá a mesma clareza que atualmente os códigos tem?
Além do mais, toda essa evolução das máquinas tem de ser acompanhada pela evolução de sua segurança, imagine se uma ferramenta altamente sofisticada e inteligente cai na mão de pessoas mal intencionadas? Sei que não existe sistema 100% seguro, mas não dá pra confiar em ter algo de extrema potência sendo sujeito a invasões, roubos, enfim. Sei que é um desafio, talvez um dos ônus de tanto avanço. Temos isso com IA, internet das coisas e todo o mundo online.
Estamos subestimando nossa inteligência e superestimando a das máquinas?
Eu creio e sei o poder da tecnologia atual, e também da vindoura. Sei que quando tivermos poder computacional parrudo experimentaremos uma evolução absurda, talvez ai sim saberemos a plenitude e máxima (ou infinita) capacidade das máquinas, redes neurais, aprendizado de máquina e por ai vai.
Mas será que devemos chamar mesmo de inteligência?
Claro que uma calculadora, por exemplo, um computador consegue fazer contas muito mais rápido que nós, mas por isso, somado a processamento de informações, podemos elevá-los a estruturas inteligentes?
Vou mais além e sem querer filosofar, mas filosofando, não acho que o ser humano seja especial, mas somos muito mais que seres inteligentes, somos criativos, intuitivos, espirituais, originais, somos únicos. E com tudo isso seria justo dizer que seremos substituídos por máquinas?
Como vai ser tudo feito por máquinas?
Ferramentas, e não substitutos
Penso que temos que usar as ferramentas provenientes desses avanços como auxiliadoras, para elevar nossa produtividade, de fato reduzir o que é repetitivo, mas trazer para nosso trabalho mais foco em resoluções de problemas mais complexos e profundos.
Por fim: software não é só escrever código
Há muitos paradigmas dentro do desenvolvimento de software, aplicativos e sistemas. No mundo real não é simples e nem todo projeto está perto de ser uma to-do list, como estes exemplos mostram as ferramentas fazendo.
Desenvolver sistemas é também entender o produto, cliente, o momento, o público-alvo, quais tecnologias, quais metodologias, e uma série de variáveis que não se reduzem a dizer que, por escrever código, um desenvolvedor será substituído.
Gosto muito de ler opiniões de programadores muito mais experientes que eu, com mais bagagem, e que observam o avanço da IA livre de hypes e euforia, vejam os tweets e os fios abaixo.
AI é muito bom em pegar terabytes de dados anteriores, se treinar e gerar “algum conteúdo” que “parece” feito por um humano e passar turing test (vai melhorar spam bot). Mas é incapaz de elaborar uma tese, escrever uma dissertação com coerência que não seja uma “colagem”
— Akitando.com (@AkitaOnRails) July 7, 2020
O que veremos nos próximos anos são ferramentas de produtividade, que permitem pequenos ganhos de tempo. Nada nem perto de construir nem um pequeno pedaço de uma aplicação inteligente.
— Giovanni Bassi 🇧🇷 (@giovannibassi) July 15, 2020
Isso pode acontecer no futuro, não sou negacionista do assunto, sei do poder sendo gerado, e como disse acima, do que há de vir mas também sei que nesse hype todo há muito marketing, empolgação desenfreada e exagero, acredito que não veremos na nossa geração, talvez não na totalidade, mesmo com as evoluções recentes e por sabermos como a tecnologia dá saltos absurdos em cada vez menos tempo. Ainda temos questões de hardware, energia, poder computacional, limitações de parâmetros, e claro, questões éticas e da sociedade como um todo. No momento em que tudo for substituído, não apenas programadores, mas todas as demais profissões, como serão os empregos? Não dá pra dizer que ficaremos apreciando as artes e correndo por aí livres, leves e soltos. O trabalho mexe com nosso senso de propósito, e não ter o que fazer é nocivo aos humanos.
Eu escolhi trabalhar com desenvolvimento bem cedo, com 11 anos já sabia que era aquilo que eu queria fazer. Isso porque eu sempre gostei de criar coisas e solucionar problemas, e a programação me permite isso. Ler pessoas se preocupando se seremos substituídos reduzindo o universo do que fazemos a simplesmente ‘escrever código’ é ignorar uma série de outros fatores essenciais ao desenvolvimento de soluções para humanos de problemas dos humanos.
Me interesso muito por este tipo de assunto, se quiser conversar mais, só me pingar no Twitter ou Telegram! Meu user é @vilourenco