paint-brush
Mecanografiado frente a JavaScriptpor@AyoAlfonso
118,118 lecturas
118,118 lecturas

Mecanografiado frente a JavaScript

por Ayo Alfonso2017/06/25
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

El 27 de abril de 2017, te despiertas para comenzar tu rutina matutina. Son las 4:05 a. m., por lo que aún no lo ves. No hay tiempo de pantalla hasta las 6:00 am. Póliza personal. Meditas. Haces ejercicio, haces el desayuno. Esta vez decide deslizarse en la rutina de lectura de libros por un rato allí. Seguramente no has hecho eso en mucho tiempo.<br> Son las 8:00 am te las has arreglado para no haber mirado la pantalla de ese teléfono. Tu mente está fijada en llegar primero a la oficina. Y de nuevo no lo ves. Finalmente, las reuniones matutinas terminaron y usted recuperó la cordura, ¿para qué? ¿Una hora? Media hora tal vez antes de otra reunión.<br> Luego levanta su teléfono para verificar lo que cree que es una notificación de Twitter. Ahí es cuando tus ojos lo captan.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - Mecanografiado frente a JavaScript
Ayo Alfonso HackerNoon profile picture

¿Qué es TypeScript?



El 27 de abril de 2017, te despiertas para comenzar tu rutina matutina. Son las 4:05 a. m., por lo que aún no lo ves. No hay tiempo de pantalla hasta las 6:00 am. Póliza personal. Meditas. Haces ejercicio, haces el desayuno. Esta vez decide deslizarse en la rutina de lectura de libros por un rato allí. Seguramente no has hecho eso en mucho tiempo. Son las 8:00 am y te las has arreglado para no haber revisado la pantalla del teléfono. Tu mente está fijada en llegar primero a la oficina. Y de nuevo no lo ves. Finalmente, las reuniones matutinas terminaron y usted recuperó la cordura, ¿para qué? ¿Una hora? Tal vez media hora antes de otra reunión. Luego levanta su teléfono para verificar lo que cree que es una notificación de Twitter. Ahí es cuando tus ojos lo captan.

Anuncio de TypeScript 2.3

¡Hoy nos complace presentarles nuestro último lanzamiento con TypeScript 2.3!

Para aquellos que no están familiarizados, TypeScript es un superconjunto de JavaScript que brinda a los usuarios tipos estáticos opcionales y herramientas sólidas. El uso de TypeScript puede ayudar a evitar errores dolorosos con los que las personas suelen encontrarse al escribir JavaScript mediante la verificación de tipos de su código. TypeScript puede informar problemas sin que usted siquiera guarde su archivo y aprovechar el sistema de tipos para ayudarlo a escribir código aún más rápido. Esto conduce a una experiencia de edición verdaderamente increíble, que le da tiempo para pensar y probar las cosas que realmente importan.

……..

Te preguntas, ¿qué diablos es esto? Acabas de pasar por un infierno con React/Redux, todavía estás lidiando con Vue.js. De alguna manera has descubierto Angular. Bueno, está bien, digamos que realmente no tuviste otra opción, estabas aprendiendo en el trabajo. Ningún resultado significaba que su trabajo se vería afectado. Y entonces aprendiste Angular.

Piensas en el estrés por el que tienes que pasar para aprender esta cosa nueva y brillante. Verifica el uso de este ** superconjunto sintáctico estricto de JavaScrip **t, unos días después y descubre que tiene un ejército de desarrolladores detrás. ¿A la gente le encanta esta cosa? Ahora, como desarrollador inteligente, sabe que no tiene otro trabajo que mantenerse al día con el mercado, como lo mencionó Chad Fowler en su todavía muy relevante libro The Passionate Programmer . Entiendo perfectamente cómo te sientes. Pero personalmente siento que TypeScript ha venido para quedarse.

Pero, ¿qué es exactamente este JavaScript?

JavaScript, el lenguaje de programación muy dinámico que atraía a todos porque no los "alojaba" como lo hacía C++. Su naturaleza no tipificada y su herencia prototípica única eran el cebo perfecto. Para justificar mi intuición sobre esto, solo unos días después de que Microsoft lanzara TypeScript, Angular lo recogió y abandonó el ES6 simple que era otra opción disponible. Inicialmente, su idea era optar por actionScript, un lenguaje de secuencias de comandos javascript que extendía Typescript y fue publicado por el equipo AngularJS de Google exactamente dos años después del precursor TypeScript. De hecho, se iba a ejecutar en TypeScript, por supuesto, como una extensión.

Habiendo dicho todo eso, desde entonces ha aparecido una propuesta de decorador para ES y parece estar bastante cerca de lo que hizo el actionScript original. Pero antes de saltar el arma aquí realmente. ¿Cuál es esta propuesta del decorador que utiliza ES?

Un decorador es:

  • Una expresión
  • que se evalúa como una función
  • Eso toma el descriptor de destino, nombre y decorador como argumentos
  • Y, opcionalmente, devuelve un descriptor de decorador para instalar en el objeto de destino

