Para que exatamente serve o angular e o react?

Eae galera, blz?
To com uma duvida referente a finalidade das bibliotecas/framework angular e react.
Eu já procurei vem vários lugares como youtube, fóruns, mas não obtive uma resposta satisfatória, que esclareça a minha dúvida. Eu não entendo sobre o mundo front end e queria entender melhor como funciona todas essas tecnologias do mercado.

Todo lugar que eu procurava dizia que angula/react servem para fazer aplicações web (front end). Até ae eu sei, mas dizer que serve para fazer aplicações web fica muito abstrato, fica muito amplo. A minha dúvida é para qual finalidade exatamente eu uso essas tecnologias e por que? Quando eu devo usa-las ou não? Qual a diferença entre usar um javascript comum e um JQuery com uma página HTML?

Já vi vários videos do pessoal criando projetos, mas não caiu a ficha de qual é o fim, o objetivo especifico a proposto. O pessoal construíam várias paginas e eu pensava: “Com HTML, CSS e Javascript da pra fazer isso também”

Outro dúvida é como eu faço para integrar isso com um backend tipo no java, python ou qualquer outro e deixar disponivel para acesso, sem que seja necessário a pessoa que está acessando ter o NPM e o Node

JavaScript Frameworks, por que e quando usá-los
Se você conhece JavaScript, também conhece a infinita linha de estruturas que ajudam a tornar a codificação mais fácil e rápida. Droga, eu acho que eu poderia ter estragado um pouco a parte “por que usá-los”. Na verdade, isso não é tudo. Na verdade, existem vários motivos para usar frameworks JS, mas vou mencionar alguns básicos.

O porquê

  • Um bom programador sabe como fazer o trabalho bem e rápido. Se você não precisa escrever código do zero, por que você deveria? Frameworks são apenas ferramentas, ferramentas que qualquer profissão tem que funcionar melhor. Você vê um carpinteiro usando as mãos para martelar um prego? Ele tem uma ferramenta para isso e você também.

  • A eficiência também é sobre linhas de código. Há alguns ditados de mau gosto: “Posso escrever suas 100 linhas de” insira o nome da linguagem de programação aqui “em apenas algumas linhas de” insira outro nome de linguagem de programação aqui ". Se você pode fazer mais ou a mesma coisa com menos linhas de código, por que não faria isso?

  • Os frameworks não são apenas “ajudar mãos”, eles também são o resultado de muito trabalho de pessoas que não apenas adoram JavaScript, mas também sabem JavaScript de dentro para fora (e provavelmente melhor do que você). Use seu trabalho, aproveite-o.

  • Se você é um iniciante, os frameworks serão seus melhores amigos, se você estiver em um framework de nível intermediário irá ajudá-lo muito, e se você for um expert (um verdadeiro, não um ego meu me diz que eu sou um especialista) você pode começar a escrever seu próprio framework. De qualquer maneira, você está lidando com estruturas.

O quando

Como temos um número tão grande de estruturas, cada uma com seus próprios recursos, há uma opção envolvida, certo? Bem, a maioria das pessoas usa apenas alguns frameworks (eu não os chamarei de mainstream, mas eles são bem mainstream) como Angular, React, Ember etc. Mas, além deles, há muito mais, as pessoas realmente gostam de fazer JS frameworks aparentemente, basta verificar este mecanismo de pesquisa de estrutura - microjs - onde você pode realmente dizer (digitar) o que precisa e obter uma lista de micro-frameworks.

Eu não vou deixar você só com isso, então aqui está uma lista de frameworks e quando usá-los:

Angular - Eu não sou alfabético, mas aqui está o Angular (1.5). É um dos frameworks mais populares, desenvolvido pelo Google e usado por uma multidão de empresas para aplicativos da web. É uma estrutura do tipo MVC que funciona melhor para aplicativos front-end complexos que precisam de apenas uma estrutura modular para tudo.

React, sim, mais um framework muito popular que todo mundo parece estar usando. Não é uma estrutura completa do MVC, por isso é usada em um combo com outros frameworks como o Angular ou o Ember (que serão mencionados mais adiante). O React é uma ótima camada de visualização que funciona bem em uma estrutura isomórfica da web.

Ember - outro framework MVC, funciona como o Angular, sem muita flexibilidade. Ótimo para fazer as coisas funcionarem em um prazo.

Babylon - este é bem diferente, é um mecanismo de jogo 3D baseado em WebGL e JavaScript, perfeito para, bem, criar videogames ou cenas 3D complexas.

O Karma é a ferramenta perfeita para executar testes em diferentes navegadores. Se você quiser ter certeza de que seu aplicativo funciona em todos os navegadores, essa é a estrutura para você.

O jQuery é usado por praticamente todo mundo, alguns dizem que é a biblioteca JavaScript mais usada no mundo. Então, quando você deve usá-lo? Apenas a qualquer momento.

PhantomJS - ajuda você no departamento de testes. Ele permite que você execute testes, monitore solicitações de rede e manipule páginas.

Tradução de um artigo encontrado nesse site.

Provavelmente você deverá procurar por aplicações restful, que provavelmente sejam a melhor forma de interagir entre o frontend e o backend sem deixar os dois juntos

Sem uma necessidade fica abstrato mesmo, só vai entender se precisa ou não de verdade quando tiver participando de um projeto real. Eu mesmo nunca precisei de reactjs ou angular, só tenho usado no máximo jquery, quando necessário.

Sobre a questão de escrever realmente entendi, uma vez que com eles escrevemos bem menos codigos do que usando maneiras “tradicionais”. Uma coisa que percebi (me corrigem se eu tiver errado), por exemplo o angular, parece que o HTML é “engolido” pelo javascript. Eu vejo muito mais javascript que tag HTML e que o proprio javascript parece ser capaz de construir toda a estrutura da página, como se o javascript também fizesse o trabalho do HTML ao criar os elementos.

Saberia me dar exemplo um pouco mais objetivo do que eles suprem. Um objetivo especifico que se encaixe para exemplificar? Qual a especialidade, que cada um propoe?

Eu já vi o contrário, mesmo a pessoa tendo conhecimento em angular perdendo mais tempo com ele do quem trabalha sem ele para tarefas similares.

Voce tem que partir de um projeto, nao da tecnologia, senao só vai ter respostas genéricas.

SPA é um tipo de exemplo clássico em que Angular é mais indicado. Pesquise sobre SPA.

Reactjs é mais pontual para componentes, páginas com muitas áreas onde poderiam ser divididas em componentes podem se beneficiar dele. É o que vendem dele, mas acho uma zona.

Usar esses frameworks em sistemas clássicos seria usar mais por moda do que necessidade, melhor trazer o HTML pronto do servidor e o client ficar mais limpo.

Vc chegou a seguir o tutorial da página oficial do Angular?

É que eu tinha uma dúvida parecida com a sua. Depois que soube que um colega estava usando ele em um projeto, tive curiosidade de aprender pelo menos o básico.

Segui o tutorial mencionado (nele já tive a resposta pra “como integrar com o backend?”). Gostei do que vi e quando tive a oportunidade de trabalhar num projeto freelance nas férias, não tive dúvidas ao escolher este framework como base.