Giter Site home page Giter Site logo

github-blog's People

Contributors

gustavodemate avatar

Watchers

 avatar

github-blog's Issues

TypeScript: por trás do superset de JavaScript

Um conjunto de ferramentas JavaScript que adicionou tipagem e novos recursos na linguagem

Faz algum tempo já que estamos encantados com o TypeScript e já inserimos a tecnologia em nossa programação diária. Entre iniciantes ainda existe muitas dúvidas sobre o que significa, na prática, TypeScript e quais são suas diferenças com o JavaScript.

Os que já estão mais adaptados com ele, no entanto, podem não saber de detalhes, ou curiosidades, relevantes sobre a trajetória do TS dentro do mercado de trabalho.

O conteúdo de hoje vai se aproximar de uma conversa mais técnica para tentar responder algumas perguntas e compreender, afinal, quais foram os impactos do TypeScript em nossos códigos.

2012
Dizer que TypeScript é uma linguagem pode servir para generalizar a sua adoção e simplificar a referência, no entanto, pode ser um pequeno deslize de definição. Segundo a Microsoft, TS é um superconjunto — superset — de JavaScript que adiciona novos recursos na linguagem, como tipagem.

Ou seja, um conjunto de ferramentas criado e encorpado sobre o JavaScript. Foi desenvolvido por um time de desenvolvimento dentro da Microsoft e seu primeiro release foi em 2012.

Demorou um tempo para ser adotado pelo mercado, mas em 2018 a tecnologia já disputava o pódio entre as linguagens mais amadas dentro do ecossistema de desenvolvimento web, ocupando o quarto lugar.

Impulso
Algumas coisas podem justificar o impulso da linguagem, que completa oito anos agora em outubro. O ponto definitivo para se tornar referência aconteceu em 2016, quando o Angular, framework da Google, decidiu adotar o TypeScript como linguagem oficial.

Esse evento pode ser ilustrado neste gráfico do Stack Overflow — repare no crescimento do número de perguntas da comunidade nos últimos quatro anos. Em 2020 o TypeScript se coloca em segundo lugar entre as linguagens mais amadas, de acordo com este survey.

Ryan Cavanaugh
Segundo o atual engenheiro líder da equipe que mantém o TypeScript na Microsoft, Ryan Cavanaugh, nesta entrevista para o Stack Overflow, a iniciativa surgiu porque alguns times dentro da empresa, como o TFS e Office, queriam criar aplicações grandes utilizando JavaScript.

Na época essas equipes estavam acostumadas com linguagens estaticamente tipadas, como C++, C# e Java.

“Eles queriam ter essa tipagem estática disponível para escalabilidade e tooling”.

Ao invés de criar uma nova linguagem do zero, no entanto, eles decidiram pegar o JavaScript e adicionar tipagem estática nele para uso imediato. Recomendo vocês darem uma lida com atenção na entrevista de Ryan para saber de detalhes sobre as decisões internas da Microsoft ao desenvolver o TypeScript.

Inseguranças por trás da novidade
Beleza, o TypeScript supriu uma necessidade interna da Microsoft e foi adotado pelo Angular, mas ainda assim, muitos desenvolvedores sentiram um certo receio para experimentar as novas funções da linguagem.

Com o mercado adotando cada vez mais o uso do TypeScript, é normal vir uma bagagem de inseguranças, tanto para quem começa a programar em JavaScript como para quem já está na frente de desenvolvimento.

Afinal, será que não estamos matando as vantagens do JavaScript em ser tão dinâmico e o transformando em um Java, que é estático? A adição dessas tipagens ajudam ou prejudicam na criação de nosso projeto? Bom, acho que a resposta mais honesta é: depende.

Nada é tão simples por aqui
Não é muito viável dizer com total garantia que as tipagens inseridas pelo TypeScript no JavaScript vão te ajudar, ou prejudicar. Não é tão simples porque tudo depende de variáveis relevantes, por exemplo: o tempo disponível para o preparo de seu time e a escala que o projeto pode tomar.

Segundo o próprio engenheiro do time, Ryan Cavanaugh, naquela entrevista, “se tipagem estática não é uma escolha certa para você, seja para seu estilo de programar ou para o problema que você está trabalhando em cima, só pule. Tá tudo bem. É okay. Não vou ficar ofendido”.

Otimizar o seu conhecimento
No entanto, há considerações importantes. Nós defendemos o uso do TypeScript ao se trabalhar em algumas situações onde o código é open source, para evitar uma centena de problemas, e para projetos que precisam de escala, para otimizar grandes processos de produção.

O melhor jeito de entender o TypeScript é enxergá-lo como uma evolução que pode te ajudar muito em alcançar novas camadas de produtividade e criação no seu desenvolvimento.

Você pode conferir, com detalhes, a nossa visão sobre o assunto neste Masterclass do Diego Fernandes, e ainda conhecer, na prática, as funções do TypeScript.

npm: pacotes, pacotes e pacotes

Repositório hospeda cerca de 1,3 milhão de pacotes, atingindo métricas de até 75 bilhões de downloads mensais

npm é uma sigla para Node Package Manager, cuja tradução direta é bem simples: Gerenciador de Pacotes Node.

É um recurso incluído e recomendado para usuários de Node.js, framework de desenvolvimento back end em JavaScript.

O nome já é auto explicativo, no entanto, vamos destrinchar as peculiaridades da ferramenta um pouco além disso.

npm é duas coisas
Segundo a comunidade Node.js, npm é, em tese, duas coisas: um repositório online para a publicação de projetos open-source em Node.js e uma linha de comando (código) utilizada para criar interações entre repositórios, instalação de pacotes, gerenciamento de versões e dependências.

O seu repositório hospeda cerca de 1,3 milhão de pacotes, atingindo métricas de até 75 bilhões de downloads mensais. Este recurso pode ser explorado na página oficial da ferramenta e a instalação de qualquer pacote é expressa em uma única linha de comando.

Isaac Z. Schlueter
Criado e desenvolvido em 2010 pelo engenheiro Isaac Z. Schlueter, na época que o Node.js ainda era uma ferramenta emergente. Naquele momento, o cenário de programação back end em JavaScript estava começando a ser desenvolvido e aperfeiçoado pela comunidade.

Segundo Isaac, nesta discussão histórica, publicada em 2013 no GitHub, ele desenvolveu o npm porque:

"tinha visto o empacotamento de módulos ser feito de maneira terrível e brilhante, e queria ter certeza de que o Node não acabaria com algo como Pear."

npm, Inc
Os números não deram trégua: o recurso foi uma ferramenta crucial para o ambiente JS durante os próximos anos. Com o sucesso do ecossistema back end JavaScript — liderado pela comunidade Node.js —, em 2014 Isaac criou a empresa npm, Inc para formalizar a gestão da ferramenta e sua expansão cada vez mais significativa.

Em 2020, o GitHub (já como subsidiária da Microsoft) comprou a npm, Inc com o objetivo de melhorar a infraestrutura do gerenciador de pacotes, além de agregar ainda mais para a experiência de desenvolvimento e da comunidade.

Parte crítica do mundo JavaScript
Nat Friedman, CEO do GitHub, ao anunciar a compra reconheceu que "npm é uma parte crítica do mundo JavaScript", justamente por sua participação referência durante estes 10 anos de maturidade e contribuição open source.

GitHub é uma subsidiária da Microsoft desde 2018, numa compra estimada no valor de US$ 7,5 bilhões.

Apesar de ser uma atitude recente da Microsoft, uma das leituras possíveis é que a gigante está investindo cada vez mais no ecossistema de código aberto JavaScript.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.