¿Cuáles son las ventajas y desventajas de programar en JavaScript?

Ventajas de usar JavaScript:

  1. Mismo idioma en front-end y back-end
  2. Desarrollo de aplicaciones móviles nativas usando React Native
  3. Desarrollo de aplicaciones de escritorio usando Electron
  4. Comunidad grande
  5. Naturaleza asincrónica
  6. Marcos / bibliotecas estándar de la industria de primer nivel como Angular, Vue, Meteor, etc.

Desventajas de usar JavaScript:

  1. JavaScript en el back-end es muy bueno para manejar una gran cantidad de solicitudes, pero no es bueno para tareas computacionales pesadas debido a la naturaleza de un solo hilo.
  2. Una curva de aprendizaje muy empinada. Sí, lo leiste bien. Aprender JavaScript incluso en una extensión avanzada es muy difícil porque la mayor parte de la gramática del lenguaje es diferente de C, C ++, Java, etc., en términos de implementación. Entonces, cuando las personas no aprenden el idioma correctamente, se quejan del diseño del lenguaje, bla, bla.

Si planea aprender JavaScript en el futuro, le recomiendo que aprenda a través de la serie de libros “You Don’t Know JS” de Kyle Simpson.

En mi humilde opinión, no te arrepentirás de haber aprendido JavaScript. A pesar de todo el odio y las críticas, JavaScript es adoptado por:

  1. Grandes jugadores como Netflix, PayPal y Walmart por su back-end y ven lo que dijo el blog de ingeniería de PayPal cuando cambiaron toda su aplicación de Java a JavaScript [1]
  2. La aplicación móvil de Facebook está construida sobre React Native, una gran pregunta para aquellos que cuestionan la capacidad nativa de React Native. ¿Facebook carece de desarrolladores de Android e iOS? Incluso construyeron su propio administrador de paquetes sobre npm, que se llama Yarn [2].
  3. GitHub Desktop (actualmente en versión beta), el Visual Studio Code, etc., adoptado por Microsoft, son algunas de las principales aplicaciones de escritorio estándar de la industria, creadas completamente con HTML, CSS y JavaScript.

Así que recomiendo no solo caer en lo que dice la gente, aprenderlo si realmente quieres. La gente te mostrará lo malo que es JavaScript al decir que:

  [] + [] = ""

Simplemente pregúnteles, ¿todos los grandes jugadores no saben que esta lógica utilizada de forma salvaje está mal en JavaScript y no debemos usarla?

  • [1] Node.js en PayPal
  • [2] Yarn: un nuevo administrador de paquetes para JavaScript

Ventajas:

  • ecosistema grande y vibrante
  • gran comunidad de usuarios
  • lenguaje común entre el front-end y el back-end

Desventajas

  • El ecosistema grande y vibrante está en un estado constante de flujo ; ayer, fue Angular 1; hoy, es Angular 2+ y React; mañana, puede ser Vue o algo más (quién sabe); mucha confusión e incertidumbre
  • lenguaje mal diseñado con un montón de WAT y WTF
  • creciendo a una enorme complejidad (la especificación del idioma de ES8.0 es de 885 páginas; espere más en ES9.0, ES10.0, etc.)
  • principalmente para la programación web , con cierta tracción en el lado del servidor, móvil y escritorio; en gran medida irrelevante en cualquier otro lugar
  • inadecuado para ingeniería de software a gran escala donde la mantenibilidad y la confiabilidad son cruciales
  • inadecuado para software de alto rendimiento (como gráficos, videojuegos, informática numérica, sistemas concurrentes distribuidos de alto volumen, etc.)
  • ampliamente despreciado

La principal desventaja de la programación en Javascript es lo que Javascript estaba destinado a hacer en primer lugar: fue diseñado para ayudar a crear páginas web interactivas.

Eso es. En su mayor parte, Javascript no se ejecutará fuera de un navegador web, y en general eso significa que debe ser atendido por una página web. No puedes escribir aplicaciones en él. Para eso no es.

Dicho esto, existe Node.js, que le permite ejecutar Javascript desde la línea de comandos. Incluso allí, Node.js se utiliza para crear la funcionalidad de Internet y los servicios del sistema, y ​​no pretende ser un lenguaje de propósito general.

Ya hay otros lenguajes que pueden hacer lo que hace Node.js, como Perl (a menudo llamado “la cinta adhesiva de Internet”) y Python. La principal ventaja de usar Node.js es que te permite aprovechar el conocimiento de programación de Javascript que ya tienes.