Utilisateur:Elg/Anonymie
Un article de Wikipédia, l'encyclopédie libre.
En programmation orientée objet, l'anonymie est le principe qui consiste à définir des éléments (fonctions, classes) sans les nommer.
Bon, le terme anonymie est-il vraiment employé ? C'est un synonyme archaïque d'anonymat.
Ensuite, ça n'a rien à voir avec la programmation objet. Ca existe même dans des langages déclaratifs comme les DTD et autres langages de schema etc.
Sans compter Lisp qui a introduit les fonctions anonymes.
En informatique, qu'est-ce que l'anonymie ? C'est le fait qu'il n'y ait pas besoin de nommer une construction. En fait, il n'y a rien de révolutionnaire. Quand l'on écrit a + b * c, l'on introduit un terme anonyme dans la somme : le terme b * c. Diantre ! Nous sommes les M. Jourdain de l'anonymie.
Poursuivons cette réflexion : quel est l'intérêt d'écrire a + b * c plutôt que d = b * c et a + d ? L'intérêt est que l'on ne va pas passer son temps à donner un nom à tout et en particulier à quelque chose qui ne sera utilisé qu'une fois à cet endroit. En général il y a deux raisons pour lesquels l'on nomme les choses :
* parce que l'on va s'y référer plusieurs fois, * ou à des fins de lisibilité (autodocumentation).
L'on voit bien que l'anonymat est quelque chose de naturel -- au moins au niveau des expressions. Cependant, sorti du statement, l'anonymat a longtemps été oublié (dans toute une branche de la famille des langages artificiels -- en effet en Lisp ou il n'y a pas le distinguo statement/expression tout pouvait être anonyme).
Par exemple, en C il n'est pas possible d'avoir des fonctions ou des types anonymes.
[modifier] Cas d'application
Avant tout l'anonymie est un moyen d'augmenter l'expressivité d'un langage en libérant certaines constructions syntaxiques du coût (psychologique) du nommage.
L'anonymat permet donc un gain de clarté en évitant de trouver un nom (mauvais bien souvent) pour désgner quelque chose alors qu'il est plus simple de directement décrire cette chose. En cela l'anonymat ressemble aux littéraux mais ce n'est qu'une ressemblance. Puisqu'une écriture littérale est le produit d'un sous ensemble déclratif du langage permettant de décrire une entité plutôt que de la construire impérativement. On retrouve là la dualité impératif-déclaratif (les langages fonctionnels purs étant déclaratifs tout y est finalement littéral alors que dans un langage impératif le littéral fait figure d'exception —-- mais il y a aussi dans le concept de littéral une dimension syntaxique : la concision de la déclaration).
[modifier] Fonctions anonymes
[modifier] Classe anonymes
Cette technique est permise entre autres par le Java. lisp, scheme, ml, haskell, js/es, smalltalk (blocks), c# (délégués)
Mes brouillons | m | |
---|---|---|
Crise de la presse • Libération • Jude • Écrans • Partage de vidéos • Web 2.0 • Anonymie • Tournoi britannique de rugby à XV 1883 • Kate Middleton • Donjon • AllOfMP3 • Les Aventuriers du Rail • Modèle:Équipe de rugby par adversaire • Modèle:Confrontation internationale rugby à XV • Classement Tournoi des six nations • Bernard Laporte |
||
Travaux en cours | ||
Modèle:Joueur rugby • Modèles de clubs • Confrontations de rugby • Autres travaux à faire... |