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

Je viens de penser que les fonctions étaient une interface uniforme. cf. http://programming.reddit.com/info/1vzu4/comments/c1w2cd Anonymat et interfaces (uniformes) sont liées sinon on ne pourrait pas se servir de ce qui est anonyme.

[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 • AS Bayonne • Pro D2 • Top 14 • Challenge européen • Marc Lièvremont • Ludovic Radosavljsevic • Top 14 2007-08

Travaux en cours

Modèle:Joueur rugby • Modèles de clubs • Confrontations de rugby • Ministères français • Autres travaux à faire...

Aide

Liste des sous-pages • Aide:Sous-page