No final o framework escolhido realmente faz diferença?

Olá! Essa é a minha primeira publicação aqui no TabNews, e gostaria já de aproveitar para tentar tirar uma "dor" que estou tendo kk.

Sou um desenvolvedor iniciante, recém formado também. Trabalhava como suporte aqui na minha empresa (Empresa de telemetria, temos um equipamento que monitora níveis de tanques e os disponibilizamos online) e recentemente consegui ser movido para área de desenvolvimento. Mas aí que está rs, sou o único nela na parte do front-end. O desenvolvimento antes era totalmente terceirizado, mas o desenvolvedor front-end já não está mais na área e então resolveram me dar uma chance aqui :).

O desafio será a recriação do sistema e sua interface, que já possui alguns bons anos. Meu chefe me pediu para definir o novo framwework que será utilizado, para começarmos a pensar melhor. Gostaria então de uma ajuda de vocês para isso. Desenvolvo em Flutter, mas não sinto que Flutter Web está maduro o suficiente. Então estou pesquisando e aprendendo bem as bases de JavaScript. O sistema irá possuir bastante elementos de dashboard, gráficos e etc, além de grids e muitos formulários.

Não sei até que ponto o framework irá importar tanto, mas no momento estou pensando em React, talvez pela similaridade de conceitos de componentes com o Flutter, mas gostaria de saber melhor a opinião de pessoas mais experientes. Se puderem dar uma ajuda, valeu! kk.

Eu fiz conta aqui só pra responder tua pergunta.

Eu te indicaria dar uma olhada no no Quasar Framework baseado no Vue, o desenvolvimento é muito rápido, ainda mais que você é o único nessa area na empresa, vai te poupar um bom tempo.

boa sorte na tua carreira.

Po, obrigado pela contribuição! Não conhecia esse Quasar, vou dar uma olhadinha nele sim.

Uma resposta bem simplista seria tanta faz o framework o importante é uma solução funcionar. Mas no seu caso esse tipo de resposta não direciona para uma melhor solução e sim geraria mais confusão.

Então nesse caso vou prezar por um caminho que acredito ser mais conservador, levando em conta que está chegando agora na parte de desenvolvimento, com pouco conhecimento de front pois estava estudando o Flutter.

Pois bem não sou dev FRONTEND trabalho mais no BACKEND e com aplicações fullstack MVC e se eu recebesse esse teu desafio aí optaria por trabalhar com o Angular, alguns poderiam dizer que é porque o Angular tem muitas semelhanças com o BACKEND, mas na real não e isso não.

Os motivos que me levam a optar pelo Angular são:

  • Nível de maturidade do framework ( a o REACT também e maduro) o Angular e mais

  • Ao fazer update de uma versão para outra a quebra de compatibilidade e bem menor que a do REACT

  • Por já estar a um bom tempo no mercado e por sua maturidade esses componentes que você falou, FORM Grid, Dashboard etc. existem milhares de exemplos aos montes

  • Tem mais tutoriais e exemplos e de implementação

  • Se quiser facilitar ainda mais tem uma LIB do Angular chamado POU-UI criada pela TOTVS com uma documentação bem completa que te fornece vários componentes prontos link https://po-ui.io/

  • Roda em qualquer WebServer Ngix,IIS etc.

Bom essa é apenas a minha opinião, é interessante ver os outros vão sugerir, com certeza terão um contraponto a minha opinião.

Espero ter ajudado, se tiver mais alguma informação contribua para discussão basta responder.

