TypeScript acaba de volverse popular, ¿por qué los grandes están empezando a abandonarlo?

Creo que cuando viste el título no pudiste evitar maldecir, e incluso quisiste criticar severamente al editor… Sé que estás impaciente, pero no lo estés todavía.

a través de https://www.zhihu.com/question/621997070

En realidad, esta es una pregunta muy popular en Zhihu recientemente. Según la constante tradición del sitio: "Pregunte primero si es cierto y luego por qué" , esta pregunta parece sensacionalista y trata deliberadamente de atraer la atención.

Debes saber que TypeScript, lanzado en 2012, actualmente ocupa el primer lugar en muchos rankings, índices o encuestas de desarrolladores de lenguajes de programación, además de ser el lenguaje de programación más popular y utilizado por millones de desarrolladores en todo el mundo.

Simplemente busque algunos artículos de noticias sobre TypeScript para tener una idea:

Con respecto al llamado "TypeScript fue abandonado por los grandes", de hecho hay dos eventos muy conocidos este año:

En cuanto a si eres un gran experto o no, también puedes echar un vistazo a  la evaluación de "connotaciones" del gurú del front-end Winter:

Más cerca de casa, volvamos al tema en sí. Open Source China entrevistó recientemente a tres ingenieros senior de front-end:

  • Liu Yong, apodado Tianzhu en la comunidad, es el director de Node.js  Infra de una gran empresa  y el desarrollador principal de EggJS/CNPM.

  • Liu Yicheng, cuyo apodo en la comunidad es xcatliu (gatito callejero), es el autor del " Tutorial de introducción a TypeScript " y pertenece al equipo de documentación de Tencent. 

  • Li Zhen, apodado tick en la comunidad, pertenece al equipo de documentación de Tencent.

La dirección de la discusión acaba de comenzar con el tema " abandonar TypeScript y regresar a JavaScript ", Echemos un vistazo a sus respectivos puntos de vista.


P: TypeScript  es un nuevo lenguaje basado en  JavaScript  . En teoría, debería ser más completo que JavaScript. ¿Por qué la gente todavía vuelve al antiguo JavaScript? ¿Esto cuenta como revertir la historia?

Liu Yong: No es una reversión, es sólo una elección. En algunos escenarios, escribir TypeScript traerá algunos costos adicionales. Por ejemplo, he visto el código fuente de algunas bibliotecas de código abierto. La lógica central puede tener solo docenas de líneas. Sin embargo, para lograr indicaciones de tipografía precisas, la gimnasia de tipos escrita es mucho más que el código fuente principal. El bien y el mal son diferentes para diferentes desarrolladores, el criterio debe encontrar el punto de equilibrio. Por supuesto, en lo que respecta a la situación actual, personalmente recomiendo usar TypeScript si es posible, pero si quieres hacer gimnasia tipográfica depende de la situación del desarrollador.

Liu Yicheng: Es raro que los proyectos que ya han usado TypeScript vuelvan a usar JavaScript. Más proyectos están actualizando de JavaScript a TypeScript. TypeScript mejora el sistema de tipos de JavaScript, haciendo que el código sea más fácil de mantener, pero también aumenta los pasos de compilación y algunos costos de desarrollo. Para algunos proyectos, JavaScript ya puede satisfacer las necesidades, por lo que no es necesario aumentar la complejidad del sistema de tipos TypeScript, pero para otros proyectos complejos, se necesita un sistema de tipos para ayudar a mejorar la capacidad de mantenimiento del código, por lo que este no es un comienzo. historia En lugar de invertir, haga una selección técnica basada en las condiciones reales.

 

P: Los proyectos anteriores que cambian de  TypeScript  a  JavaScript  son todos marcos de desarrollo, entonces, ¿está esto relacionado con el tipo de proyecto?  ¿Es más probable que se elijan proyectos JavaScript para proyectos marco  ?

Li Zhen: Sí, el tipo de proyecto puede ser un factor que afecte la elección de JavaScript o TypeScript. Al desarrollar un marco o biblioteca, especialmente un marco o biblioteca front-end, es común optar por utilizar JavaScript.

Por un lado, los marcos de desarrollo deben tener una amplia compatibilidad para que los desarrolladores puedan utilizarlos en una variedad de proyectos. Dado que JavaScript es el lenguaje básico para el desarrollo web, casi todos los navegadores y entornos admiten JavaScript. Esto facilita la adopción e integración generalizada de los marcos escritos en JavaScript.

Por otro lado, los marcos de desarrollo generalmente necesitan proporcionar API fáciles de usar y mecanismos de extensión flexibles para satisfacer las necesidades de diversos proyectos. El uso de JavaScript puede expresar estos conceptos de manera más directa sin requerir demasiadas anotaciones de tipo ni pasos de compilación. Esto hace que sea más rápido para los desarrolladores comprender y utilizar el marco, y más fácil de personalizar y ampliar.

Liu Yong: Los desarrolladores de marcos y bibliotecas de clases a menudo necesitan considerar muchos casos extremos. En este caso, escribir tipos completos es una tarea que requiere mucha mano de obra y la cantidad de código será mucho mayor, lo que provocará un aumento en los costos de mantenimiento. . De hecho, la comunidad todavía se encuentra en la etapa de exploración y necesita encontrar un punto de equilibrio: qué partes deben mejorarse y cuáles pueden elegirse.

 

P: Comenzamos a usar  TypeScript  porque TypeScript proporciona verificación de tipos, lo que compensa el problema de que  JavaScript  solo tiene lógica pero no tipos. Entonces, si usamos JavaScript + JSDoc para resolver declaraciones de tipos, ¿ya no necesitamos usar TypeScript?

