Tanto Python como Ruby son totalmente compatibles con multi-threading. Hay algunas implementaciones (por ejemplo, CPython, MRI, YARV) que no pueden ejecutar subprocesos en paralelo, pero eso es una limitación de esas implementaciones específicas, no del lenguaje. Esto es similar a Java, donde también hay algunas implementaciones que no pueden ejecutar subprocesos en paralelo, pero eso no significa que Java tenga un solo subproceso.
Nótese que en ambos casos hay un montón de implementaciones, que puede hilos en paralelos: PyPy, IronPython, Jython, IronRuby y JRuby son solamente algunos de los ejemplos.
La principal diferencia entre Clojure por un lado y Python, Ruby, Java, C#, C++, C, PHP y casi todos los demás mainstream y el lenguaje no tan dominante en el otro lado es que Clojure tiene un sane modelo de concurrencia. Todos los demás lenguajes utilizan subprocesos, que hemos conocido como un modelo de mala concurrencia durante al menos 40 años. Clojure OTOH tiene un modelo de actualización que le permite no solo presentar al programador uno, sino múltiples modelos de simultaneidad: actualizaciones atómicas, memoria transaccional de software, agentes asíncronos, variables globales localizadas por thread de concordancia, futuros, promesas, concurrencia de flujo de datos y en el futuro posiblemente aún más.
Dónde leíste esto? [Cita requerida] – Kris
@ircmaxell, (por lo que su valor :) que usted debe fijar esto como una respuesta junto con una citación – chiccodoro
siento que es más bien, 'infraestructura sólida para la programación multiproceso' mercados clojure así que (erróneamente) asumiendo otros marcos son no multihilo. – Blankman