Lea más aquí . Pero si no desea ramificarse en otra página hasta que haya terminado con este artículo, ¿un decorador es básicamente una función de alto nivel? Una función de alto orden 'toma' otra función y cuando se ejecuta, extiende el comportamiento de la última función sin modificarla explícitamente.

Decorador de python muy simple de UA

Entonces, si nuestra función myFunction (como una función superior) aquí toma una función, no necesariamente modificará esa función, aunque la salida será diferente.

Una de las primeras cosas que me desanimó con los decoradores fue el signo '@'. Inmediatamente sentí que estaba leyendo otro idioma además de JavaScript. Estoy seguro de que esta fue la experiencia para muchas otras personas también. De cualquier manera, el ' @` le dice al analizador que todo (en ese bloque de código) después de ese signo es un decorador. ¿Suena fácil ahora? Es simplemente hablarle directamente a la computadora lo que está a punto de suceder, que es que una función será decorada por otra función y los resultados volverán a pasar.

Y la computadora dice; '¡Entiendo! Bien, sigue'. Luego, la computadora trata ese bloque de código como un tipo diferente de función, algo así como un padre trataría a su hijo favorito y, como resultado de esta atención especial del 'padre', se convierte en una función que puede hacer cosas geniales como memorización, autenticación, registro, etc. Nuevamente, no profundizaré en los detalles de esto por ahora, pero cuando piense en decoradores, piense en ellos de esta manera:

Un decorador en el trabajo

…En lugar de este choque de trenes.

Imagine que tiene un par de funciones que desea envolver alrededor de sí mismas. Sería una pesadilla codificar y mantener dicho programa. Todo dicho y hecho sobre ES6, por supuesto, aún tendría que lidiar con escribir de alguna manera en ES. Y TypeScript encaja naturalmente allí (cuando se trata de escribir). Puede complementar ES con una solución como Flow para obtener una escritura gradual después de todo. Tal vez veamos dos campamentos más grandes. Uno para ES (chicos de Babel) y otro para TS.

¿Qué es la escritura estática vs dinámica?

Escribir siempre ha sido sobre las variables en el programa. Si creo un lenguaje de escritura estático, no tengo que decirle inmediatamente al compilador que este número entero en particular siempre será un número entero. Será exactamente lo que almacené en el programa, incluso si lo olvidé mientras codificaba y cambié su valor pasándolo a otra clase o algo así. Varios buenos ejemplos de lenguaje son C, C++, Java. La escritura dinámica, por otro lado, es exactamente lo contrario de lo anterior. Ruby, Perl y, por supuesto, nuestro chico del cartel: JavaScript. Esto no significa que ninguno de estos lenguajes sea intrínsecamente débil o malo. Y ese debe ser el enfoque.

Ejemplo de Java (estático y fuertemente tipado)

No hay forma de que el sistema pueda fallar al evaluar el valor de 'foo', jamás.

Ejemplo de Javascript (Dinámico y fuertemente tipado)

A diferencia de Java o C++, que son lenguajes fuertemente tipados, Javascript es lo suficientemente inteligente como para saber/interpretar qué tipo de variable desea usar. pero debido a la laxitud que esto crea o puede crear en la calidad del código, también se le llama lenguaje débilmente tipado. Pero sabemos mejor. Especialmente si sigue las mejores prácticas.

Ejemplo de PHP (estático y débilmente tipado)

Entre los dos, son solo formas paradigmáticas de codificación, no significa que la tipificación estática sea mala o la tipificación dinámica sea buena. El diablo que debe ser su única atención debe ser lenguajes de tipo débil y fuerte. Esto es lo que pierde al pasar por alto un lenguaje de secuencias de comandos que se centra en mejorar la vida de sus usuarios.

  • Funciones genéricas y polimorfismo
  • Funciones de orden superior
  • Composición de objetos

Otra vez. Los tipos dinámicos NO =/ No se comprueba el tipo. sobre ese tema, consulte este artículo que dice que la escritura dinámica NO es una escritura débil Dando un paso atrás, ¿qué pasaría si combinamos ambos lados de la moneda, lo que significa que tomamos lo que hizo que C ++ sea C ++ y lo introdujimos en Javascript?

  • Velocidad : los lenguajes estáticos son generalmente más rápidos
  • Eficiencia/Eficacia Los lenguajes estáticos hacen que el programador sea más responsable. La programación dinámica a veces crea un riesgo moral y fomenta malos hábitos de programación

Aquí está JavaScript escrito dinámicamente

Aquí está Javascript fuertemente tipado

¡Y eso es TypeScript!

Si este artículo hace que Typescript parezca interesante, puede profundizar más en Typescript y ver si es algo en lo que desea invertir tiempo y energía. Este es solo un artículo muy breve que habla sobre estas herramientas de una manera muy periférica.

'