Liu Yong: En primer lugar, JSDoc no puede resolver completamente el problema de la declaración de tipos ni puede ayudar a los desarrolladores a encontrar algunos problemas durante el período de desarrollo.

En segundo lugar, los dos no entran en conflicto. Yo personalmente también escribo el JSDoc correspondiente cuando escribo TypeScript, porque los tipos de TypeScript no pueden tener más comentarios y descripciones. También me gustaría que el equipo de TypeScript optimice esta experiencia en el futuro.

Liu Yicheng: JSDoc solo puede resolver parte de los problemas tipográficos, mientras que TypeScript es un sistema tipográfico completo. El ecosistema TypeScript es más próspero: para los desarrolladores y proyectos comunes, los costos de desarrollo y mantenimiento del uso de JSDoc pueden ser más altos que los de TypeScript.

Li Zhen: Teóricamente es posible, pero en comparación con TypeScript, todavía tiene algunas limitaciones:

  • Integridad de la verificación de tipos estática: las anotaciones JSDoc se basan en anotaciones en lugar de estar directamente integradas en el lenguaje, por lo que su verificación de tipos puede no ser tan completa y precisa como el sistema de tipos de TypeScript.

  • Diferencias en el soporte de herramientas: aunque algunas herramientas y editores pueden aprovechar las anotaciones JSDoc para la verificación de tipos, su funcionalidad e inteligencia pueden ser limitadas en comparación con TypeScript.

  • Diferencias del ecosistema: TypeScript tiene un sistema de tipos independiente y un ecosistema de archivos de declaración de tipos, lo que permite una integración más fluida con las bibliotecas y herramientas de JavaScript existentes. El uso de JavaScript + JSDoc puede requerir más trabajo manual para escribir y mantener anotaciones de tipo.

 

P: Algunas personas piensan que la aparición de TypeScript se debe a que la gente común no puede controlar JavaScript . Algunas personas piensan que "cuanto peor es la gente, más le gusta la libertad". ¿La elección de estos dos lenguajes está relacionada con el nivel del programador?    

Li Zhen: Es bastante aburrido juzgar el nivel personal por los pasatiempos.  Hay expertos en escribir JavaScript y TypeScript.

Liu Yong: Risa ~ No es raro que los estudiantes se quejen de que se ha enviado un buen proyecto de TypeScript a muchos Any. También he visto muchas quejas acerca de hacerse cargo de un repositorio de TypeScript y tener que leer muchas definiciones de tipos para descubrir cómo funcionan estos tipos extraños. Creo que la elección del idioma depende principalmente del grado de ingeniería y estandarización del equipo, y demasiado no es suficiente. Si una biblioteca de clases de TypeScript escribe muchos tipos pero ni siquiera tiene una sola prueba, entonces creo que no está calificada.

Liu Yicheng:  Parte de la razón del surgimiento de TypeScript es que JavaScript  es difícil de "controlar". JavaScript es  demasiado flexible y carece de restricciones de tipo, lo que facilita la escritura de código con errores. TypeScript resuelve este problema hasta cierto punto, lo que hace que código más fácil de mantener.

JavaScript  y TypeScript no se pueden utilizar para medir el nivel de los programadores. Para proyectos simples o proyectos personales, JavaScript  puede ser más liviano y flexible, pero para proyectos complejos que requieren la colaboración de un gran equipo, el sistema de tipos de TypeScript puede brindar una mejor confiabilidad y mantenimiento del código.

 

P: ¿Cómo ve el desarrollo futuro de  TypeScript ? ¿Crees que será una moda pasajera o eventualmente reemplazará a JavaScript ? ¿Qué ecosistema tecnológico crees que es mejor?   

Liu Yong: TypeScript  se posiciona como un superconjunto de JavaScript  y sus capacidades se basan en la especificación ECMAScript formulada por TC39 (es decir, JavaScript  ). No creo que reemplace a JavaScript  , después de todo, no es una especificación oficial y  el ecosistema existente de JavaScript es demasiado grande.

Por supuesto, TypeScript ahora se ha convertido en un estándar de facto hasta cierto punto, especialmente porque los funcionarios de Node.js dudan sobre hacia dónde irán ESM y CJS, lo que ha llevado a una separación a largo plazo entre los desarrolladores de la comunidad, y cada vez más personas están Obligado a elegir usar TypeScript, escribir una biblioteca de clases y compilarla en ESM y CJS al mismo tiempo. En la actualidad, el ecosistema TypeScript ha alcanzado una gran escala, por lo que no será tan efímero como CoffeeScript.

Liu Yicheng: Personalmente creo que TypeScript seguirá siendo popular y se utilizará más ampliamente. Pero no "reemplazará" JavaScript  . El objetivo de TypeScript nunca ha sido "reemplazar" JavaScript  , sino  proporcionar  un sistema de tipos basado en JavaScript como complemento de JavaScript y aprovechar sus respectivas ventajas en diferentes proyectos y escenarios.

La ecología técnica de JavaScript  y TypeScript se ha integrado desde hace mucho tiempo. Casi todas las bibliotecas tendrán archivos de tipo TypeScript.

Li Zhen: Creo que es poco probable que TypeScript reemplace completamente a JavaScript, sino que sirve como complemento y mejora de JavaScript. Por el momento, no habrá un juego de suma cero entre los dos y espero que ambos lenguajes puedan desarrollarse mejor. En la actualidad, el ecosistema de JavaScript es más grande, pero el estatus y la influencia de TypeScript continúan creciendo. Como desarrollador normal, es mejor prestar atención a su desarrollo cuando no hay conflicto entre los dos.

 

Vea el contenido completo de la entrevista: "TypeScript no es necesario en absoluto, JS + JSDoc es suficiente", el jefe dijo que quiero más

Supongo que te gusta

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