2012-02-27 11 views
31

Como muchos otros, siempre mantengo la verdad de que "nunca existirá un compilador puro para Ruby porque el lenguaje es demasiado dinámico para que funcione un compilador estático".¿Alguien probó el Lenguaje de programación de Crystal (código de máquina compilado por Ruby)?

Pero recientemente me topé con estas:

The Crystal programming language at GitHub

Statically compiled Ruby

Ambos proyectos parecen ser muy interesante. Podrían darnos la velocidad de un lenguaje nativo compilado (y el código ofuscado, a menudo requerido comercialmente, de un lenguaje compilado) al tiempo que conservan (o la mayoría) la elegancia y flexibilidad de Ruby. Agregue una buena biblioteca de soporte (o, más probablemente, la posibilidad de acceder a las bibliotecas C++ existentes) y podrá comprender fácilmente por qué esto podría ser interesante.

¿Alguien ha probado el lenguaje Crystal? (aún no lo hice, debido a problemas de compilación con ruby-llvm)

¿Cuál era su sensación al respecto?

¿Cree que, dadas esas elecciones de diseño, sería realmente posible desarrollar un compilador de código nativo (código de máquina) para Ruby (con un esfuerzo razonable y en un tiempo razonable)? ¿Sería significativo?

+0

¿Cómo puede un compilador no ser significativo si es correcto? – Marcin

+1

Sería significativo (es decir: _useful_) _desarrollar_ tal compilador, por supuesto. ¿Cómo podría ser tan idiota para pensar que el propio compilador? No podría ser significativo (es decir: correcto). – AlexBottoni

+0

Según se informa, JRuby funciona tan rápido como cualquier otra aplicación de Java (peso por peso). Solía ​​usar Smalltalk, y pensé que era "lento" ...Sin embargo, de hecho fue el IDE que tuvimos el retraso. Los módulos reales de Smalltalk se usaron a partir de los tiempos de ejecución C y C++. Lo que estoy diciendo es que los lenguajes esotéricos pueden ser rápidos; es la transpiración del 99% que Edison mencionó. – will

Respuesta

38

Soy el desarrollador de crystal. Actualmente no todo se implementa desde la lista de puntos con viñetas. De hecho, las clases recién comenzaron a implementarse.

Aunque me gusta mucho la idea. Pero necesito pensar más sobre cómo implementarlo. Y también necesito más tiempo, jeje.

El segundo artículo tiene un enfoque completamente diferente porque no introducirá un nuevo idioma: simplemente tratará de compilar un subconjunto de Ruby, o tal vez se compilará en código nativo pero aún así permitirá un cierto dinamismo con los costos de rendimiento (Hablé con el autor de ese artículo hace algunos meses).

Mi sentimiento hacia ambos enfoques: realmente podría suceder. Necesitamos un lenguaje rápido con una sintaxis y biblioteca elegante, legible y divertida de usar (como lo que ofrece Ruby).

+3

Sería increíble si lo hiciera funcionar. Me encantaría seguir afilando y puliendo mis gemas y esgrimirlas directamente sobre el cristal de la CPU. –

+5

Si desea vigilar su desarrollo: http://github.com/manastech/crystal – asterite

12

Soy el desarrollador de Foundry; el segundo artículo es mío

Un artículo más reciente sobre el mismo tema sería "A language for embedded developers"; o también puede seguir el progreso del desarrollo suscribiéndose al foundry-lang.org.

Tenga en cuenta, sin embargo, que mi proyecto es comercial, (al menos inicialmente) no de código abierto, y se centra principalmente en el desarrollo integrado. Todavía puede usarlo en escritorios o servidores, por supuesto.

También soy uno de los mantenedores de ruby-llvm; informa los problemas que has encontrado como errores en el project page.

Cuestiones relacionadas