Python vs Ruby para metaprogramación [cerrado]


Actualmente soy principalmente un programador D y estoy buscando agregar otro lenguaje a mi caja de herramientas, preferiblemente uno que soporte los hacks de metaprogramación que simplemente no se pueden hacer en un lenguaje compilado estáticamente como D.

He leído un poco sobre Lisp y me encantaría encontrar un lenguaje que permita algunas de las cosas geniales que Lisp hace, pero sin la extraña sintaxis, etc. de Lisp. No quiero comenzar una guerra de llamas de lenguaje, y estoy seguro de que tanto Ruby como Python tienen su compensaciones, así que voy a enumerar lo que es importante para mí personalmente. Por favor, dime si Ruby, Python o algún otro lenguaje sería lo mejor para mí.

Importante:

  1. Buena metaprogramación. Capacidad para crear clases, métodos, funciones, etc. en tiempo de ejecución. Preferiblemente, distinción mínima entre código y datos, estilo Lisp.
  2. Sintaxis agradable, limpia, sana y semántica consistente e intuitiva. Básicamente un lenguaje moderno, bien pensado y divertido de usar.
  3. Paradigmas múltiples. Ningún paradigma es adecuado para cada proyecto, o incluso para cada pequeño subproblema dentro de un proyecto.
  4. Un lenguaje interesante que realmente afecta la forma en que uno piensa acerca de la programación.

Algo importante:

  1. Rendimiento. Sería bueno si el rendimiento fuera decente, pero cuando el rendimiento es una prioridad real, usaré D en su lugar.
  2. Bien documentado.

No es importante:

  1. Tamaño de la comunidad, disponibilidad de la biblioteca, etc. Ninguno de estos son características de la propia lengua, y todo puede cambiar muy rápidamente.
  2. Disponibilidad de empleo. No soy un programador profesional a tiempo completo. Soy un estudiante graduado y la programación es tangencialmente relevante para mi investigación.
  3. Cualquier característica que esté diseñada principalmente con proyectos muy grandes trabajados por un millón de monos de código en mente.
Author: dsimcha, 2008-09-28

30 answers

No hay realmente una gran diferencia entre python y ruby al menos a nivel ideológico. En su mayor parte, son solo diferentes sabores de la misma cosa. Por lo tanto, recomendaría ver cuál coincide más con su estilo de programación.

 15
Author: Jason Baker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 00:31:09

He leído un poco sobre Lisp y me encantaría encontrar un lenguaje que permita algunas de las cosas geniales que Lisp hace, pero sin la extraña sintaxis, etc. de Lisp.

No lo haríamos todos.

Distinción mínima entre código y datos, estilo Lisp

Tristemente, la distinción mínima entre código y datos y la sintaxis "extraña" son consecuencias unas de otras.

Si quieres una sintaxis fácil de leer, tienes Python. Sin embargo, el código es no representado en ninguna de las estructuras de datos integradas comúnmente utilizadas. Falla-como la mayoría de los idiomas-en el artículo # 1 de su lista 'importante'. Eso hace que sea difícil proporcionar ayuda útil.

No puedes tenerlo todo. Recuerda, no eres el primero en tener este pensamiento. Si existiera algo como tu lenguaje ideal, todos lo estaríamos usando. Dado que el mundo real no cumple con sus ideales, tendrá que volver a priorizar su lista de deseos. La sección "importante" tiene que ser reorganizado para identificar lo que es realmente importante para ti.

 68
Author: S.Lott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-11 15:15:01

Honestamente, en cuanto a las instalaciones de metaprogramación, Ruby y Python son mucho más similares de lo que a algunos de sus adherentes les gusta admitir. Esta revisión de ambos idiomas ofrece una comparación/revisión bastante buena:

Entonces, solo elige uno basado en algunos criterios. Tal vez te gusten los Rails y quieras estudiar ese código. Tal vez SciPy es lo tuyo. Mira el ecosistema de bibliotecas, comunidad, etc., y elige uno. Usted ciertamente no perderá en algún nirvana metaprogramación basado en su elección de cualquiera.

 17
Author: ars,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 07:48:57

