sirve - ruby tutorial



¿Es Ruby un lenguaje de scripting o un lenguaje interpretado? (2)

El término 'lenguaje de scripting' es muy amplio y puede incluir tanto lenguajes interpretados como compilados. Ruby, en particular, puede compilarse o interpretarse según la implementación en particular que estemos usando; por ejemplo, JRuby se compila a bytecode, mientras que CRuby (implementación de referencia de Ruby) se interpreta

https://src-bin.com

Acabo de notar que en la página de Wikipedia de Ruby, este lenguaje se define como lenguaje interpretado.
Entendí que probablemente hay algo que falta en mi fondo.
Siempre he sabido la diferencia entre un lenguaje interpretado que no necesita un compilador y un lenguaje compilado (que requieren ser compilados antes de la ejecución de programas), pero ¿qué caracteriza a un lenguaje de scripting?
¿Es Ruby definible como un lenguaje de scripting?

Gracias y perdóname por el apagón


Answer #1

Las cosas no son solo en blanco y negro. Como mínimo, también son grandes y pequeños, ruidosos y silenciosos, azules y naranjas, grises y grises, largos y cortos, correctos e incorrectos, etc.

Interpretado / compilado es solo una forma de categorizar idiomas, y es completamente independiente de (entre muchas otras cosas) si llama al mismo idioma "lenguaje de scripting" o no. Para colmo, también es una clasificación rota:

  • Interpretado / compilado depende de la implementación del lenguaje, no del lenguaje (esto no es solo teoría, de hecho hay bastantes lenguajes para los cuales existen intérpretes y compiladores)
  • Hay implementaciones de lenguaje (muchas de ellas, incluida la mayoría de implementaciones de Ruby) que son compiladores, pero "solo" se compilan a bytecode e interpretan ese bytecode.
  • También hay implementaciones que cambian entre interpretar y compilar a código nativo (compiladores JIT).

Verás, la realidad es una bestia compleja;) Ruby es, como se mencionó anteriormente, compilado con frecuencia. La salida de esa compilación se interpreta, al menos en algunos casos, también hay implementaciones que JIT-compile (Rubinius e IIRC JRuby compilan en el código de bytes de Java después de un tiempo). La implementación de referencia ha sido un compilador durante mucho tiempo, y IIRC aún lo es. Entonces, ¿Ruby es interpretado o compilado? Ninguno de los dos términos es significativo a menos que lo defina;)

Pero volviendo a la pregunta: el "lenguaje de scripting" tampoco es una propiedad del idioma, depende de cómo se use el lenguaje, es decir, si el idioma se usa para las tareas de scripting. Si está buscando una definición, la página de Wikipedia en " Lenguaje de scripting " puede ayudar (no permita que lo confundan con las notas sobre los detalles de la implementación, como los scripts que generalmente se interpretan). De hecho, hay algunos programas que utilizan Ruby para las tareas de creación de scripts y, sin duda, hay numerosos programas independientes de Ruby que probablemente se calificarían como scripts (raspado web, administración de sistemas, etc.).

Así que , supongo que uno puede llamar a Ruby un lenguaje de scripting. Por supuesto, eso no significa que una aplicación web de Ruby on Rails sea solo un script.





compiled-language