Executando verificação de segurança...
7

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).

Carregando publicação patrocinada...
2

eu não sou muito fã de movimentos assim

Eu percebo que em muitos casos, esses movimentos do tipo "Não faça X" usam como exemplos os casos em que X é a pior opção. E esquecem de falar dos usos legítimos.

Claro que tem exceções, mas em geral, eles costumam ser tendenciosos e enviesados. Então sempre tem que ler os manifestos com cuidado, filtrar o que é "fanatismo" e o que dá pra aproveitar, e não tomar aquilo como verdade absoluta. Raríssimas coisas são definitivas na nossa área, a resposta mais honesta (e próxima do "correto") costuma ser o bom e velho "depende".

1

Obrigado por sua contribuição para o post!
Achei muito valido o seu ponto de vista e sua opinião baseada em experiencias ja vividas, As questões que você abordou são muito relevantes e muitas das vezes deixadas de lado quando se está planejando um novo sistema ou mesmo uma atualização, elas merecem uma atenção especial.

1

Adorei o comentário, parabéns pela qualidade da explicação e pela visão que teve sobre o assunto.

De tudo que li, só tem um ponto que fiquei pensando e acho importante considerar na discussão sobre a modinha: quem tá entrando no mercado (de estagiários a júniors e, não raro, até mesmo plenos) querendo ou não fica refém da tendência do mercado. Como vão escolher ir contra a maré quando a maioria do material de estudo atualizado é sobre o que o mercado atual pede?

Claro que acho errado o que acaba acontecendo nesses casos que é o iniciante aprender if/else, vai pra um getElementBy, só pra ter o gostinho do JS, e daí pra frente só usa a framework. Ou seja, aprende a fazer tudo apenas a partir das facilidades e padrões da framework. Mas, no final, apesar de ser muito gostoso discutir em fórums e desafiar a maré, na prática o que você prefere: ter seu orgulho garantido ou seu emprego?

Concordo com todos os pontos sobre muitas vezes não ser necessário uma framework, mas é como diz o ditado: um bom desenvolvedor desenvolve pros outros, não pra ele mesmo. Já que as duas formas são igualmente capazes, se a empresa sabe que vai ser mais fácil achar mão de obra futura, ecossistema de funcionalidades e suporte da comunidade pra, por exemplo, React, por que ela deveria optar por JS/HTML/CSS?

2

De fato tem um pouco de dificuldade. Aí é onde eu questiono um pouco a capacidade dos seniores. Porque no fim são eles, junto com gestores (falo de não técnicos) que definem o'que será usado em projetos maiores.

Em projetos menores, sem equipe, você usa o que você quiser, ninguém liga para o que vai usar. Você tem que entregar o melhor para seu cliente/empregador, em alguns casos algo que não o coloque em situação difícil.

A maioria do material não é atualizado :D Por isso que muita gente aprende errado. O atualizado sempre é escasso, quando ele começa ficar abundante ele já está desatualizado. è incrível como boa parte das pessoas não percebem que estão com algo desatualizado. E aí a gente vê que o buraco é mais embaixo. Como a pessoa não consegue selecionar o material adequado e vai fazer algo mais complexo que é programar?

Tem material bom para tudo. E se não tiver, talvez seja algo para desconsiderar mesmo, talvez aquilo tenha mais problemas. Pode não ter material tão fácil de achar. Mas volto à questão da pessoa querer programar quando não consegue nem pesquisar.

Se a pessoa não consegue sair da bolha do que o mercado dita, ela vai pagar o preço. E vem o pensamento que muita gente não gosta porque querem viver no mundo do arco-íris, quem está na mediocridade terá uma solução medíocre, não tem muito o que fazer. O que pode ser feito é alertar. Eu entendo que algumas pessoas não podem sair disso por diversas razões, eu aceito o fato, mas tenho que dizer que a pessoa pode se preparar para fazer escolhas melhores.

De qualquer forma, boa parte das regras ditadas pelo mercado são falaciosas, é algo imaginário, acontece menos do que parece. Algumas são fortes, claro, e aí tem que ceder em boa parte dos casos. Mas vale o foco central da postagem, não faça nada por dogma, nem mesmo vá contra o mercado.

Eu não faço nada por orgulho, faço o que é melhor. E eu consegui ter o emprego garantido assim. Eu me prepararei para isso. Eu entendo que quem não se preparou tem que ceder mais. Por iso eu bato muito na tecla da preparação com consistência. Até para ter argumentos fortes para tentar fazer sua posição prevalecer (que a gente sabe que nem sempre funciona, o mundo é mais político que técnico, por isso a preparação ajuda ter melhores vagas).

O que a empresa vai fazer é algo que ela vai receber. Ter mais mão de obra de uma coisa, não significa ter mais qualidade. Ela pode escolher uma coisa ou outra. Volta em todo o ponto que eu disse, ela está tomando uma decisão olhando para o umbigo e não para o resultado final. É um direito dela, até porque é ela que vai pagar o preço.

E eu não vejo problema algum se ela optar por React, só verei que ele não sabe, se ele traz dificuldades que não deveriam existir. Como eu disse antes, o React pode ser a opção certa para certo cenário, não só uma que funciona, é a certa. Eu só questionaria se esse cenário deveria existir, o que é uma discussão mais profunda, e isso eu sei que é uma batalha perdida. Não vou deixar de dizer, mas eu reconheço que a força do mercado começa trazer algumas vantagens.