¿Cuáles son ejemplos de cosas que pueden hacerse backend usando JavaScript?

Gracias por el A2A. Esto podría responderse de dos maneras.

Voy a hacer backend y quiero saber si JavaScript puede manejar lo que le voy a pedir.

Sí puede. Cualquier cosa que pueda hacer con otro idioma es factible en javascript. Lo más común es reemplazar RoR y PHP (¡aunque también están surgiendo algunas tiendas Java!). Esos idiomas no ofrecen nada que Javascript no ofrezca. Es posible que tengan mejores marcos actualmente, pero puede hacer lo mismo. Javascript es capaz de procesar todos los datos, la conexión de API y el manejo de bases de datos que las tecnologías de backend más tradicionales pueden hacer. El verdadero inconveniente es que no existen excelentes herramientas para hacer algunas de las cosas que hemos desarrollado durante más de una década para otros idiomas. La mayoría de los marcos para Javascript tienen entre 2 y 5 años, bastante jóvenes según los estándares del marco (aunque antiguos según los estándares web).

¿Cuáles son ejemplos de cosas que se pueden hacer backend usando JavaScript que no se pueden hacer en otros idiomas?

  • Código isomorfo verdadero. Tener exactamente el mismo código que ejecutar el servidor y el cliente (en la mayoría de los casos) significa que una IU optimista realmente será correcta la mayor parte del tiempo. Algunos marcos enfatizan esto
  • Mixin vs Herencia. Puede heredar todo el día en otros idiomas, pero el comportamiento de Mixin que realmente puede reducir la cantidad de saltos necesarios para comprender un objeto es algo que solo Javascript proporciona
  • Modelo de solicitud de EventLoop. Dado que el bucle de eventos se ejecuta tan bien en el navegador, Node.js decidió mantenerlo cuando va al servidor. Esto ha proporcionado ganancias de rendimiento a expensas de la estabilidad natural. (Todavía es muy estable, pero puede ser derribado más fácilmente por simples errores).

Buena pregunta. El tiempo de ejecución de Node.js es excelente para algunas cosas, no tan impresionante en otras. Mi aplicación favorita es como un servidor RESTful API: Node es excelente para manejar el tráfico http. Su soporte nativo para JSON significa que leer y escribir cargas de API es increíblemente fácil. Su naturaleza sin bloqueo significa que no tengo que girar grupos de subprocesos en todas partes, no tengo que crear ejecutores y no tengo que preocuparme por la concurrencia. Mucho. Debe comprender que las bibliotecas subyacentes que no bloquean suelen usar grupos de subprocesos y que las llamadas asincrónicas pueden, de hecho, colisionar de maneras interesantes.

Entonces: API RESTful además de otros sistemas, como Postgres, ElasticSearch. Como entrada de front-end a Kafka para sistemas de análisis. Como servidores para sistemas de chat basados ​​en websocket.

Ahora, en realidad no sugeriría que alguien use JavaScript “en bruto”, sino que use TypeScript, como una forma de ayudarlo a ampliar la base de código de su aplicación.

Muchas personas han mencionado aquí en el contexto de los servicios en el dominio web y es cierto, ya que NodeJS se destaca en el rendimiento en los casos en los que se manejan muchas E / S asíncronas, por lo que si ajusta los almacenes de datos, como bases de datos u otro servicio web, ya que realmente escala bueno en comparación con el paradigma multiproceso.

Sin embargo, puede usarlo para hacer otras cosas como escribir lexers / parsers / intérpretes, procesamiento de imágenes, PNL, bibliotecas de aprendizaje automático, procesamiento de datos o casi cualquier cosa que pueda hacer con cualquier otro idioma, pero si será eficiente o no. La mejor herramienta disponible para hacer esas cosas es una discusión diferente, pero ciertamente puedes hacer casi cualquier cosa con ella.

Noam mencionó algunos de los pros y los contras de JS en el back-end. Así que mencionaré algunas cosas sobre las herramientas para JS en el back-end.

JS es relativamente nuevo para los servidores, por lo tanto, no hay muchos marcos buenos disponibles para él. Hay express y koa (que son solo para manejar conexiones) y algunos frameworks full-stack como Meteor y Sails. No hay muchas opciones disponibles, por lo que es más difícil hacer una aplicación muy rápido.

Aparte de la falta de excelentes herramientas para cada tarea, JS es bastante bueno.