Veja qual a diferença entre Framework e Biblioteca

Está pergunta é muito comum as vezes é a causadora de discussões em círculos de desenvolvedores pois framework e bibliotecas podem ter significados diferentes para pessoas diferentes e em momentos diferentes. No entanto existe uma definição geral que tentarei descrever aqui com a finalidade de simplificar e esclarecer cada um.

Biblioteca

Uma biblioteca é uma coleção organizada de funcionalidade uteis. Um exemplo de biblioteca padrão poderá incluir funcionalidades para manipular string, datas, eventos, animações, etc… Cada uma destas funções retornará valores para a aplicação que a está invocando que então poderá ser manipulada de acordo com a necessidade.

Bibliotecas normalmente fornecem um nível mais alto de abstração que serve para facilitar implementações que sofrem inconsistências devido a variáveis externas. Por exemplo, uma chamada AJAX normalmente depende da API XMLHttpRequest mas a mesma precisa de várias linhas de código para lidar com as inconsistências entre os navegadores. Por isso uma biblioteca pode fornecer um método ajax() que lidará com essas mudanças, deixando você livre para se preocupar com a implementação da lógica de negócio.

Uma biblioteca pode reduzir o tempo de desenvolvimento de pois não a necessidade de se preocupar com detalhes. Por outro lado, um bug dentro da biblioteca pode se tornar difícil de descobrir e corrigir, não há garantias que os responsáveis pela biblioteca irão corrigi-lo em tempo hábil e uma atualização pode mudar a API de forma a causar mudanças em seu código.

Frameworks

Um framework é o esqueleto de uma aplicação que requer que você utilize um design de software especifico e insira sua própria lógica em certos momentos. As funcionalidades como eventos, armazenamento e ligação de dados são fornecidas prontas para o desenvolvedor.

Comparado com uma biblioteca, o nível de abstração é mais alto e somado as diversas funcionalidades prontas, o desenvolvimento dos primeiros 80% será incrivelmente rápido. Por outro lado, os 20% restantes podem ser mais difíceis que a primeira parte se eles saírem das limitações do framework, atualizações são muito difíceis de serem implementadas e ao mesmo tempo o código se torna obsoletos relativamente rápido.

Qual é a melhor linguagem de programação para iniciantes?

Este post é para você que está procurando sua primeira linguagem de programação. Antes de mais nada gostaria de dizer que existem diversas linguagens que são ótimas e pessoalmente aprendi muito mais estudando linguagens de programação diferentes e com paradigmas diferentes do que teria aprendido estudando apenas uma.

Tendo dito isto, respondo à pergunta dizendo que acredito no JavaScript como sendo o melhor candidato para ser a sua primeira linguagem de programação pelas seguintes razões:

Não é necessário fazer setup

Por ser uma linguagem interpretada por praticamente todos os browsers, não é necessário baixar nenhum programa para rodá-lo. Adicionalmente, o código pode ser escrito até mesmo no bloco de notas e rodado diretamente. Como exemplo, abra o seu bloco de notas e digite o seguinte código:

alert("Olá MundoJS!");

Salve como teste.html (lembrando que não pode ser um arquivo txt) e abra-o em seu browser favorito (Chrome, Edge, Firefox ou até mesmo o IE). Você que abrirá uma página em branco com um pop up mostrando a frase “Olá mundo!”. Para aqueles que preferem evitar o uso de pop ups, tente o seguinte:

console.log("Olá MundoJS!");

Ao rodar o seu código parecerá que nada acontece, no entanto basta entrar nas ferramentas de desenvolvedor (normalmente o atalho é o botão F12) e selecionar a aba “Console” e lá estará nossa frase “Olá mundo!”.

Ampla aplicação em diversas tecnologias

Apesar de ser uma linguagem focada para o desenvolvimento web, existem diversas implementações do JavaScript. Atualmente pode-se programar para

  • Serviços back-end
  • Aplicativos Mobile
  • Robótica
  • Internet das coisas
  • Aplicativos Desktop

Ótimas (e gratuitas) ferramentas para trabalho:

Apesar das funções poderem ser escritas em qualquer editor de texto, o melhor mesmo é aproveitar das vantagens que diversas IDE e editores avançados fornecem para acelerar o trabalho e facilitar a identificação do código. E a melhor parte é que mesmo as ferramentas gratuitas já oferecem grande auxilio de forma que você pode começar a desenvolver diversos scripts e aplicações sem precisar gastar dinheiro logo de cara.