Ontem foi um grande dia né cara principalmente para ti que é Dev web tu achou que eu ia falar react né não principalmente para ti que é Dev web cara Provavelmente estava lá tomando teu cafezinho E aí tu viu a grande notícia a Microsoft acaba de migrar o compilador do typescript de JavaScript typescript né PR go por essa tu não esperava né cara Microsoft go o que mais a gente pode ver sei lá um Windows open source agora vindo em 2025 não sei tudo é possível cara então na internet era tipo assim ó por não
usar o c sharp Olha a comunidade csharp nunca ganha amor a própria Microsoft tá usando uma linguagem do Google a invés de usar uma linguagem da Microsoft e a galera do Rust não cara pô espera eles lançarem rus daí vai ser 100 vezes mais rápido então muitas polêmicas a gente quer começar hoje com por qu Por que a Microsoft optou pelo Gol o que que o pessoal anda falando na internet e mais importante de tudo como que isso afeta o teu typescript talvez não muito é usuário né T vai afetar o teu vs code teu
vs code vai ficar mais rápido mas vamos lá eu quero começar o vídeo reagindo a um vídeo do fireship porque o Far ship sempre Traz uns resumos legais cara então vamos ver aqui o resumão do que que aconteceu e aí depois a gente consegue tipo entrar mais a fundo no que a Microsoft lançou de fato sobre o Git Hub O que que a gente consegue ver lá de código e por aí vai ontem a Microsoft lançou uma bomba Inesperada sobre os programadores ao anunciar que a Amada linguagem de programação typescript está sendo completamente reprogramada o
typescript é um dos projetos mais importantes no desenvolvimento web moderno mas ele tem uma falha Fatal a linguagem typescript em si é escrita em typescript e o typescript não é otimizado para construir coisas como o typescript mas clássico problema de bootstrapping né cara o cara tem um compilador na própria linguagem o typescript ã só tem um problema do typescript lá na raiz que é o JavaScript não cara ass eu já titei esses dias eu tô gostando muito do JavaScript mas para compilar talvez não seja a melhor opção você não vai acreditar qual linguagem Enders hesberg
e a Microsoft escolheram para reescrita não é o testado em batalha c+ mais não é o Golden Boy c da Microsoft não é o altamente meme hust é uma linguagem conhecida como esperada que revelarei de forma dramática no final deste vídeo para otimizar a retenção de espectadores para o algoritmo brincadeira não vou brincar com você assim eles usaram go uma linguagem desenvolvida por seu Arc inimigo o Google uma linguagem com um sistema o Melk aqui do nadaes funcionais limitadas uma linguagem que muitas pessoas na internet adoram odiar hoje em dia todos os FB de se
Hast estão sentindo os efeitos dessa função de pânico agora mesmo e no vídeo de hoje Descobriremos porque isso é tão importante e Responderemos a pergunta de porque a Microsoft escolheu o go é cara isso aqui por Será que a Microsoft escolheu o go cara a galera tá falando do Rust tá ligado um zero Costa abstraction ali que tu tem tipo safet just Perfect para um compilador tá ligado mas não o gol eu acho que acho que o gol É tipo Good Enough é bom suficiente é ele faz o múltiplas trads ali o paralelismo e é
isso 12 de Março de 2025 e ass compila pra máquina ti ao relatório de código mais um dia mais um sinal de morcego que precisa ser respondido mas essa tendência de esperar pelo vídeo do navio de fogo em cada anúncio de tecnologia saiu do controle empresas de tecnologia como a Microsoft gasta Milhões de Dólares fazendo esses vídeos e vocês estão estragando tudo o colapso de toda a economia Global o mercado tá o mercado tá tá tenso cara desse jeito não vou me aposentar nunca tô só pelá roubar meu emprego Michael Jordan pare com isso procure
ajuda dito isso Ender zberg é um dos verdadeiros unicórnios desenvolvedores 10 vezes que existem ele é o criador do Turbo Pascal cara ele ele criou o compilador do Pascal né Depois lançou lá o criou o se Sharp dentro da Microsoft lançou o livro dele lá pro vol de 2006 e o cara depois envolvido no typescript esse cara aqui dinamarques é o cara é tenso ti typescript e você realmente deveria assistir ao vídeo dele typescript não é uma linguagem de programação típica é um super conjunto de JavaScript e não tem seu próprio tempo de execução o
código TS é compilado ou transpilar o código JS que então é executado em algum lugar como node JS Dino Ban ou no navegador O problema é que como o compilador typescript é escrito em typescript há uma falta inerente de suporte para otimização de baixo nível como acesso direto à memória mul é isso cara o o problema sempre vai ser o bonec tá ligado de trading e e memória como tu vai acessar a memória Fred nativo e assim por diante a única maneira de realmente consertar o compilador typescript era não escrevê-lo em typescript ao mudar para
go o compilador já está 10 vezes mais rápido cara aí fica comig questionando né se se a Microsoft tá tá reescrevendo o compilador do typescript de JavaScript para go por que que tu vai usar o JavaScript no teu sistema backend é é é a gente já pode falar que talvez a gente devesse usar outra alternativa como se eles tivessem reduzido o tempo de compilação do versus code de 7 a 70 segundos para 7 segundos e eles obtiveram acelerações semelhantes de 10 vezes em vários outros projetos isso é legal e tudo mas o desenvolvedor médio também
deve ver grandes ganhos de desempenho no editor em grandes projetos o typescript pode ser irritantemente lento no vs code mas o novo compilador mudará isso de forma significativa A grande questão porém é porque a Microsoft usaria go bem Diferentemente do JavaScript go é uma linguagem compilada e quando você escreve código go ele pode ser compilado em código de máquina otimizado para todos os chips é isso aqui meu Essa é a grande Essa é a grande questão tá ligado compilado versus interpretado sempre é uma é uma polêmica né porque o go ele vai guspir Machine cod
para ti vai vai skipar totalmente lá o runtime US todos os overheads da runtime do JavaScript direto direto pr pra cabeça tá ligado isso difere de Java ou C que é compilado em código de bytes e executado em uma máquina virtual aí Aqui falou do meu Java né é o csharp e o Java o Java por exemplo ele compila para Java byte code o coten também compila pro Java byte code dentro da VM tu vai ter tipo tu tem aad of Time tu tem DIT e tudo mais mas tipo assim ó tu tem uma taxa
um um um imposto um imposto que tu cobra ali da VM tá ligado Então Direct eles falam né tu tem que compilar direto pro Metal Direct metal Compilation é o é o plus de performance que tu vai ganhar numa ferramenta dessas aqui então acho que o go entra como Good Enough nesse sentido Além disso O go usa gerenciamento automático de memória por meio da coleta de lixo o que geralmente facilita o trabalho em comparação a algo como c+ mais ou Hast é mas é tipo assim o Eu já falei minha opinião né o curto o
Rust justamente porque ele fica no meio tu não precisa ficar fazendo mal Lock a Lock e ao mesmo tempo tu não tem a merda do garbage collector garbage collector É é incrível mas como tudo que faz coisas mágicas para ti Ah ele vai rodar Não se preocupa do nada ele vai rodar e vai limpar tudo que tu precisar a quando ele vai rodar Ah não sei tu pode pedir para ele rodar agora se tu quiser tá bom pedi para ele rodar agora mas ele não rodou Ah não não não Como assim cara tu pediu para
ele rodar não quer dizer que ele vai rodar ele roda quando ele quiser tá ligado mas além do desempenho acho que o principal motivo pelo qual escolheram o go é a portabilidade veja bem chamar isso de reescrita Total não é A nomenclatura correta na verdade é uma portabilidade para uma nova linguagem o que eles estão fazendo é percorrer cada linha do código typescript e convertê-lo no código go equiv par cara é muito parecido tá ligado umaa poderia converter tudo isso aqui eu acho que eu acho que a galera da Microsoft ela tentou tipo TR prompts
pro Cloud tu pode tu pode portar aqui o o meu compilador em typescript meu checker PTS de 15000 linhas de código pode portar isso aqui para Rust para mim aí o clud só falou assim tá maluco meu Como assim tá maluco tá doidão faz faz em Gol Então faz gol foi mais ou menos assim que rolou que rolou a parada tá ligado Mas vamos lá Desculpa eu ficar interrompendo Valente o que significa que o comportamento e a semântica da base de código original são preservados todos os seus erros favoritos do compilador continuarão acontecendo apenas 10
vezes mais rápido do que antes mas não poderemos colher esses benefícios imediatamente atualmente estamos no typescript 5,8 mas eles não lançarão o novo compilador até o typescript 7 e provavelmente levará muitos meses senão anos para chegar lá agora embora eu ainda esteja magoado porque a Microsoft Me expulsou do programa MVP acho que eles merecem muitos elogios pela decisão de escolher o gol eles poderiam ter usado uma das linguagens internas da Microsoft poderiam ter embarcado na onda do hust ou do Zig Mas em vez disso deixaram seus egos de lado e usaram a melhor ferramenta para
o trabalho mas se você estiver criando um projeto sério com muito código como esse uma coisa é certa seu código irá quebrar e a melhor maneira de consertar isso mais rápido é com o Centre o patrocinador do vídeo de hoje ele meteu um AD aqui tá ligado eu não vou tirar o Ed dele mas deixa eu rodar o Ed aqui enquanto a gente vai falando das coisas então o que que aconteceu vamos lá na internet é basicamente tipo assim a galera que é fã do go é basicamente finalmente alguém deu amor pro gol uma simplicidade
a sua performance é perfeito isso Microsoft sabe de algo Microsoft is aí a galera do Rust já ficou indignada Rust Rust seria muito melhor cara mem Safety Velocidade sem sem pausa de garbage collector lixo go é muito melhor o gol ISS é a galera do Gol falando né o gol é parecido com o typescript por quê Porque o Dev typescript ele não entendeu o Rust cara tem essa questão entendeu tu já tem algo 10 vezes mais rápido para compilar ponto tá aqui meu dinheiro pode levar comprei a ideia só faz o meu vs code para
leg é isso que eu quero pro outro lado tin a galera da Microsoft né Por que eu usar uma linguagem do Google tá ligado o que qual que é a moral Mas é isso cara o go Ele trouxe uma portabilidade basicamente fácil pra Microsoft então tu vai ganhar 10 vezes mais velocidade no mínimo para compilar o teu typescript sem precisar cair nos bonex do JavaScript tá ligado Ah Lucas Mas tu pode usar worker e tudo mais sim cara eu sei JavaScript ah multi Não não é multi não é multi não não quando se trata um
processo como compilar tá ligado compilação quando vai envolver muito I porque muitas vezes meu tu fazendo uma única TR vai ser mais eficiente do que tu usar um worker eu não sou nemum especialista JavaScript mas cara não não tem como compilar não tem como comparar com uma linguagem como go tá que ela é conhecida basicamente não é [ __ ] quando o cara fala conhecido né Porque tipo [ __ ] se é conhecido ou não A grande questão é tipo assim ela é eficiente ela é eficiente ou não e gol é eficiente é isso tá
vamos dar uma olhada aqui no anúncio oficial da Microsoft que eu tenho aqui para vocês e vamos ver se a gente consegue extrair mais algum detalhe aqui que a gente possa tá perdendo tá deixa eu mover para cá Só tenho que me inverter aqui só um minutinho aí foi então o a principal proposta de valor do typescript é uma excelente experiência para o desenvolvedor É verdade à medida que sua base de código cresce o valor typescript em si também cresce mas em muitos casos o typescript não conseguiu escalar para as maior bases de código cara
tu pega ali uma base de código tipo a da ves code tá ligado é 1 milhão 500 mil linhas de código arex JS quantas linhas tem o rxjs no mínimo umas 2000 linhas tá ligado Então basicamente isso aqui tipo vai vai vai compilar em 100 msos sei lá eu não sei o que que tu tá usando aí bastante o trpc se o que que tu usa mas enfim vai tudo ficar mais rápido desenvolvedores trabalhando em grandes projetos podem experimentar longos tempos de carregamento e verificação e tem que escolher entre um tempo razoável de inicialização do
editor ou obter uma visão completa de seu código fonte sabemos que os desenvolvedores adoram quando podem renomear variáveis com confiança encontrar todas as referências de uma função específica Navegar facilmente sua bos de código cara e fazer isso todas as coisas sem demora Cara isso assim eu como um Dev cotlin Java eu uso tipo Jet Brains tá ligado como ideia normalmente Todo mundo brinca né [ __ ] tu abre uma ideia da Jet Brains o teu computador levanta vo tu pode sei lá meu assar uma pizza em cima do do notebook tá ligado mas A grande
questão é ele consegue carregar ele vai consumir todo o recurso que tu tiver na máquina tu pode configurar quanto de hiip tu vai deixar para ele e tudo tu pode até configurar ali e limitar a a memória RAM Mas enfim uma das coisas que eu mais curto é que ele demora para brir mas depois que ele tá aberto cara ele simplesmente acha o que eu preciso que ele ache tá ligado e é bem para um projeto grande é bem c é muito custo o custo é muito alto do Dev esperando porque quando o Dev espera
por alguma coisa O que que ele faz ele abre o Twitter quando o Dev espera algo compilar el Abre o Twitter então aqui a galera no Twitter falando cara é incrível tá ligado o meu Type checking no V do vest code vai ficar 10 vezes mais rápido isso é simplesmente incrível que que mais a galera falou aqui holy shit o typescript tá prestes a ficar muito mais veloz e teve en enfim vários comentários né Por que o gol Por que o gol tem uma ISO que foi aberta no Git Hub justamente falando sobre isso cara
por que o gol Então vamos esclarecer isso por Gol a escolha da linguagem é sempre um tópico quente avaliamos extensivamente muitas opções de linguagem tanto recentemente quanto em investigações anteriores então eles de fato investigaram o que isso quer dizer provavelmente eles fizeram uns PCs lá dentro viram que com Rust ia ser mais difícil ia ser mais demorado a galera não ia entender tanto o código tá ligado hum não pensa que esses times de uma grande Big Tech a é a Microsoft trabalhando no desenvolvimento do typescript cara no final é a mesma coisa que o teu
time aí tá ligado tem um monte de Dev lá com muita experiência talvez mais experiência do que tu mas talvez não talvez só aprenderam o lit code e entraram lá e eles sabem mais de uma linguagem provavelmente eles sabem mais typescript JavaScript então go é muito mais fácil tá ligado é aquilo que a gente chama tipo assim tu tem o quick Win o Easy Win tu tem um ganho um ganho rápido e fácil cara vamos portar PR go é mais rápido é mais fácil tu faz a portabilidade as linhas de código ali vão ser parecidas
todo mundo vai entender e tu vai ganhar mais velocidade é isso Ah mas com Rust ia ficar ainda mais rápido tá cara mas aí tu chega num momento tipo assim vale a pena ou não então ele falou que também consideramos uma abordagem híbrida onde certos componentes poderiam ser escritos em uma linguagem Nativa mantendo os algoritmos de verificação de tipos principais em javascripts escrevemos vários protótipos experimentando diferentes representações de dados em diferentes linguagens viu eles testaram o Rust cara com certeza e desistir Em algum momento e fizemos investigação profunda sobre as abordagens usadas pelos analisadores typescript
nativos existentes como os S WC Ox S build né para ser claro muitas linguagens seriam quadas em uma situação de reescrita do zero go fez o melhor ao considerar vários critérios que são particulares a esta situação e vale a pena explicar alguns deles cara uma coisa que eu gostei daqui é a pegada meio pragmática Tá ligado não ficar com esse negócio de tipo ego ego is the Enemy sempre então de longe o aspecto mais importante é que precisamos manter a nova base de código mais compatível possível tanto em termos de sem quanto em termos de
estrutura de código esperamos manter ambas as bases de código por um bom tempo daqui para frente linguagens que permitem uma base de código estruturalmente similar oferece uma vantagem significativa para qualquer um que faça alterações de código Porque podemos facilmente portar alterações entre duas bases de código Mas daí fica a grande pergunta né cara tipo seos Car estão migrando tão portando o compilador para GO o quão difícil é tu migrar do typescript para go não eu vou receber muito rate por isso né meu amor ah sinta-se à vontade é só uma Uma coisa que eu fico
questionando cara em contraste linguagens que exigem Deixa eu tirar a música em contraste linguagens que exigem repensar fundamentalmente o gerenciamento de memória mutação estrutura de dados polimorfismo preguiça etc Ah podem ser mais adequadas para uma reescrita do zero mas estamos realizando isso mais como uma uma porta né que mantém o comportamento existente e as otimizações críticas que construímos na linguagem ao mesmo tempo né o a idiomatic go se assemelha muito aos padrões cações existente da base de código Tab script e que torna esse esforço de portabilidade muito mais tratável a gente tá chegando nessa conclusão
então né cara O o gol era o mais fácil com maior ganho é basicamente isso que eles estão falando aqui eu acho que o rate que a Microsoft recebeu um pouco no Reddit tá ligado no submundo é que todo mundo esperou uma descrição um pouco mais aprofundada dos do Porquê tá ligado da decisão técnica mas isso aqui é meio que a galera que é meio escovador de bit tá ligado a cabeça de compilador o cara não consegue entender que muitas vezes uma decisão de um projeto não se trata simplesmente de qual que vai ser o
mais top performático tá ligado muitas vezes o projeto ele fracassa não porque ele não era o o mais performático mas pela complexidade que aumenta meu então é óbvio talvez fazer o compilador em Rust que é escrito em Rust é um self hosted assim como o t script era mas talvez fosse melhor OK mas tipo a dificuldade de fazer isso ia ser muito maior a compreensão do código I ser muito maior basicamente isso né então se você tu quer comparar com outras linguagens porque vamos comparar com outras linguagens tá no caso da Microsoft eles estão não
tão fazendo do Zero eles estão fazendo uma portabilidade tá então é diferente então tu pega tipo assim ó uma linguagem como Rust cara o Rust ele é self hosted ou seja o compilador dele é feito em Rust eu já expliquei aqui no canal como que isso é feito como é que o Rust compila o próprio Rust Tá mas quem compilou o Rust que tá comando do Rust eu tenho que aprender sobre Bootstrap e tudo mais tu tem tipo o interpretador do Python interpretador do Python é feito em que se eu não me engano se ele
é igual C Python ele é feito em C certo P py ele é feito em C tá aí tu tem Java Java virtual Machine tem a jvm bom na jvm cara é um pouco diferente legal Porque inicialmente foi escrito em C e depois foi escrito em Java então tu tem um Bootstrap aqui em C e depois em Java então foi o oposto do que o JavaScript do que o typescript tá fazendo o typescript inicialmente ele era né em typescript e agora foi para para Gol é uma jornada um pouco diferente o que isso diz muito
é de como que eles fizeram talvez na na correria o typescript não sei porque que eles não chegaram nessa nessa argumentação do tipo assim tá Por que que a gente vai fazer em typescript Tá Ligado Em que momento eles tomaram essa decisão Mas a gente nunca vai saber né enfim vamos esperar então agora o typescript tá o quê na 5.9 vai sair a 5.9 agora né então tem a 5.6 que vai tu vai poder ali ah basicamente vai fazer a a a deprecation então uma uma parte de transição Nativa depois tu vai ter a 7.0
que vai ser a versão baseada em go tá então eles lançaram um code nome ali pelo artigo deles como é que é o cod nome é Corsa é isso né o Corsa então tu vai esperar o Corsa aí no typescript S vai ser nativo já que essa será A nomenclatura Para o Futuro previsível tá embora alguns projetos possam migrar para typescript 7 após o lançamento outros podem depender de certos recursos de api configurações legadas e outras restrições que exijam o uso do typescript 6 aí tu vai entrar no mundo que quem é Dev Java já
conhece numa entrevista tu vai chegar na entrevista o cara vai te perguntar tu sabe typescript 7 falar sei já trabalhou com cinco e o seis não por quê Porque a gente ainda usa umas apis legada aqui tá ligado que ainda não foram portadas Então vai ter um período de coexistência aí do seis pro sete tá mas enfim essa foi a atualização para vocês do que aconteceu no mundo de front end web dá para falar front end web não né backend né Vocês usam o JavaScript no backend não sei quando é que o trump o trump
vai vai assinar para proibir isso Mas enfim o que que eu posso posso falar ok uma boa sexta-feira e um ótimo Deploy