Después de leer http://clojure.org/rationale y otras comparaciones de rendimiento entre Clojure y muchos idiomas, comencé a pensar que, además de la facilidad de uso, ya no debería codificar en Python, sino en Clojure. En realidad, comencé a sentirme irresponsable por no aprender Clojure, viendo sus beneficios.
¿Tiene sentido? ¿No puedo hacer un uso realmente eficiente de todos los núcleos usando un lenguaje más imperativo como Python, que un dialecto Lisp u otro lenguaje funcional? Parece que todos los beneficios provienen del uso de datos inmutables, ¿no puedo hacer eso en Python y tener todos los beneficios?
Una vez comencé a aprender Common Lisp, leí e hice casi todos los ejercicios de un libro que tomé prestado de la biblioteca de mi universidad (encontré que era bastante bueno, a pesar de su baja popularidad en Amazon). Pero, después de un tiempo, me encontré luchando demasiado para hacer algunas cosas simples. Creo que hay algunas cosas que son más imperativas en su naturaleza, que dificultan modelar esas cosas de una manera funcional.
Entonces, ¿es Python tan poderoso como Clojure para crear aplicaciones que aprovechen este nuevo futuro de múltiples núcleos?
Tenga en cuenta que no creo que el uso de semáforos, mecanismos de bloqueo u otro mecanismo de concurrencia similar sean buenas alternativas a la paralelización 'automática' de Clojure.