Objective-J se compila/transforma en JavaScript directamente en el navegador. (Esto contrasta con hacer esto en el servidor, como GWT lo hace con Java). ¿Se ha implementado este enfoque para cualquier idioma, aparte de Objective-J?¿Hay otros lenguajes distintos de Objective-J que se "compilan" a JavaScript en el navegador?
Respuesta
Heres un ejemplo que compila un ruby like language para javascript - y la compilación se puede hacer en el navegador.
El CoffeeScript compilador compila CoffeeScript en ECMAScript. Como el compilador CoffeeScript está escrito en CoffeeScript, puede compilarse en ECMAScript y ejecutarse en el navegador. Los bits y piezas necesarios para admitir los elementos <script type='text/coffeescript'>
ya están incluidos en el compilador CoffeeScript estándar.
En general, cualquier lenguaje se puede compilar en ECMAScript, todo lo que necesita es un compilador. Y, puesto que cualquier idioma puede ser compilado para ECMAScript, cualquier compilador puede ser compilado para ECMAScript, todo lo que necesita es un compilador para el lenguaje que compilador está escrito en.
Esto conduce a una explosión combinatoria de posibilidades para compilar idiomas dentro del navegador.
Por ejemplo, hay un tipo que escribe C compilers which target high-level languages por diversión. Él tiene un compilador que compila C a Java, Perl, Common Lisp, Lua o ECMAScript. Entonces, puede usar ese compilador para compilar cualquier otro compilador escrito en C en ECMAScript. Y la mayoría de los lenguajes tienen algún compilador en algún lugar que está escrito en C.
La pista está escrita en C. Clue compila C en ECMAScript. Ergo, puede usar Clue para compilar Clue en ECMAScript. Luego, puede ejecutar Clue en el navegador para compilar C a ECMAScript sobre la marcha. <script type='text/c'>
, alguien? (Pensamiento Diversión: Node.js está escrito en C Hmm y hellip;)
En un tono más serio: en general, hay tres razones para la compilación de ECMAScript:
- reutilización
- safety
- expresividad
Si simplemente desea reutilizar el código existente escrito en un idioma diferente (o conocimiento existente en un idioma diferente), entonces compilar/interpretar en el clie no tiene mucho sentido. El código o el codificador no esperan poder usar los elementos <script>
de todos modos. Esta categoría incluye cosas como GWT o Volta.
Si (tipo) la seguridad es su objetivo, la compilación/interpretación en el cliente simplemente no funciona: ¿cómo se puede garantizar la seguridad si no se controla el compilador? Es por eso que Ur/Web, Links, Flapjax, haXe, Caja y compilan el código en el servidor. Garantizan la seguridad ya sea mediante tipado estático o integración ajustada o ambos. (Por integración estrecha me refiero a que el backend, el frontend y la aplicación están estrechamente conectados, por ej.especificando las estructuras de datos una vez y luego generando los formularios SQL, ECMAScript y HTML correspondientes de esa única fuente para asegurarse de que todos coincidan. Debería ser obvio por qué esto requiere procesamiento en el servidor.)
Los que se centran en la expresividad, sin embargo, esperan ser utilizados como un reemplazo de ECMAScript, es decir, dentro de los elementos <script>
, y por lo tanto, a menudo vienen con intérpretes y/o compiladores que se ejecutan en el cliente. CoffeeScript, Objective-J y Clamato entran en esta categoría.
Además de estas listas hay un índice aquí: http://altjs.org/ que tiene:
- Nuevos idiomas mejoras
- JavaScript
- Puertos (Java, C, Ruby, etc.)
y más
- 1. ¿Lenguajes de programación que se compilan en PHP?
- 2. ¿Con qué idioma compilan otros idiomas?
- 3. ¿Hay otros lenguajes de propósito similar a XML?
- 4. Otros lenguajes de programación que admiten implicits "a la Scala"
- 5. ¿Es posible que F # se optimice más que otros lenguajes .Net en el futuro?
- 6. ¿Por qué el uso de preprocesadores es menos común en otros lenguajes distintos de C/C++/ObjC?
- 7. ¿Cómo incrusta otros lenguajes de programación en su código?
- 8. ¿Qué hace que algunos lenguajes de programación sean más potentes que otros?
- 9. Lenguajes de programación que compilan con código nativo y tienen las baterías incluidas
- 10. ¿Las mejoras de rendimiento de JavaScript de Trace Trees encontrarán su camino en otros lenguajes interpretados?
- 11. ¿Hay navegadores web altamente funcionales que ejecuten lenguajes de scripting que no sean JavaScript?
- 12. Pruebas automáticas en RPG (u otros lenguajes ILE)
- 13. Argumentos anidados que no compilan
- 14. ¿El manejo de excepciones de python es más eficiente que PHP u otros lenguajes?
- 15. ¿Existen NSDouble, NSFloat u otros tipos distintos de NSInteger?
- 16. Ver eventos de Javascript en el navegador
- 17. ¿Hay un autoeditor de JavaScript basado en navegador decente?
- 18. Interfacing R con otros lenguajes que no son Java/Compilación de R en ejecutable
- 19. ¿Cómo se valida html que se genera a partir de JS ejecutándose en el navegador?
- 20. Código de Javascript para forzar que la página html se abra en el navegador Chrome?
- 21. Posible usar Mathematica desde otros lenguajes de programación (python/C#)?
- 22. ¿Por qué algunos lenguajes de programación son más rápidos que otros?
- 23. ¿Puedo conectarme directamente a un servidor Redis desde JavaScript que se ejecuta en un navegador?
- 24. ASyncTasks que bloquean a otros
- 25. ¿Cómo se maneja la fecha de Javascript en otros idiomas?
- 26. ¿Cómo se compilan los métodos de extensión?
- 27. ¿Hay un IDE de Javascript que no tiene nada que ver con un navegador?
- 28. ¿Cómo se compara la velocidad de Ironpython con otros lenguajes .net?
- 29. ¿Hay algo como Solr o Elasticsearch que solo se pueda usar en el cliente en Javascript?
- 30. ¿Qué bibliotecas se han trasladado a diferentes lenguajes de programación?
Guau, eso fue ... interesante. Aparece dos Tylenol. – UnkwnTech
Muy buena respuesta! Y tendré que probar CoffeeScript. –