Salutations,Est-ce que Scala peut être vu comme une 'Inversion d'Abstraction'?
C'est une question provocante, visant à ouvrir le débat sur la façon dont l'inversion d'abstraction sont perçues dans la communauté des développeurs. Je suis vraiment curieux de savoir ce que tu penses.
Tout d'abord, voici une citation des exemples d'inversion d'abstraction donnée par Wikipedia: http://en.wikipedia.org/wiki/Abstraction_inversion
Création d'un objet pour représenter une fonction est lourde dans les langages orientés objet tels que Java et C++, dans lequel les fonctions ne sont pas des objets de première classe. En C++, il est possible de rendre un objet 'callable' en surchargeant l'opérateur(), mais il est encore souvent nécessaire d'implémenter une nouvelle classe, comme les Functors dans la STL.
Pour moi fonctions sont des citoyens de première classe à Scala, mais quand nous utilisons Scala pour générer bytecode Java, Scala Créer une classe spécifique « sur » de Java pour rendre la programmation fonctionnelle possible ... peut-on voir ce comme une inversion d'abstraction?
même peut demander à Clojure ou toute autre langue pour la machine virtuelle Java fonctionnelle ... ou même Collections Apache, pour cette exemple:
http://commons.apache.org/collections/apidocs/org/apache/commons/collections/Closure.html
BTW, je ne suis pas convaincu de la wikipedia article objectivité. Par exemple quand on parle de l'inversion possible d'abstraction dans micronoyau l'article dit « Un corps d'opinion tient la conception de micronoyau être une inversion d'abstraction » mais pas une telle déclaration pour le type fonctionnel dans POO
votre un !! + 1000 pour comprendre en profondeur la question, donner une très bonne réponse détaillée et .. être un communicateur FreeBSD! Merci beaucoup, et je suis d'accord que cet article est pure merde ... doit être réécrit ou supprimé. –