Descargo de responsabilidad: Solo me dedico a cualquiera de los dos idiomas, pero al menos he escrito pequeños programas de trabajo (no solo scripts rápidos, para los que uso Perl, bash o GNU make) en ambos.

Ruby puede ser muy bueno para los "paradigmas múltiples" punto 3, porque trabaja duro para facilitar la creación de lenguajes específicos de dominio. Por ejemplo, navegue en línea y mire un par de bits de código Ruby on Rails y un par de bits de código Rake. Ambos son Ruby, y puedes ver las similitudes, pero no se parecen a lo que normalmente pensarías como el mismo idioma.

Python me parece un poco más predecible (posiblemente correlacionado con el punto 2 'limpio' y 'cuerdo'), pero realmente no sé si eso es debido al lenguaje en sí o simplemente porque es usado típicamente por personas con diferentes valores. Nunca he intentado magia profunda en Python. Sin duda diría que ambas lenguas están bien pensadas.

Ambos puntúan bien en 1 y 4. [Editar: en realidad 1 es bastante discutible - hay" eval " en ambos, como es común en los lenguajes interpretados, pero no son conceptualmente puros. Puede definir cierres, asignar métodos a objetos y demás. No estoy seguro de si esto va tan lejos como quieres.]

Personalmente encuentro a Ruby más divertido, pero en parte eso es porque es más fácil distraerse pensando en formas geniales de hacer las cosas. En realidad he usado Python más. A veces no quieres lo bueno, quieres seguir adelante así que se hace antes hora de dormir...

Ninguno de ellos es difícil de conseguir, por lo que solo podría decidir hacer su próxima tarea menor en uno, y el siguiente en el otro. O toma un libro introductorio sobre cada uno de la biblioteca, lee los dos y mira qué te atrae.

 16
Author: Steve Jessop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 00:20:03

¿Has considerado Smalltalk? Ofrece una sintaxis muy simple, clara y extensible con capacidades de reflectividad e introspección y un entorno de desarrollo totalmente integrado que aprovecha esas capacidades. Echa un vistazo a algunos de los trabajos que se están haciendo en Squeak Smalltalk por ejemplo. Muchos investigadores que usan Squeak pasan el rato en la lista de correo Squeak y #squeak en freenode, para que pueda obtener ayuda en temas complejos muy facilmente.

Otros indicadores de su relevancia actual: se ejecuta en cualquier plataforma que desee nombrar (incluido el iPhone); Gilad Bracha está basando su trabajo de Neolengua en Squeak; el equipo V8 se cortó los dientes en Smalltalk VMs; y Dan Ingalls y Randal Schwartz han regresado recientemente al trabajo de Smalltalk después de años en el desierto.

La mejor de las suertes con su búsqueda - háganos saber lo que decide al final.

 15
Author: mykdavies,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 08:54:17

Lisp satisface todos sus criterios, incluido el rendimiento, y es el único lenguaje que no tiene una sintaxis (extraña). Si lo rehúsas de una manera tan asombrosamente mal informada/equivocada y, en consecuencia, te pierdes la experiencia de usar, por ejemplo, Emacs+SLIME+CL, te estarás haciendo un gran flaco favor.

 14
Author: user23611,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-29 21:34:03

Estás describiendo Ruby.

  • Buena metaprogramación. Capacidad de crear clases, métodos, funciones, sucesivamente. en tiempo de ejecución. Preferiblemente, mínimo distinción entre código y datos, Estilo Lisp.

Es muy fácil extender y modificar primitivas existentes en tiempo de ejecución. En ruby todo es un objeto, cadenas, enteros, incluso funciones.

También puede construir accesos directos para el azúcar sintáctico, por ejemplo con class_eval .

  • Sintaxis agradable, limpia, sana y semántica consistente e intuitiva. Básicamente un bien pensado, divertido uso, lenguaje moderno.

Ruby sigue el principio de menos sorpresa , y cuando se compara el código Ruby con el equivalente en otro lenguaje, muchas personas lo consideran más "hermoso".

  • Paradigmas múltiples. Ningún paradigma es adecuado para cada proyecto, o incluso cada pequeño subproblema dentro un proyecto.

Puede seguir imperativo, orientado a objetos, funcional y reflexivo.

  • Un lenguaje interesante que realmente afecta la forma en que uno piensa acerca de la programación.

