O TypeScript acaba de se tornar popular, por que os grandes estão começando a abandoná-lo?

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:

Em relação ao chamado “TypeScript foi abandonado pelos grandes”, há de fato dois eventos bem conhecidos este ano:

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

Acho que você gosta

Origin www.oschina.net/news/260816
Recomendado
Clasificación