Come programmatore Python che ha avuto un assaggio di Ruby (e gli piace), Penso che ci sia un parallelo piuttosto ironico a quando Python stava iniziando a diventare popolare.
C e i programmatori Java "bash" Python, affermando che non era un linguaggio reale, e che la natura dinamica dei suoi tipi sarebbe pericolosa e consentirebbe alle persone di creare codice "cattivo". Come Python è diventato più popolare, ed i vantaggi del suo tempo rapido sviluppo è diventato evidente, per non parlare della sintassi meno prolissa:
// Java
Person p = new Person();
# Python
p = Person()
abbiamo iniziato a vedere alcune caratteristiche più dinamiche appaiono nelle versioni successive di Java. Autoboxing e -unboxing rendono meno problematico affrontare le primitive e Generics ci consente di codificare una volta e applicarlo a molti tipi.
E 'stato con un certo divertimento che ho visto una delle principali caratteristiche flessibili di Ruby - Monkey Patching, propagandato come pericoloso dal pubblico di Python. Avendo iniziato a insegnare a Ruby agli studenti quest'anno, penso che essere in grado di "aggiustare" l'implementazione di una classe esistente, anche quella che fa parte del sistema, sia molto potente.
Certo, si può rovinare male e il programma può bloccarsi. Posso anche segfault in C abbastanza facilmente. E le app Java possono morire di morte fiammeggiante.
La verità è che vedo Patch per le scimmie come il prossimo passo nella dinamica e nella meta-programmazione. Divertente, dal momento che è stato in giro da Smalltalk.
fonte
2009-04-04 23:48:08
È più comune in Javascript che in Python, probabilmente altrettanto comune come in Ruby, se non di più –