Desenvolvimento web não é engenharia de software.
O desenvolvimento web é frequentemente mal compreendido como uma extensão da programação de computadores ou engenharia de software. No entanto, é muito mais semelhante a uma obra de arte que emprega código como ferramenta. Assim como um pintor usa pincéis e cores para criar um quadro envolvente ou um músico utiliza seu instrumento para criar melodias emocionantes, um desenvolvedor web usa HTML, CSS e JavaScript - código - para criar uma experiência de usuário cativante no browser.
Um desenvolvedor web pode ser competente em seu trabalho sem compreender as complexidades do JSON, por exemplo e entender que se trata de uma tabela hash extremamente sofisticada. Se você mergulhar nos arquivos fonte do V8 envolvidos exclusivamente em operações e manipulações deste objetos, encontrará conceitos avançados como tree-shaking, eliminação de código morto e escopo lexical além de muitos outros mais 'básicos' como sincronização de threads, gerenciamento manual de memória e aritmética de ponteiros.
Esse nível de entendimento, no entanto, é complemente irrelevante para o desenvolvedor web médio. Na realidade é totalmente possível criar interfaces web formidáveis sem sequer saber o que é uma tabela hash - e talvez, qualquer outro algoritmo ou estrutura de dados.
Por outro angulo, podemos considerar o protocolo HTTP, a espinha dorsal da web. É bastante raro encontrar um desenvolvedor web que tenha realmente lido e estudado o RFC 2616. Enquanto em todos os campos da engenharia - seja civil, mecânica, elétrica ou de software - a leitura e manutenção de normas, especificações e regulamentos é parte fundamental do trabalho.
Este entedimento, nos leva a uma proposta interessante: e se começássemos a trazer 'artistas' para o desenvolvimento web em vez dos tradicionais graduados em ciências da computação e outras engenharias? Aqueles que são intimidados pelos conceitos - formais; abstratos; rigorosos; complexos - da matemática, tradicionalmente associados à programação e computação, mas que são virtualmente inexistentes no desenvolvimento web.
Nesse cenário seria completamente concebivél e encorajado aos 'designers UX' - que tradicionalmente apenas 'desenham' interfaces - realmente fazendo a maior parte da codificação usando frameworks feitos sob medida para eles por engenheiros de software; que não precisariam mais lutar com o alinhamento de divs.
Essa mudança de paradigma poderia potencialmente revolucionar a maneira como percebemos e abordamos o desenvolvimento web. Ao traçar distinções claras entre as funções de engenheiro e artista podemos garantir que as pessoas estejam trabalhando onde são mais eficazes e satisfeitas. Além de atrair novos talentos e inovaçoes para ambos os lados, garatindo que todos estajam trabalhando com as ferramentas mais adequadas.
Imagine que parte do esforço usado para criar novos frameworks javascript na última década tivesse sido ao invez, usado para discutir e redigir novos documentos e comentários no IETF.
Em conclusão, acredito que o desenvolvimento web deve ser visto mais como uma forma de arte do que como programação de computadores. Essa mudança de mentalidade pode abrir caminho para abordagens mais inovadoras na criação de experiências cativantes na web para usuários em todo o mundo.
Edit:
Para aqueles negativando este tópico sem participar da discussão: convido-os a trazer suas perspectivas para enriquecer nosso debate! Cada ponto de vista tem valor inestimável em nossa busca por melhorias constantes no campo do desenvolvimento web.