Styles

samedi 8 juin 2013

Rich Hickey, créateur de Clojure : l'orienté objet est très surfait

Écoutons ce que Rich Hickey, créateur du langage Clojure nous dit de l'orienté objet dans un article donnant les raisons qui l'ont poussées à construire Clojure:

L'orienté objet est surfait:
  • né de la simulation : maintenant utilisé pour tout, même quand cela est inapproprié : cela est encouragé par Java/C# dans toutes les situations du à leur manque de support (idiomatic) pour n'importe quoi d'autre
  • Les objets à état mutables sont maintenant les nouveaux codes spaghetti: difficiles à comprendre, tester et à raisonner dessus, un désastre pour gérer la concurrence.
  • L'héritage n'est pas la seule manière de faire du polymorphisme,
  • "C'est mieux d'avoir 100 fonctions autour d'une seule structure de données que 10 fonctions opérant autour de 10 structures de données", Alan J. Perlis
  • Clojure modèle ses structures de données autour d'objets immutables représentés par des interfaces, et pas son propre système de classes
  • Plusieurs fonctions définies sur peu de structures de données (seq, map, vector, set)
  • Ecrivez du Java avec Java, consommez et étendez Java à partir de Clojure.

Pour un besoin de programmation concurrente, clojure a de nombreux atouts, mais combien de programmeurs sont capable de produire du lisp aujourd'hui ? Le Lisp est pourtant une très bonne école pour comprendre l'ensemble des paradigmes de programmation, comme on peut le lire dans le magnifique livre Structure and Interpretation of Computer Programs.

L'emacsien codant déjà avec un dialecte de lisp (Emacs Lisp) ira plus facilement vers clojure. Et puis, ce n'est pas un certain Gosling qui a créé une première version de Emacs, et plus tard un autre language ... appelé Java ? Le monde est petit...

Aucun commentaire: