Acredito que quando você viu o título não pôde deixar de xingar, e até quis criticar severamente o editor... Sei que você está impaciente, mas não fique impaciente ainda.
através de https://www.zhihu.com/question/621997070
Na verdade, esta é uma pergunta muito popular em Zhihu recentemente. De acordo com a tradição consistente do site - "Pergunte primeiro se é verdade, depois por quê" , esta pergunta parece ser sensacionalista e tentar deliberadamente atrair a atenção.
Você deve saber que o TypeScript, lançado em 2012, está atualmente no topo de muitas classificações, índices ou pesquisas de desenvolvedores de linguagens de programação. É também a linguagem de programação mais popular e comumente usada e é usada por milhões de desenvolvedores em todo o mundo.
Basta encontrar alguns artigos de notícias sobre TypeScript para ter uma ideia:
- Pesquisa JavaScript de 2022: TypeScript continua a dominar , Vite e Tauri são populares
- Pesquisa JavaScript de 2021: No ano de Vite, as taxas de adoção de Esbuild e TypeScript aumentam significativamente
- Pesquisa de desenvolvedores de 2020: TypeScript vence Python , Scala é o mais lucrativo
- Classificação RedMonk: TypeScript e C++ estão empatados , Kotlin superará Go?
Em relação ao chamado “TypeScript foi abandonado pelos grandes”, há de fato dois eventos bem conhecidos este ano:
- O autor de Ruby on Rails, DHH, anuncia que o código TypeScript será removido do Turbo 8
- Svelte está mudando de TypeScript para JavaScript
Quanto a saber se você é um grande especialista ou não, você também pode dar uma olhada na avaliação de “conotação” do guru front-end Winter:
Mais perto de casa, voltemos ao assunto em si. A Open Source China entrevistou recentemente três engenheiros front-end seniores:
Liu Yong, apelidado de Tianzhu na comunidade, é o chefe do Node.js Infra de uma grande empresa e o principal desenvolvedor do EggJS/CNPM.
Liu Yicheng, cujo apelido na comunidade é xcatliu (gatinho perdido), é o autor do " Tutorial de introdução ao TypeScript " e faz parte da equipe de documentação da Tencent.
Li Zhen, apelidado de tick na comunidade, faz parte da equipe de documentação da Tencent.
A direção da discussão apenas começou com o tópico " abandonar o TypeScript e retornar ao JavaScript ". Vamos dar uma olhada em suas respectivas visões.
P: TypeScript é uma nova linguagem baseada em JavaScript . Em teoria, deveria ser mais completa que JavaScript. Por que as pessoas ainda voltam ao antigo JavaScript? Isso conta como reversão da história?
Liu Yong: Não é uma reversão, é apenas uma escolha. Em alguns cenários, escrever TypeScript trará alguns custos adicionais. Por exemplo, vi o código-fonte de algumas bibliotecas de código aberto. A lógica central pode ter apenas dezenas de linhas. No entanto, para obter prompts de tipo precisos, a ginástica de tipos escrita é muito mais do que o código-fonte principal. O que é certo e errado são diferentes para diferentes desenvolvedores. O critério precisa encontrar o ponto de equilíbrio. É claro que, no que diz respeito à situação atual, eu pessoalmente recomendo usar TypeScript, se possível, mas se você deseja fazer ginástica de tipos depende da situação do desenvolvedor.
Liu Yicheng: É raro que projetos que já usaram TypeScript voltem a usar JavaScript. Mais projetos estão atualizando de JavaScript para TypeScript. O TypeScript melhora o sistema de tipos JavaScript, tornando o código mais fácil de manter, mas também aumenta as etapas de compilação e alguns custos de desenvolvimento. Para alguns projetos, o JavaScript já pode atender às necessidades, portanto não há necessidade de aumentar a complexidade do sistema de tipos TypeScript. Mas para outros projetos complexos, é necessário um sistema de tipos para ajudar a melhorar a capacidade de manutenção do código, portanto, este não é um começo de histórico. Em vez de reverter, faça uma seleção técnica com base nas condições reais.
P: Os projetos acima que mudam de TypeScript de volta para JavaScript são todos estruturas de desenvolvimento, então isso está relacionado ao tipo de projeto? Os projetos JavaScript são mais propensos a serem escolhidos para projetos de estrutura ?
Li Zhen: Sim, o tipo de projeto pode ser um fator que afeta a escolha de JavaScript ou TypeScript. Ao desenvolver um framework ou biblioteca, especialmente um framework ou biblioteca front-end, é comum optar pelo uso de JavaScript.
Por um lado, as estruturas de desenvolvimento precisam ter ampla compatibilidade para que os desenvolvedores possam utilizá-las em diversos projetos. Como JavaScript é a linguagem básica para desenvolvimento web, quase todos os navegadores e ambientes oferecem suporte a JavaScript. Isso torna mais fácil que estruturas escritas em JavaScript sejam amplamente adotadas e integradas.
Por outro lado, as estruturas de desenvolvimento geralmente precisam fornecer APIs fáceis de usar e mecanismos de extensão flexíveis para atender às necessidades de vários projetos. O uso de JavaScript pode expressar esses conceitos de forma mais direta, sem exigir muitas anotações de tipo e etapas de compilação. Isso torna mais rápido para os desenvolvedores entender e usar a estrutura e mais fácil de personalizar e estender.
Liu Yong: Os desenvolvedores de estruturas e bibliotecas de classes geralmente precisam considerar muitos casos extremos. Nesse caso, escrever tipos completos é uma tarefa muito trabalhosa e a quantidade de código será muito maior, o que levará ao aumento de custos de manutenção . Na verdade, a comunidade ainda está em fase exploratória e precisa encontrar um ponto de equilíbrio, quais partes precisam ser melhoradas e quais partes podem ser escolhidas.
P: Começamos a usar o TypeScript porque o TypeScript fornece verificação de tipo, o que compensa o problema de que o JavaScript só tem lógica, mas não tem tipos. Portanto, se usarmos JavaScript + JSDoc para resolver declarações de tipo, não precisaremos mais usar o TypeScript?
Liu Yong: Em primeiro lugar, o JSDoc não pode resolver completamente o problema da declaração de tipo, nem pode ajudar os desenvolvedores a encontrar alguns problemas durante o período de desenvolvimento.
Em segundo lugar, os dois não entram em conflito. Eu pessoalmente também escrevo o JSDoc correspondente ao escrever TypeScript, porque os tipos TypeScript não podem ter mais comentários e descrições. Também gostaria de ver a equipe TypeScript otimizar essa experiência no futuro.
Liu Yicheng: JSDoc pode resolver apenas parte dos problemas de tipo, enquanto TypeScript é um sistema de tipo completo. O ecossistema TypeScript é mais próspero.Para desenvolvedores e projetos comuns, os custos de desenvolvimento e manutenção do uso do JSDoc podem ser maiores do que o TypeScript.
Li Zhen: Teoricamente é possível, mas comparado ao TypeScript, ainda tem algumas limitações:
-
Completude da verificação de tipo estático: as anotações JSDoc são baseadas em anotações, em vez de diretamente incorporadas na linguagem, portanto, sua verificação de tipo pode não ser tão completa e precisa quanto o sistema de tipos do TypeScript.
-
Diferenças no suporte de ferramentas: Embora algumas ferramentas e editores possam tirar proveito das anotações JSDoc para verificação de tipo, sua funcionalidade e inteligência podem ser limitadas em comparação com TypeScript.
-
Diferenças de ecossistema: TypeScript possui um sistema de tipos independente e um ecossistema de arquivos de declaração de tipo, o que permite uma integração mais perfeita com bibliotecas e ferramentas JavaScript existentes. Usar JavaScript + JSDoc pode exigir mais trabalho manual para escrever e manter anotações de tipo.
P: Algumas pessoas pensam que o surgimento do TypeScript se deve ao fato de as pessoas comuns não conseguirem controlar o JavaScript . Algumas pessoas pensam que "quanto piores as pessoas são, mais gostam da liberdade". A escolha dessas duas linguagens está relacionada ao nível do programador?
Li Zhen: É muito chato julgar o nível pessoal pelos hobbies. Existem especialistas em escrever JavaScript e TypeScript.
Liu Yong: Risos ~ Não é incomum os alunos reclamarem que um bom projeto TypeScript foi enviado a muitos Any. Também tenho visto muitas reclamações sobre assumir o controle de um repositório TypeScript e ter que ler muitas definições de tipos para descobrir como esses tipos estranhos funcionam. Acho que a escolha do idioma depende principalmente do grau de engenharia e padronização da equipe, e muito não basta. Se uma biblioteca de classes TypeScript escreve muitos tipos, mas não tem nem um único teste, acho que ela não é qualificada.
Liu Yicheng: Parte da razão para o surgimento do TypeScript é que o JavaScript é difícil de "controlar". O JavaScript é muito flexível e não possui restrições de tipo, tornando mais fácil escrever código com bugs. O TypeScript resolve esse problema até certo ponto, tornando o código mais sustentável.
JavaScript e TypeScript não podem ser usados para medir o nível dos programadores. Para projetos simples ou pessoais, o JavaScript pode ser mais leve e flexível, mas para projetos complexos que exigem grande colaboração em equipe, o sistema de tipos do TypeScript pode trazer melhor capacidade de manutenção e confiabilidade do código.
P: Como você vê o desenvolvimento futuro do TypeScript ? Você acha que será uma moda passageira ou eventualmente substituirá o JavaScript ? Qual ecossistema tecnológico você acha que é melhor?
Liu Yong: TypeScript é posicionado como um superconjunto de JavaScript e seus recursos são baseados na especificação ECMAScript formulada por TC39 (ou seja, JavaScript ). Não acho que substituirá o JavaScript , afinal não é uma especificação oficial e o ecossistema JavaScript existente é muito grande.
É claro que o TypeScript agora se tornou um padrão de fato até certo ponto, especialmente porque os funcionários do Node.js estão hesitantes sobre o rumo do ESM e do CJS, o que levou a uma separação de longo prazo entre os desenvolvedores da comunidade, e mais e mais pessoas estão forçado a escolher usar TypeScript. Escreva uma biblioteca de classes e compile-a em ESM e CJS ao mesmo tempo. Atualmente, o ecossistema TypeScript atingiu uma grande escala, por isso não terá vida tão curta quanto o CoffeeScript.
Liu Yicheng: Pessoalmente, acho que o TypeScript continuará a ser popular e será mais amplamente utilizado. Mas não irá "substituir" o JavaScript . O objetivo do TypeScript nunca foi "substituir" o JavaScript , mas fornecer um sistema de tipos baseado em JavaScript como um complemento ao JavaScript e aproveitar suas respectivas vantagens em diferentes projetos e cenários.
A ecologia técnica de JavaScript e TypeScript está integrada há muito tempo. Quase todas as bibliotecas terão arquivos do tipo TypeScript.
Li Zhen: Acho que é improvável que o TypeScript substitua completamente o JavaScript, mas serve como um complemento e aprimoramento do JavaScript. Não haverá um jogo de soma zero entre os dois por enquanto, e espero que ambas as linguagens possam se desenvolver melhor. Atualmente, o ecossistema JavaScript é maior, mas o status e a influência do TypeScript continuam a crescer. Como desenvolvedor comum, é melhor prestar atenção ao seu desenvolvimento quando não houver conflito entre os dois.
Veja o conteúdo completo da entrevista: "TypeScript não é necessário, JS + JSDoc é suficiente", o chefe disse que quero mais