Introdução

  • Como programador, você não precisa começar do zero quando tem ferramentas projetadas para ajudá-lo em seus projetos. Frameworks são softwares desenvolvidos e usados ​​por desenvolvedores para construir aplicações.


O que não é um framework

  • Uma das grandes confusões que profissionais iniciantes ou que não conhecem os frameworks costumam fazer é achar que eles são bancos de dados. Na realidade, um framework pode possuir integração com um banco de dados, mas ele não é o banco de dados, como por exemplo o Laravel (framework php).
  • Alguns podem presumir que um framework é uma coleção de bibliotecas, assim como as bibliotecas são uma coleção de rotinas pré-compiladas. No entanto, isso não é verdade, pois nem todos frameworks usam ou dependem de bibliotecas.


O que é um framework

  • Um framework é um conjunto de código básico genérico usado como um pacote pelos desenvolvedores que criam um programa. Dessa forma, quando um projeto é iniciado pelo profissional, este pacote de códigos prontos é um suporte que facilita o trabalho, evitando a necessidade de iniciar o site do zero, partindo de uma base comum para qualquer desenvolvimento.
  • Esses frameworks podem ser baixados das comunidades de desenvolvedores, normalmente de graça, e em sua maioria open-sources. O pacote de códigos é normalmente criado por vários desenvolvedores, mas com a proposta de criar algo uniforme e padronizado que possa ser usado no máximo de cenários possíveis.


O que há de mais novo sobre frameworks?​

  • Frameworks para aplicações web:
  • React: React utiliza a linguagem de programação typescript ou javascript, é open-source, feito pelo facebook, utiliza o método de programação declarativa, componentização e tem como um de seus principais objetivos o "Aprenda uma vez, codifique em qualquer lugar", pois o React pode não apenas ser usado para sites, e sim, também, para outras plataformas.

Alguns sites populares utilizando React: - Facebook - Instagram - Whatsapp Web - Netflix - Twitter

  • Wordpress: Utiliza a linguagem php, é o construtor de sites mais popular do mundo (cerca de 42% da internet é composta por wordpress), tem como proposito simplificar a construção de sites através da utilização de plugins e templates, de modo que possibilita que até mesmo pessoas sem conhecimento de programação possam usá lo e desenvolvedores com conhecimento mais avançado possam lucrar com a criação de templates e plugins.

Alguns exemplos de sites que usam wordpress: - O blog oficial de Star Wars - BBC America - New York Times

  • Data Science Frameworks:
  • PyTorch: É um framework de código aberto que acelera o processo de pesquisa, prototipagem e deploy. Desenvolvido principalmente pelo grupo de pesquisa de IA do Facebook, o PyTorch pode ser usado tanto com Python quanto com C ++. PyTorch é usado para visão computacional e processamento de linguagem natural (PNL).

Empresas que usam PyTorch: - NVIDIA - Qualcomm - Lucid Motors

  • TensorFlow: É um framework para machine learning. Ele tem um ecossistema abrangente e flexível de ferramentas, bibliotecas e recursos da comunidade que permite que os pesquisadores mergulhem no ML e os desenvolvedores criem e implantem rapidamente aplicativos baseados no ML. Ele utiliza javascript e Node.js como linguagens de programação. Existem principais casos de usos para o TensorFlow: reconhecimento de imagens, modelos lineares em grande escala para análise de dados e previsões comportamentais simples e modelos de sequência a sequência (Seq2Seq) para recursos relacionados à linguagem humana.
  • Frameworks para desenvolvimento mobile:
  • Flutter: Flutter é o kit de ferramentas de IU do Google para a construção de aplicativos bonitos e compilados de forma nativa para celular, web e desktop a partir de uma única base de código. Possui uma interface de usuário expressiva e flexível e oferece um desempenho nativo nas plataformas iOS e Android, utiliza a linguagem de programação Dart.
  • React Native: Combina as melhores partes do desenvolvimento nativo com React, a melhor biblioteca JavaScript da classe para construir interfaces de usuário. Com ele você tem acesso ao código nativo, tanto IOS quanto Android e pode fazer alterações diretas. É um concorrente do Flutter.

Apps famosos que usam React Native: - Uber Eats - Airbnb - Discord - Instagram - Pinterest

Benefícios

  • Eficiência – Como as rotinas mais comuns de uma aplicação já terão sido implementadas, o tempo total de desenvolvimento do sistema será menor.
  • Segurança – Muitas das falhas de segurança comuns à uma aplicação já terão sido tratadas pois a maioria dos frameworks são desenvolvidos por comunidades e diversas pessoas reportando erros de forma colaborativa.
  • Custo – A maioria dos frameworks são gratuitos, não gerando custos maiores ao desenvolvimento.
  • Documentação – A maioria possui uma vasta documentação, explicando os detalhes e funcionamento de suas ferramentas.
  • Padrões de codificação – por seguir um padrão de código, além de melhorar a legibilidade do código, pode tornar a manutenção mais simples.


Desafios

  • O framework não é a linguagem – por ser uma abstração da linguagem o desenvolvedor terá que passar um tempo aprendendo as peculiariedades do framework.
  • Códigos desnecessários – Dependendo do tamanho da aplicação um framework mais robusto pode ter funcionalidades que serão desnecessárias para aquele sistema o que pode tornar a aplicação desnecessariamente mais pesada.


Referências