Eso es muy subjetivo, pero desde mi punto de vista la capacidad de usar muchos paradigmas al mismo tiempo permite ideas muy interesantes.

He probado Python y no se ajusta a sus puntos importantes.

 12
Author: FelipeC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-29 00:42:39

Tus 4 puntos "importantes" conducen exactamente a Ruby, mientras que los 2 puntos "algo importantes" están regidos por Python. Que así sea.

 11
Author: Neo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 08:36:39

Comparar ejemplos de código que hacen lo mismo (unir con una nueva línea descripciones no vacías de elementos de una lista myList) en diferentes idiomas (los idiomas están ordenados en orden alfabético inverso):

Ruby:

myList.collect { |f| f.description }.select { |d| d != "" }.join("\n")

O

myList.map(&:description).reject(&:empty?).join("\n")

Python:

descriptions = (f.description() for f in mylist)
"\n".join(filter(len, descriptions)) 

O

"\n".join(f.description() for f in mylist if f.description())

Perl:

join "\n", grep { $_ } map { $_->description } @myList;

O

join "\n", grep /./, map { $_->description } @myList;

Javascript:

myList.map(function(e) e.description())
      .filter(function(e) e).join("\n")

Io:

myList collect(description) select(!="") join("\n")

Aquí hay un Guía Io .

 9
Author: J.F. Sebastian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-28 10:39:58

Ruby sería mejor que Lisp en términos de ser "mainstream" (lo que sea que realmente signifique, pero una preocupación realista es lo fácil que sería encontrar respuestas a tus preguntas sobre la programación Lisp si fueras a ir con eso.) En cualquier caso, encontré Ruby muy fácil de recoger. En la misma cantidad de tiempo que había pasado primero aprendiendo Python (u otros lenguajes para el caso), pronto estaba escribiendo mejor código mucho más eficientemente que nunca antes. Esa es solo la opinión de una persona, sin embargo; tómelo con un grano de sal, supongo. Sé mucho más sobre Ruby en este momento que Python o Lisp, pero debes saber que fui una persona de Python durante bastante tiempo antes de cambiarme.

Lisp es definitivamente bastante genial y vale la pena investigarlo; como dijiste, el tamaño de la comunidad, etc. puede cambiar muy rápidamente. Dicho esto, el tamaño en sí no es tan importante como la calidad de la comunidad. Por ejemplo, el canal #ruby-lang es todavía lleno de gente increíblemente inteligente. Lisp parece atraer a algunas personas muy inteligentes también. No puedo hablar mucho sobre la comunidad de Python, ya que no tengo mucha experiencia de primera mano, pero a veces parece ser "demasiado grande". (Recuerdo que la gente era bastante grosera en su canal IRC, y por lo que he oído de amigos que realmente están en Python, que parece ser la regla en lugar de la excepción.)

De todos modos, algunos recursos que puede encontrar útiles son:

