Seré brutalmente honesto: odio escribir código del lado del cliente en JavaScript. No soy fanático de este lenguaje, por decir lo menos.
Me parece una tontería que los navegadores admitan un lenguaje de programación , en lugar de una máquina virtual intermedia (como CIL o JVM). Esto último permitiría a los programadores escribir en un idioma de su elección (hasta cierto punto), en lugar de hacerlo en un idioma fijo predeterminado. Este lenguaje podría evolucionar más rápidamente, porque solo los cambios en CIL / JVM / lo que sea necesario requerirían la actualización de todos los principales navegadores. Se pueden agregar funciones de idioma sin afectar la experiencia del navegador anterior.
Los ahorros masivos de esfuerzo que producen los idiomas intermedios son bien conocidos . ¿Existen iniciativas para promover el "script" del navegador en algo que no sea JavaScript, y especialmente en una máquina virtual ya diseñada, desarrollada y optimizada? ¿Tienen algún impulso?
fuente
Respuestas:
Para responder a su pregunta, sí, se están haciendo esfuerzos para desaprobar Javascript en favor de un lenguaje más coherente para las secuencias de comandos web. Google ha estado poniendo mucho impulso detrás de su lenguaje Dart . Dart tiene su propia máquina virtual que ya está incrustada en Chrome, pero no estoy seguro de si los otros navegadores lo han adoptado todavía. También hay un lenguaje bastante prometedor llamado CoffeeScript .
También hay un proyecto de aspecto muy ambicioso llamado HaXe que tiene como objetivo unificar una gran cantidad de plataformas de desarrollo con un solo idioma.
Créeme, no estás solo en que no te guste Javascript, pero me temo que no irá a ningún lado pronto; de hecho, parece estar ganando mucho impulso con las aplicaciones HTML5 / JS de Windows 8, etc., pero alternativas como las que yo uso mencionados están comenzando a surgir :)
fuente
onSomething
controlador de eventos: analizar e interpretar 10-20 caracteres de un lenguaje de script simple es mucho más eficiente.Javascript en sí mismo puede verse como un lenguaje intermedio, que define una máquina virtual en la que se pueden compilar otros idiomas. En proyectos como GWT, esta noción ya está despegando. Puede que no sea lo que diseñaría desde cero, pero ya se está convirtiendo en una realidad que podría compilar "su idioma favorito" en Javascript.
fuente
Básicamente no. Estás prácticamente atascado con Javascript.
Dicho esto, en el pasado se han realizado esfuerzos para incorporar otros idiomas (java applets, vbscript, etc.) Cada uno de estos nunca ganó la tracción que tiene javascript porque javascript está integrado .
La única forma de construir a lo que se refiere es crear un lenguaje de script que se ejecute en una máquina virtual, compile el lado del cliente y luego lo ejecute. Luego, cada navegador tendría que implementar la máquina virtual en su propia base de código para que todo el código se ejecutara en todos los navegadores. Luego, debe asegurarse de tener algún tipo de estándares para que todos los navegadores ejecuten los comandos de la misma manera. Por supuesto, si los navegadores se crean de forma independiente, probablemente habría peculiaridades que los desarrolladores tendrían que tener en cuenta.
Pero ahora acabamos de describir Javascript.
Entonces, al final, sus opciones son:
Esencialmente, si quieres un lenguaje integrado, estás atascado con Javascript.
fuente
De hecho, no está odiando javascript, como se describe en los estándares de Ecma, pero odia la horrible implementación en varios navegadores , con sus peculiaridades, errores y wtfs. El Javascript del lado del servidor es bastante agradable en realidad. Además, el modelo DOM es la causa del 80% del dolor de javascript del lado del cliente.
Si todavía desea usar otro lenguaje, puede usar GWT , que básicamente le permite escribir Java, luego compilarlo en (feo) javascript o CoffeeScript , que es un azúcar sintáctico sobre JS, que se compila en JS.
fuente
{
de un objeto en diferentes líneas. ¿Qué "marco de funcionalidad moderna" encuentra falta?Esta pregunta aparece de vez en cuando.
¿Por qué no tenemos otros idiomas en las etiquetas de script en lugar de solo Javascript?
En el pasado, IE introdujo VB como una alternativa a Javascript. Creo que ya se puede ver cómo esto conduciría al infierno de las normas si se da cuenta ...
Entonces, ¿por qué no un lenguaje intermedio estándar común entonces?
Hay un viejo podcast de Brendan Eich que explica por qué no ve un lenguaje de código de bytes intermedio en el futuro cercano:
http://www.aminutewithbrendan.com/pages/20101122
http://news.ycombinator.com/item?id=1893686
El problema básico es que mientras el lenguaje intermedio (como CIL y los bytecodes de JVM) intentan ser genéricos, la mayoría de las veces resultan ser de nivel demasiado bajo y demasiado ligados a los lenguajes originales de alto nivel que se compilaron para ellos. Por ejemplo, realmente no puede implementar funciones recursivas de cola en la JVM: ¿qué otras características de lenguaje u opciones de implementación no podremos implementar si nos acoplamos a una abstracción de bytecode de bajo nivel demasiado pronto?
Mientras tanto, Javascript es un lenguaje flexible de alto nivel con semántica establecida e implementaciones múltiples, diferentes y eficientes. Lo que podríamos ver en el futuro es Javascript en sí mismo como un lenguaje intermedio . Desafortunadamente, esto es algo inmaduro y pocos idiomas compilan a JS a partir de hoy.
fuente
Si. Ya puede compilar Dart, Coffeescript y Java a Javascript. Tiene Emscripten, que es un backend del compilador para LLVM para generar código de bytes Javascript (y LLVM maneja bastantes idiomas, creo).
Pero aparte de compilar a JS, no en un corto período de tiempo. IE6 tiene 10 años y sigue pateando. Espero que los navegadores actuales (que no son compatibles con otros idiomas) no sobrevivan por tanto tiempo, pero estarán vigentes durante algunos años, provocando el ciclo de morderse la cola de "todavía tenemos que admitir navegadores que solo admitan Javascript, así que tenemos que usar Javascript ", de una manera mucho más difícil que decir CSS3: su sitio podría funcionar sin CSS3, pero intente hacerlo sin secuencias de comandos del lado del cliente.
fuente
Puede que solo tengas suerte. Este es el primer párrafo de una presentación en el foro webkit-dev:
Puede ver el resto del mensaje aquí .
fuente
JavaScript es el alma de los navegadores, por eso la mayoría de los nuevos intentos están generando JavaScript (CoffeeScript es un claro ejemplo).
En GWT, codifica su lógica del lado del cliente en lenguaje de programación Java y el kit de herramientas genera JavaScript.
ClojureScript es un proyecto interesante si estás en la codificación Lisp.
Así que parece que no importa qué, JavaScript está aquí para quedarse. (¿COBOL de la web tal vez?).
fuente
Ya hay una serie de compiladores que se dirigen a JavaScript, y puede elegir cualquier idioma que compile a JavaScript.
Su enlace que discute el valor de los idiomas intermedios los discute en el contexto de la implementación de un conjunto de compiladores, no en la provisión de código que se enviará a través de una red y se ejecutará en una máquina cliente. Puede que Javascript no sea el mejor formato para eso, pero sea lo que sea, no se parecerá mucho a los códigos de bytes CIL o java.
Si odias JavaScript, te sugiero que te muevas al espacio de desarrollo integrado, científico o de juegos, donde C, Fortran y C ++ gobiernan el gallinero. Las aplicaciones de línea de negocio se están moviendo mucho a la web, y eso significa más Javascript, no menos.
fuente