Começo dizendo que não conhecia o movimento, acho interessante porque bate com minha opinião, no geral.
Porém, eu não sou muito fã de movimentos assim por três razões.
- Eles costumam ser bobos
- Tendem a ser deturpados
- É só mais uma modinha
Eu não quero impor minha opinião para ninguém. Eu gosto de expor minha experiência, minhas preocupações, eu tenho um interesse genuíno em buscar um mundo melhor, especialmente para mim, egoisticamente, junto com outras pessoas, altruisticamente, podermos usar aplicações melhores e fazer que mais e mais pessoas entrem nesse caminho, e faça da profissão algo realmente importante para a sociedade e entregue valor concreto em vez de apenas qualquer resultado.
A impressão que me dá é que esses movimentos passam um pouco desse ponto. A linha é tênue, mas hoje vemos muito a sociedade escolhendo pautas de pouco valor para se expressar, mesmo que não faça sentido para ninguém, ou não faça para si, ela está fazendo porque outras pessoas estão fazendo, é uma coisa que um amigo meu chama de dick contest, se é que você me entende. Não deixa de ser uma modinha.
Modinha não é algo passageiro como muitos entendem. E muitas decisões são tomadas baseadas em premissas falsas como esta exemplificada agora. Modinha é algo adotado porque outras pessoas estão adotando, é sobre o que você não tem interesse real, está só querendo fazer parte de uma tribo.
Um exemplo que eu dou é orientação a objeto. Uma técnica que descobri nos anos 80, fui ferrenho defensor, usei errado quase a vida toda, até porque sempre existe material ruim sobre isso, a crença se espalhou, e com o tempo entendendo melhor e vendo como as pessoas usam, descobri que ele não era essa maravilha toda que as pessoas acham. Veja bem, é bom, é útil, e deve ser usado. Mas é modinha, não porque ele deveria passar rápido, mas porque as pessoas usam só porque dizem que isso é bom. Você vê o tempo todo as pessoas procurando pelo "melhor". Elas só querem estar bem na foto. Ao ponto de você ver gente pedindo ajuda e falando "preciso de ajuda no meu código orientado a objeto, ele não entra no if
". Ela não precisa entregar um resultado bom, ela só quer estar na moda.
Qualquer coisa adotada por moda está errada. Até o que eu sempre defendi. Por isso é diferente de apoiar algo dentro da "minha ideologia". Por isso que é diferente de ser moda. Por isso que eu faço ressalvas até quando algo é favorável para mim. Questionar é um princípio básico de quem quer fazer algo melhor, mesmo que não alcance totalmente o objetivo. Mesmo que seja considerado um chato que sempre está vendo problemas nas coisas. E por isso deve refletir bem sobre o assunto porque ele é mais complexo do que parece.
E sem entender o todo, sem que a decisão seja baseada em estudo sério da computação, da engenheria de software, da profissão de desenvolvimento de software, do mercado, você não pode tomar uma boa decisão, vai adotar isso como modinha, como provavelmente faz, até porque é fácil fazer, tenho inúmeros casos próprios para contar, e fará errado, e apenas mudará de problema.
Nem todo caso deve fazer sem framework. Já tentou fazer GUI sem um? Se a única opção for um deles, o que vai fazer? Sabe a produtividade que ele pode dar? Se você não sabe programar, é melhor ou pior com ele? Já pensou que o seu caso pede para criar um framework?
Essa última é polêmica, porque há críticas específicas. E de fato você deve se frear de fazer um. A não ser que faça sentido. Existem projetos que fazem todo sentido, são raros, provavelmente você não os fará, mas pode fazer sentido.
A questão é sempre a pertinência. Adotar ou não, não pode ser dogma, não pode ser imposição de um movimento (que você pode aderir ou não). Eu não quero o compromisso de adotar algo. Eu quero a liberdade de fazer a escolha certa para cada caso, seja por motivos técnicos, e até políticos, que importa também. Eu tenho que tomar a melhor decisão para aquele momento, não posso me prender a dogmas. Isso leva a erro.
É bobo achar que aderir a um movimento fará sua vida melhor, que sua carreira será melhor, que obterá melhores soluções, ou que fazendo parte dessa tribo fará o mundo ser melhor, mesmo que a ação em si possa fazer. Você pode divulgar o movimento, expressar sua opinião, até fazer parte dele como um statement, mas tem que ter cuidado para não ser apenas massa de manobra, em todo "movimento" na vida.
Esses movimentos não costumam obter muito sucesso porque ou ele não é natural, ou porque ele não alcança o objetivo. E quando tem sucesso, mesmo que parcial pode ser pior, as pessoas adotarão por motivos errados e de forma errada.
É como o movimento que prega o não uso de if
. Vira um telefone sem fio. As pessoas começam a adotar pelos motivos errados, e fazem atrocidades para dizer que está nessa moda (goto is harmful), piorando seu código. Por isso é bobo participar de algo assim. O mesmo vale para Agile, que é completamente deturpado porque quase todo mundo cria burocracias de como fazer ele certo. E bate de frente com o que diz o manifesto. As pessoas dizem que fazem, sem fazer, só para dizer que são modernas, competentes e conformes.
Por que eu deixaria de usar um framework que me traz vantagens importantes em um cenário em particular porque alguém que não paga minhas contas me disse que eu deveria?
Por que eu abandonaria algo que está funcionando bem e traz vantagens, para adotar algo da moda, que pode não trazer vantagens suficientes para compensar as desvantagens?
Por que eu adotaria algo que atrapalha a experiência do usuário só para facilitar meu trabalho? A UX é uma das coisas mais importantes de um software, o que inclui performance, e um framework pode não entregar isso. Ou pode ser a melhor opção para isso. Quem tem experiência sabe disso. Quem não tem, adota o que o "mercado" manda ela fazer. Tem caso que facilitar a vida do desenvolvedor é importante, mas quase nunca em detrimento da UX, e vemos o tempo todo as pessoas fazendo isso. Muitas vezes com justificativas que não param em pé. Em alguns casos chega ser brutal, quase todo mundo toma certa decisão porque está todo mundo fazendo, até em certo momento pode fazer sentido, porque o mercado começa pedindo errado.
Você faz tudo para web porque é bom para você ou para seu usuário? Você adota NoSQL em favor de quem? Quer fazer microsserviços com que objetivo? (bem, isso nem ajuda o desenvolvedor, no máximo o currículo dele).
Vai adotar React por que está todo mundo adotando? Sabe todos os benefícios e desvantagens? De verdade, não o que está nas páginas por aí para incentivar você a usar, ou para não usar, mas em favor do Angular. Você tem conhecimento profundo e experiência para tomar a decisão certa? E se não tem, então o certo é ouvir quem? Um movimento bobo organizado por algumas pessoas inconformadas com o erro, ou com a esmagadora maioria do mercado?
O que você responder aqui dirá muito sobre você. Não tem resposta certa, ambas estão erradas. Não é assim que se decide.
Para tomar uma decisão de usar ou não um framework você deve saber de tudo, até da existência desse movimento. Que me parece bastante cuidadoso, não querendo impor nada você, só te alertando para tomar melhores decisões. No exemplo citado na postagem original nós nunca saberemos se tomaram a decisão certa, e para quem foi certo.
Mas você percebeu que ele não entende o movimento? Me pareceu que ele disse "eu tenho que ir contra framework porque o movimento que eu resolvi fazer parte diz para eu ser contra, mas eu serei a favor do que você quiser porque eu estou tomando a decisão certa". Mas o movimento nem deveria entrar na equação, e se entrou, tomar a decisão certa é o que ele prega, não o que diz no título dele, que parece ser só um chamariz.
Já parou para pensar que escolher entre React ou vanilla tanto faz quando a decisão de fazer para web já era errada? Eu sempre falo, muitas das decisões que as pessoas tomam são para consertar o erro da decisão anterior, quando deveria consertar o erro original. Assim como usar Java, Kotlin, Swift, Objective C, C#, ou outra coisa para fazer mobile tanto faz quando ninguém quer instalar seu app no celular.
Minha experiência mostra que migrar de algo vanilla para um framework, só pode ser a decisão certa quando antes foi tomada a decisão errada. O contrário é mais comum. Se deu a produtividade necessária no começo, para depois entregar mais valor ao usuário, então se abandona o framework, o que é uma decisão corajosa, porque é difícil fazer isso. Sabe quando eu falo que se você aprende o errado, pratica o erro e sempre o reproduzirá? Vale aqui também. Depois de feito é difícil desfazer. E por isso que eu critico bastante o tal de MVP, onde ele vira eterno, é raro consertar, até porque fica mais difícil e caro depois, mas se o fizer, é isso que eu falei, você migra do ruim para o melhor para benefício do usuário, já que no começo fez o melhor para você.
Pra mim o melhor ponto do "movimento" é ele falar que deve analisar seu contexto. Se você tiver competência fará a melhor decisão, se não tiver, é o que tem, fazer o que...
Por isso que bato tanto na tecla dos fundamentos. Não tem sênior que toma decisão baseada em mercado, em movimento, ou outros motivadores assim.
Com ou sem movimento continuaremos tomando decisões erradas, assim como certas, para os dois lados.
As justificativas para uma decisão, especialmente de usar um framework, costumam ser falaciosas, em geral por ingenuidade.
Tem que ficar esperto porque em muitos casos criadores de modinhas só querem notoriedade.
O mundo não precisa de mais uma divisão, desta vez entre "só deve usar framework" ou "nunca usar framework".
Ah, e pra deixar claro, essas plataformas no e low code, Wordpress e muitos outros softwares de programação são frameworks disfarçados. Só porque não leva o nome ou não é classificado assim, não quer dizer que não seja. É que eles ainda possuem uma camada ou uma ferramenta a mais ou entregam um exemplo de implementação pronto, e podem ser classificados como outra coisa.
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).