1) El Programadores pragmáticos Ruby Metaprogramming series (http://www.pragprog.com/screencasts/v-dtrubyom/the-ruby-object-model-and-metaprogramming) not no es gratis, pero los episodios posteriores son bastante intrigantes. (El código es gratuito, si quieres descargarlo y ver lo que estarías aprendiendo.)

2) Sobre Lisp de Paul Graham ( http://www.paulgraham.com/onlisp.html ). Es un poco viejo, pero es un clásico (y descargable gratis).

 6
Author: Benjamin Oakes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-29 20:52:06

Estoy usando Python para muchos proyectos y creo que Python proporciona todas las características que pidió.

Importante:

  1. Metaprogramación: Python soporta metaclases y generación de clase/método en tiempo de ejecución, etc
  2. Sintaxis: Bueno eso es de alguna manera subjetivo. Me gusta la sintaxis de Pythons por su simplicidad, pero algunas personas se quejan de que Python es sensible a los espacios en blanco.
  3. Paradigmas: Python soporta programación funcional básica, orientada a objetos y de procedimiento.
  4. I creo que Python tiene un estilo muy práctico, fue muy inspirador para mí.

Algo importante:

  1. Rendimiento: Bueno, es un lenguaje de scripting. Pero escribir extensiones C para Python es una práctica de optimización común.
  2. Documentación: No puedo quejarme. No es tan detallado como alguien puede saber de Java, pero es lo suficientemente bueno.

Como estudiante de posgrado, es posible que desee leer este documento afirmando que Python es todo un científico necesidades. Desafortunadamente no puedo comparar Python con Ruby, ya que nunca usé ese lenguaje.

Saludos, Dennis

 5
Author: xardias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 08:27:12

@Jason, respectivamente, no estoy de acuerdo. Hay diferencias que hacen que Ruby sea superior a Python para la metaprogramación, tanto filosófica como pragmática. Para empezar, Ruby obtiene el derecho de herencia con Herencia Única y Mixins. Y cuando se trata de metaprogramación, simplemente necesita entender que todo se trata del yo . La diferencia canónica aquí es que en Ruby usted tiene acceso al objeto self en tiempo de ejecución - en Python usted no!

A diferencia de Python, en Ruby no hay una fase de compilación o ejecución separada. En Ruby, cada línea de código se ejecuta contra un objeto self particular. En Ruby cada clase hereda tanto del objeto como de una metaclase oculta. Esto hace que para algunas dinámicas interesantes:

class Ninja
  def rank
    puts "Orange Clan"
  end

  self.name #=> "Ninja"
end

Usando self.name accede al método metaclass name de las clases Ninja para devolver el nombre de clase de Ninja. ¿La metaprogramación florece tan hermosa en Python? Sinceramente lo dudo!

 5
Author: Eric Davidson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-30 02:13:59

Bueno, si no te gusta la sintaxis lisp quizás ensamblador es el camino a seguir. :-)

Ciertamente tiene una distinción mínima entre código y datos, es multi-paradigma (o tal vez eso no es paradigma) y es una experiencia de expansión mental (si es tediosa) tanto en términos de aprendizaje como de los trucos que puedes hacer.

 4
Author: rickardg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-02 16:05:07

Io satisface todos sus puntos "Importantes". No creo que haya un mejor lenguaje para hacer meta hacker loco.

 4
Author: frigolitmonster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-10-15 21:09:45

Uno que soporta los hacks de metaprogramación que simplemente no se pueden hacer en un lenguaje compilado estáticamente

Me encantaría encontrar un lenguaje que permita algunas de las cosas geniales que Lisp hace

Lisp se puede compilar.

 3
Author: RHSeeger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-29 20:15:59

¿Probaste con Rebol?

 3
Author: Anon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-28 22:08:47

Mi respuesta sería ninguna de las dos cosas. Conozco ambos lenguajes, tomé una clase sobre Ruby y he estado programando en Python durante varios años. Lisp es bueno en metaprogramación debido al hecho de que su único propósito es transformar listas, su propio código fuente es solo una lista de tokens, por lo que la metaprogramación es natural. Los tres idiomas que más me gustan para este tipo de cosas son Rebol, Forth y Factor. Rebol es un lenguaje de dialección muy fuerte que toma código de su flujo de entrada, ejecuta una expresión en su contra y lo transforma usando reglas escritas en el idioma. Muy expresivo y muy bueno en la dialección. Factor y Forth están más o menos completamente divorciados de la sintaxis y los programa definiendo y llamando palabras. Generalmente están escritos en su propio idioma. No escribes aplicaciones en el sentido tradicional, extiendes el lenguaje escribiendo tus propias palabras para definir tu aplicación en particular. Factor puede ser especialmente agradable, ya que tiene muchas características que solo he visto en smalltalk para evaluar y trabajar con código fuente. Un espacio de trabajo muy agradable, documentos interactivos, etc.

 3
Author: ToddB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-02 23:45:44

Realmente no hay mucho que separar Python y Ruby. Yo diría que la comunidad de Python es más grande y más madura que la comunidad de Ruby, y eso es muy importante para mí. Ruby es un lenguaje más flexible, que tiene repercusiones positivas y negativas. Sin embargo, estoy seguro de que habrá mucha gente para entrar en detalles sobre ambos idiomas, así que lanzaré una tercera opción al ring. ¿Qué tal JavaScript?

