Toda programação é programação para a Web

Michael Braude critica a popularidade da programação na Web:

A razão pela qual a maioria das pessoas quer programar para a Web é que elas não são inteligentes o suficiente para fazer qualquer outra coisa. Elas não entendem de compiladores, concorrência, 3D ou herança de classe. Não têm a menor ideia de por que eu usaria uma interface ou uma classe abstrata. Eles não entendem: métodos virtuais, ponteiros, referências, coleta de lixo, finalizadores, passagem por referência vs. passagem por valor, destrutores virtuais do C++ ou as diferenças entre structs e classes do C#. Eles também não sabem nada sobre processos. Cascata? Espiral? Ágil? Esqueça. Eles nunca viram um documento de requisitos, nunca escreveram um documento de design, nunca desenharam um diagrama UML e nem sequer ouviram falar de um diagrama de sequência.

Mas eles sabem algumas coisas: eles sabem como criar uma página da Web ASP.NET, enviar algum SQL (mal feito) para um banco de dados, preencher um conjunto de dados e renderizar um controle de grade. Isso eles já descobriram. E é bem provável que não tenham demorado muito para descobrir isso.

Portanto, perdoe-me por ser arrogante e ofensivo, mas não tenho interesse em ser um “cara da Web”. E há dois motivos para isso. Primeiro, não é um meio desafiador para mim. E, segundo, porque a grande maioria das empresas de Internet está repleta de engenheiros ruins, justamente porque o senhor não precisa saber coisas complicadas para ser um desenvolvedor da Web. Na minha opinião, a Internet é responsável por um emburrecimento coletivo da nossa inteligência. O senhor simplesmente não precisa ser tão inteligente para criar uma página da Web.

Eu realmente espero que todos estejam errados e que nem tudo seja “transferido para a Web”. Porque, se isso acontecer, um dia terei que me juntar a esse movimento chato com relutância ou terei que encontrar outra profissão.

Vamos deixar de lado, por enquanto, o argumento absurdo de que o desenvolvimento na Web não é desafiador e que atrai desenvolvedores de software abaixo da média. Mesmo que isso fosse verdade, é irrelevante.

Detesto ter que dar a má notícia ao Michael, mas para uma porcentagem cada vez maior de usuários, o aplicativo de desktop já está morto. A maioria dos aplicativos de desktop de que os usuários típicos precisam foi substituída por aplicativos da Web há anos. E mais são substituídos todos os dias, à medida que os navegadores da Web evoluem para se tornarem mais robustos, mais capazes e mais poderosos.

O senhor esperança tudo não seja “transferido para a Web”? Acorde! Isso já aconteceu!

Qualquer estudante de história da computação dirá ao senhor que o domínio dos aplicativos da Web é exatamente o que o princípio da menor potência prevê:

A ciência da computação passou os últimos quarenta anos criando linguagens que fossem tão poderosas quanto possível. Hoje em dia, temos que avaliar os motivos para escolher não a solução mais poderosa, mas a menos poderosa. Quanto menos poderosa a linguagem, mais o senhor pode fazer com os dados armazenados nessa linguagem. Se o senhor os escrever em uma linguagem declarativa simples, qualquer pessoa poderá escrever um programa para analisá-los. Se, por exemplo, uma página da Web com dados meteorológicos tiver um RDF descrevendo esses dados, um usuário poderá recuperá-los como uma tabela, talvez calcular a média, desenhá-los e deduzir coisas a partir deles em combinação com outras informações. No outro extremo da escala estão as informações meteorológicas retratadas pelo astuto applet Java. Embora isso possa permitir uma interface de usuário muito legal, não pode ser analisado de forma alguma. O mecanismo de pesquisa que encontrar a página não terá ideia do que são os dados ou do que se trata. A única maneira de descobrir o significado de um applet Java é colocá-lo em execução na frente de uma pessoa.

A web é a própria personificação da fazer o mais estúpidoa coisa mais simples que poderia funcionar. Se isso o assusta, se isso o perturba, então eu humildemente afirmo que o senhor não tem nada que ser um programador.

Deve todos os aplicativos serão aplicativos da Web? É claro que não. Continuarão a existir exceções e classes importantes de software que não têm nada a ver com a Web. Mas esses são aplicativos minoritários e especializados. Nichos importantes, com certeza, mas nichos mesmo assim.

Se o senhor deseja que seu software seja experimentado pelo maior número possível de usuáriosnão há caminho melhor do que um aplicativo da Web. A Web é a rede de distribuição de software mais eficiente, mais abrangente e mais imediata já criada. Qualquer usuário com uma conexão à Internet e um navegador, em qualquer lugar do mundo, está a dois cliques de interagir com o software que o senhor escreveu. O público e o alcance até mesmo do mais ruim é surpreendente e aumenta a cada dia. É por isso que criei a Lei de Atwood.

Lei de Atwood: qualquer aplicativo que pode ser escrito em JavaScript, será eventualmente será escrito em JavaScript.

Escrever Photoshop, Word ou Excel em JavaScript não faz nenhum sentido em termos de engenharia, mas é inevitável. Isso vai acontecer. Na verdade, já está acontecendo. Basta olhar ao seu redor.

Como desenvolvedor de software, Sou mais feliz escrevendo software que é usado. Qual é o objetivo do todo esse trabalho artesanal Se o seu software acabar trancado em um executável binário, que tem que ser adquirido e licenciado e enviado e baixado e instalados e mantido e atualizado? Com todas essas barreiras antigas e tradicionais entre programadores e usuários, é de se admirar que o setor de software tenha conseguido existir. Mas no admirável mundo novo dos aplicativos da Web, essas limitações desaparecem. Não há limites. O software pode estar em qualquer lugar.

A programação da Web está longe de ser perfeita. Ela é completamente desastrada. É verdade que qualquer J. Random Coder pode criar um aplicativo Web terrível, e 99% dos aplicativos Web são uma porcaria absoluta. Mas isso também significa que os verdadeiros brilhante os programadores estão agora colocando seu código diante de centenas, milhares, talvez até milhões de usuários que eles não teriam absolutamente nenhuma esperança de alcançar antes da Web. Não há nada mais triste, na minha opinião, do que um código que morre desconhecido e não amado. A transformação do software em aplicativos da Web permite que os programadores apresentem seu software a alguém, em algum lugar. Mesmo que seja uma porcaria.

Se o argumento do público e da habilidade artesanal não for suficiente para convencer o senhor, considere o ângulo comercial.

O senhor está criando um aplicativo da Web, certo? Não estamos na década de 1980. Seu aplicativo da Web de baixa qualidade e sem qualidade ainda será mais bem-sucedido do que o aplicativo de software mais sofisticado de seu concorrente.

Em breve, toda a programação será programação para a Web. Se o senhor não acha que isso é motivo de comemoração para o programador médio que trabalha, então talvez o senhor deveria encontrar outra profissão.