Dopo aver letto link e altri confronti tra Clojure e molte lingue, ho iniziato a pensare che, a parte la facilità d'uso, non avrei dovuto essere codificato in Python più, ma in Clojure invece. In realtà, ho iniziato a sentirmi irresponsabile per non aver imparato Clojure, vedendone i benefici.
Ha senso? Non posso fare un uso veramente efficiente di tutti i core usando un linguaggio più imperativo come Python, di un dialetto Lisp o di un altro linguaggio funzionale? Sembra che tutti i benefici derivino dall'utilizzo di dati immutabili, non posso fare proprio questo in Python e avere tutti i vantaggi?
Una volta ho iniziato a imparare alcuni Common Lisp, ho letto e fatto quasi tutti gli esercizi da un libro che ho preso in prestito dalla mia biblioteca universitaria (l'ho trovato abbastanza buono, nonostante la bassa popolarità su Amazon). Ma, dopo un po ', mi sono ritrovato a lottare troppo per fare alcune cose semplici. Penso che ci siano qualcosa di più imperativo nella loro natura, che rende difficile modellare queste cose in modo funzionale.
Quindi Python è potente come Clojure per la creazione di applicazioni che sfruttano questo nuovo futuro multi-core?
Si noti che non penso che l'uso di semafori, meccanismi di blocco o altri meccanismi simili di concorrenza siano buone alternative alla parallelizzazione "automatica" di Clojure.