Gostaria só de acrescentar alguns pontos e debater, mas acho que desses que desses pontos que você colocou acho que só o segundo ("*Ao fazer update de uma versão para...*"), faz sentido. Angular perdeu muito espaço para **React** e **Vue**, não digo que ele é ruim, ele é incrivel e ele ta vivo e tendo atualizações até hoje é prova disso, mas a quantidade de documentação, tutoriais, videos, cursos, "Zero To hero" do React e até mesmo do Vue é bem maior e atualizado. ## Agora sobre o post em si: Tendo em vista a arquitetura o **Angular** é mais "organizado", por se um framework e o **React** uma biblioteca. Meu conselho é ir para um que você tenha mais familiaridade, hoje os framework/bibliotecas estão muito evoluidas e todas (~~a grande maioria~~) já são bem competentes, a melhor para você é a que você vai trabalhar com velocidade e qualidade.
Sim, o que pesa para mim no React, e talvez até o Vue é essa parte. Eu vejo muito muito mais conteúdo sobre eles por aí, inclusive em cursos que faço.
Concordo com você. Tanto faz o framework, tanto faz a tecnologia. Se vai ser com Web nativo ou com Java puro, sempre vai atender a necessidade. Mas calcule bem antes de escolher uma tech. Lembre-se que você precisa fazer manutenção, escalar o sistema, etc. Recomendo o Angular pela sua performance. Diferente de frameworks como React, Angular vem com um pacote completo de ferramentas feito pelos engenheiros da Google que você precisa pra codar um sistema completo, dependendo apenas de bibliotecas para estilização. Angular trabalho com ou sem SSR, e conta com ViteJS que otimiza o código para você. Sem falar do cli que ajuda na produtividade. Sou dev Angular, vou fazer um resumo pra você. Angular CLI: `ng generate component meu-primeiro-componente (também pode abreviar todos os comandos para a primeira letra: ng g c meu...)` Ele vai gerar um arquivo HTML, um CSS e uma classe Typescript. Isso mesmo, um arquivo para cada parte do seu código. Se você tiver um problema, não precisa sair vasculhando todo o projeto pra achar a falha, vá direto no componente certo e no arquivo certo. Angular trabalha com injeção de dependências, ou seja, não vai guardar lixo na RAM do seu computador. Angular é facilmente escalável, e possível diretivas que você pode usar direto no HTML, sem precisar de uma lógica absurda pra esconder um componente. Ex: ```typescript hidden = false ``` ```html

Isso é um parágrafo

``` Enquanto hidden for falso, o componente é exibido. Se fosse outro framework, você provavelmente precisaria modificar diretamente o html usando um seletor javascript ou usar um operador ternário. Muita volta pra pouca coisa. A nova atualização do Angular (v17) trouxe uma documentação mais legível, o que ajuda muito no desenvolvimento. Então você tem o angular.io e o angular.dev como doc. Não é querendo desmerecer os demais framework, mas o Angular e mais seguro e robusto, já que quase nada vem da comunidade. As chances de vulnerabilidades são menores. É uma ótima escolha para aplicações webs complexas, é limpo e organizado. E precisa ser muito arruaceiro pra conseguir bagunçar o Angular, já que ele organiza o projeto pra você.
Valeu pelos exemplos! Angular acho interessante pela parte de que eu vou trabalhar sozinho, e como ele é bem fechadinho assim, parece ser mais difícil fazer um "spaghetti code" kkk, mesmo com pouco experiência. Porém algo que me preoucupa mais nele é a curva de aprendizado. Eu teria que surgir com algumas soluções já para um primeiro momento, e pelo que pesquiso até dominar mais o framework realmente leva um tempo. O que você acha disso?
Olha, todos os frameworks levam tempo e a curva de aprendizado deles nem chega a fazer diferença. Exemplificando, se você precisasse de 20 dias pra dominar o React, então seria 25 dias para dominar o Angular. Lembra que eu falei que o Angular vem com tudo que você precisa pra codar? Poisé, essa é a cereja do bolo! Domine uma ferramenta e dominará todas. Aprende services para lógica do site, guard para trabalhar com permissões, modules para organizar as dependências e routes para trabalhar com rotas. São as ferramentas que o Angular oferece, não precisa dominar o framework, apenas saber usar as ferramentas que se encaixa no seu projeto. Aprenda Observable para trabalhar com stados e http para requisições http. O resto vai seguir o mesmo padrão. Sempre passando a ferramenta no construtor da classe. Sobre cilco de vida, aprenda ngOnInit pra definir o que o componente tem que fazer antes de ser iniciado, ngOnDestroier pro comportamento quando for destruído, ngOnChanges para mudanças, etc. Aprende @input e @output pra comunicação entre componentes. No React, precisaria de um Redux ou usar Context API. Redux na minha opinião, é pura gambiarra. Não é todo esse bicho de 7 cabeças que a comunidade fala. Veja você mesmo nessa [playlist do Matheus Battisti](https://youtube.com/playlist?list=PLnDvRpP8Bnex2GQEN0768_AxZg_RaIGmw&si=xyVudwXAW0jOODeV)
Interessante, Angular é um dos que estou mais de olho também. É muito bem estabelecido, e sempre ouvi que para soluções empresariais seria o melhor.

A única coisa que o framework define é quanta raiva vc vai passar fazendo a aplicação. Eu costumo escolher aquele que me faz atirar menos no próprio pé. Claro. Você com anos de experiência aprende a ser produtivo com algum deles. Mas se dedicar anos a uma tecnologia que será substituída em um futuro próximo nunca é uma boa ideia. Eu cheguei a um ponto em que acho mais interessante desenvolver para web em vanilla js do que utilizar qualquer framework.

O que procuro no momento é isso mesmo kkk. Acredito que no final o importante é resolver, mas tem casos de uso que uns podem ser melhores que outros, inclusive vanilla js.

Não sei a sua desenvoltura em programação, mas acho que você tem que pesar bem um ponto primeiro. se você já sabe fazer em Flutter, tem pouca experiência em programação, está com um grande desafio que é pegar um sistema que já está rodando e precisa refazer. Talvez mudar de linguagem seja um tiro no pé. pq toda linguagem tem sua curva de aprendizado. Quando você tem mais experiência, consegue se sair melhor nessa mudança, mas para um iniciante, você provavelmente vai errar um bocado e é só você.

Eu também acho que React, Vue ou até Javascript puro seriam ótimas opções, mas assim como você pensa em trocar de linguagem, pode acontecer do seu patrão pensar em trocar de funcionário se você não entregar nada e se enrolar. Afinal o sistema já foi feito uma vez, ele já tem uma noção do tempo e esforço que gasta.

Mas se seus estudos já te deram base pra seguir, blz, fica só o pensamento.

Então, ele tem noção que sou iniciante na área web, e por enquanto pelo menos o prazo para começar ainda está ok. Mas sim, é algo que me preocupa um pouco kk. O problema com Flutter é que fazendo apps Web mesmo eu já apanhei com algumas funções que em nativo seria tranquilo. Flutter Web ainda me deixa com o pé atrás para algo mais complexo em produção.

Ja utilizei muitos frameworks web, trabalho com Angular, ja trabalhei com Vue/Nuxt, e meus projetos pessoais são todos em NextJS, ja criei alguns projetos usando Svelte, JQuery etc... Hoje qualquer projeto que eu pudesse escolher iria para React/Next.

Porque é o melhor? Não, pra mim o melhor framework é o Vue atualmente.

Mas porque eu escolheria React? Pela comunidade... praticamente tudo que tu for prescisar voce encontra uma lib ou alguem que ja passou pelo menos problema, isso agiliza e muito sua vida.

Bom ponto, esse é o principal fator que está me deixando "mais pro lado" do React. Ainda mais comigo iniciando, e fazendo sozinho, com certeza vou me deparar com muitos e muitos problemas kk.

Há dois anos iniciei um projeto full stack e tive de fazer essa escolha. Comecei com Angular que é muito popular, mas estava sentindo um pouco de dificuldade. Depois de uns 40 dias tomei conhecimento do Blazor. Fiz um teste, gostei, resolvi mudar e foi a melhor decisão que tomei. o desenvolvimento é fácil e traz boa produtividade.

O Blazor é novo em comparação com outros frameworks, mas percebo que a comunidade está crescendo. Esse ano o Blazor ganhou muitas novidades com o lançamento do .NET 8. Os apps Blazor são SPA, rodam sobre WebAssembly e você consegue aplicar PWA na criação do projeto.

Existem alguns pontos que eu acredito que contam a seu favor nesse cenário que descreveu:

  1. O Blazor conta com o pacote MudBlazor totalmente baseado em Material Design 3 e com recursos excelentes de grids, formularios e gráficos como você mencionou. Dá uma espiada em https://mudblazor.com/docs/overview

  2. Você poderá reaproveitar seus conhecimentos em Blazor no .NET MAUI que permite o desenvolvimento cross platform. Ou seja, você vai aprender um framework para desenvolver sites e app mobile ao mesmo tempo.

Não sei se você conhece C#, mas já que está disposto a aprender coisas novas vou te indicar cursos e canais onde você encontra muita informação sobre C# e Blazor.

  1. https://www.udemy.com/course/curso-blazor-essencial/
  2. https://www.udemy.com/course/blazor-the-complete-guide/
  1. Macoratti: https://youtube.com/@josecarlosmacoratti?si=CX8Vha_nv07MUO5Z
  2. balta.io: https://youtube.com/@baltaio?si=QVTySuYW-h_Xx-aC
  3. Canal dotNET: https://youtube.com/@CanalDotNET?si=0nPo-pB5144HzF-i
  4. Gerald Versluis: https://youtube.com/@jfversluis?si=-AsY3VaCKj2RseNo
  5. Patrick God: https://youtube.com/@PatrickGod?si=_fof4T78T38psNYc
  6. DevExpress: https://youtube.com/@DeveloperExpress?si=7m6j6eVGapI-WI8_
  7. James Montemagno: https://youtube.com/@JamesMontemagno?si=hlGjqgCeLN2aXU_O

Caso não conheça a Udemy, dependendo do dia que você abrir esses links esses cursos podem estar com valores próximos a 100 reais, mas eles criam promoções praticamente toda semana e você consegue comprar por valores próximos de 25. E vale muito a pena, pois o acesso é vitalício e você tem o suporte dos instrutores na própria plataforma.

Se você estiver interessado(a) em conversar um pouco sobre essa minha jornada pelo Blazor e trocar uma ideia a respeito disso tudo você pode agendar uma sessão no growing.dev: https://app.growing.dev/mentors/650b74afd328d8d457ec18d0

É isso. Espero ter ajudado!

Esses tempos dei uma olhadinha no Blazor também. Achei bem interessante a ideia. C# também é uma das linguagens que tenhos vontade de dar uma olhada. Valeu pela contribuição!

Não é uma boa ideia introduzir um novo framework ao mesmo tempo que você está criando algo para ser colocado em produção. Eu usaria o que você tem mais familiaridade, pois um novo projeto por si só já tem desafios o suficiente, aprender ao mesmo tempo que constrói algo é garantia de muita dor de cabeça e noites mal dormidas.

O melhor framework é aquele que você tem mais domínio e vai gerar menos problemas para você e para a empresa.

Realmente, entendo esse ponto. Por enquanto ainda tenho um pouco da vantagem de terem conhecimento que sou iniciante na área e me darem um prazo para dar uma boa estudada, mas ao mesmo tempo ainda fico com um pouco de receio. O duro é que Flutter Web também fico um pouco com pé atrás para algo "um pouco" mais complexo, em produção. Otimizá-lo e fazer algumas features nativas ainda pode ser um desafio kk.