¿Se considera una mala práctica compilar en Javascript como una cuestión de preferencia de idioma? [cerrado]

7

Entiendo que a veces es necesario compilar en Javascript e incluso en algunos casos resulta en una aplicación más rápida .

Sin embargo, me pregunto si compilar en Javascript, para crear aplicaciones web, desde un lenguaje como ruby, se considera una mala práctica. Específicamente para el propósito de preferencia de idioma y para la tarea de realizar las funciones típicas de front-end.

    
pregunta ryanSrich 26.08.2013 - 16:49

2 respuestas

8

En su artículo Javascript es un lenguaje de ensamblador para la web Scott Hanselman argumenta bastante convincentemente que JavaScript es un bajo- lenguaje de nivel y que tiene mucho sentido donde sea posible aprovechar un compilador cruzado si eso te hace más productivo.

Se podría hacer la misma pregunta con respecto al lenguaje de la Asamblea. Y mientras muchas personas se opusieron al concepto de lenguajes de nivel superior, finalmente perdieron ese argumento, al igual que las personas que se quejaron de la pérdida de rendimiento al usar lenguajes como Java y C # que no se compilan en un código de máquina, sino que se compilan contra un máquina virtual (JVM o .NET Runtime, respectivamente).

JavaScript es como IL para la web, el hecho de que podamos usar lenguajes de nivel superior para programar JS significa que podemos ser más productivos y aprovechar el compilador para obtener un rendimiento lo suficientemente bueno (y en muchos casos mejor) lo hace una muy buena practica.

Cuando digo nivel bajo, me refiero metafóricamente. Así como C nos permite ignorar cosas como registros y similares. Usar un compilador cruzado nos permite ignorar cosas como navegar / manipular el DOM. Nos estamos eliminando de los detalles de lo que hace Javascript y nos centramos en la lógica de la aplicación. Esto ha habilitado cosas como un emulador x86 completo que ejecuta Linux en el navegador o Unreal motor que se ejecuta en el navegador

Para responder a la pregunta de Robert Harvey, si observa proyectos como LLVM, prácticamente puede elegir el idioma que desee (y, por lo tanto, utilizar las herramientas que desee) y hacer que genere un Javascript válido.

También, como seguimiento, Scott le preguntó al creador de JavaScript y al creador de JSON su opinión sobre el tema Brendan Eich respondió:

  

Dije "JS es el x86 de la web" hace un par de años [probablemente en JSConf], pero no puedo afirmar que sea original. [Nick Thompson también lo dijo en Hacker News este año.]

     

El punto es JS es tan bajo como podemos ir. Pero también tiene instalaciones de nivel superior.   El derecho de la afeitadora, el ensamblaje sin un gran macro procesador no es bueno para los programadores ni para la seguridad. JS es. Así que la analogía necesita alguna calificación o se vuelve tonta.

     

La combinación de programación funcional de alto nivel y seguridad de la memoria, con instalaciones de bajo nivel, tales como matrices mecanografiadas y la próxima extensión ES.next de matrices mecanografiadas, datos binarios, crea un lenguaje de programación más poderoso que el ensamblaje, y Curso de seguridad de memoria es el primer diferenciador.

    
respondido por el Michael Brown 26.08.2013 - 17:25
2

No lo llamaría una mala práctica. Sin embargo, cuanto más se elimine de JS en el idioma en el que está trabajando (en su caso, aparentemente, Ruby), mayor será la posibilidad de que el compilador cree errores. P.ej. TypeScript es un superconjunto cercano de JS, pero me imagino que Ruby no comparte mucho con JS (podría estar equivocado).
A mí no me gusta particularmente JS, pero descubrí que al tratar de eludir el uso de un idioma, tarde o temprano te alcanza y aún te verás obligado a utilizar ese idioma. También podría abrazarlo desde el primer momento.

    
respondido por el Stefan Billiet 26.08.2013 - 17:55

Lea otras preguntas en las etiquetas