JavaScript fue diseñado originalmente para ser Scheme para la web, y está basado en prototipos, lo que es una ventaja sobre Python y Ruby en lo que respecta a multi-paradigma y metaprogramación. La sintaxis no es tan agradable como las otras dos, pero es probablemente el lenguaje más ampliamente desplegado en existencia, y el rendimiento es cada vez mejor cada día.

 2
Author: Jim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 03:38:38

Si te gusta el concepto código-es-datos al estilo lisp, pero no te gusta la sintaxis Lispy, tal vez Prolog sería una buena opción.

Si eso califica como un "lenguaje moderno y divertido de usar", dejaré que otros lo juzguen. ;-)

 2
Author: JesperE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 06:43:45

Ruby es mi elección después de explorar Python, Smalltalk y Ruby.

 2
Author: ryw,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 13:29:25

¿Qué hay de OCaml ?

OCaml características: un sistema de tipo estático, inferencia de tipos, polimorfismo paramétrico, recursión de cola, coincidencia de patrones, cierres léxicos de primera clase, funtores (módulos paramétricos), manejo de excepciones y recolección automática de basura generacional incremental.

Creo que satisface lo siguiente:

Importante:

  1. Sintaxis agradable, limpia, sana y semántica consistente e intuitiva. Básicamente un bien pensado, divertido de usar, lenguaje moderno.
  2. Paradigmas múltiples. Ningún paradigma es adecuado para cada proyecto, o incluso para cada pequeño subproblema dentro de un proyecto.
  3. Un lenguaje interesante que realmente afecta la forma en que uno piensa acerca de la programación.

Algo importante:

  1. Rendimiento. Sería bueno si el rendimiento fuera decente, pero cuando el rendimiento es una prioridad real, usaré D en su lugar.
  2. Bien documentado.
 2
Author: Robert Vuković,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-30 07:38:13

He usado Python un poco, pero mucho más Ruby. Sin embargo, yo diría que ambos proporcionan lo que pediste.

Si veo todos sus cuatro puntos entonces usted puede por lo menos comprobar: http://www.iolanguage.com /

Y Mozart / Oz también puede ser interesante para usted: http://mozart.github.io /

Saludos Friedrich

 2
Author: Friedrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-15 21:20:17

Para la sintaxis de python y macros similares a lisp (macros que son código real) y un buen DSL, consulte converge.

 1
Author: Kasprzol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-28 13:23:53

No estoy seguro de que Python cumpla con todas las cosas que deseas (especialmente el punto sobre la distinción mínima entre código y datos), pero hay un argumento a favor de python. Hay un proyecto por ahí que te facilita programar extensiones para python en D, para que puedas tener lo mejor de ambos mundos. http://pyd.dsource.org/celerid.html

 1
Author: Mauli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-29 06:10:31

Si amas la rosa, tienes que aprender a vivir con las espinas:)

 1
Author: AgentOrange,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-12-27 23:07:20

Te recomendaría ir con Ruby.

Cuando empecé a aprenderlo, me pareció muy fácil de aprender.

 1
Author: Mardix,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-22 21:13:40

No mezcle el Lenguaje de programación Ruby con Implementaciones Ruby, pensando que los hilos POSIX no son posibles en ruby.

Simplemente puedes compilar con soporte pthread, y esto ya era posible en el momento en que se creó este hilo, si perdonas el juego de palabras.

La respuesta a esta pregunta es simple. Si te gusta lisp, probablemente prefieras ruby. O, lo que quieras.

 1
Author: nonanonym,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-03 00:16:07

Te sugiero que pruebes ambos idiomas y elijas el que más te guste. Tanto Python como Ruby pueden hacer lo que quieras.

También lee este hilo.

 0
Author: Alexander Kojevnikov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:46:50

Ir con JS solo echa un vistazo AJS (Sintaxis alternativa de JavaScript) en mi github http://github.com/visionmedia te dará algunos cierres de aspecto más limpio, etc: D

 0
Author: TJ Holowaychuk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-11 23:42:49

Con respecto a su punto principal (meta-programación): La versión 1.6 de Groovy tiene incorporada la programación AST (Abstract Syntax Tree) como una característica estándar e integrada. Ruby tiene RubyParser, pero es un complemento.

 0
Author: 2 revsgroovy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-29 20:32:49