D'où vient la «méthode» en tant que terme spécial dans la POO?


13

"Méthode" est un terme spécial dans la programmation orientée objet. Est-ce que quelqu'un sait quand le mot a commencé à être utilisé dans ce sens particulier et en rapport avec quel langage de programmation ou autre branche de l'apprentissage quantitatif?

Réponses:


11

Java et C # ont obtenu la méthode de C ++, qui l'a obtenue de Simula .

Et Algol a probablement eu une influence sur Simula:

En outre, une version du MIT ALGOL, AED-0, a lié les structures de données ("plexes", dans ce dialecte) directement aux procédures, préfigurant ce que l'on a appelé plus tard "messages", "méthodes" et "fonctions membres".


3
IIRC, C ++ préfère généralement la «fonction membre» à la «méthode».
tdammers

Selon ce même article de Wikipédia, cela place la monnaie du terme (liée à la POO) dans la première moitié des années 60.
Tulains Córdova

2

Il est difficile de trouver une réponse définitive, mais la première langue pour désigner les choses comme des méthodes semble avoir été Simula, bien que cela puisse être faux ou rétroactif. Étant donné que les fonctions (issues des mathématiques) et les procédures (également issues des mathématiques) apparaissent dans les langages de programmation, le mieux que je puisse comprendre est que "Méthode" est un raccourci pour "Méthodologie".

Tous ces éléments sont des sous-programmes, des morceaux de code constituant un programme informatique. J'imagine que "Méthode" a été choisie parce que l'idée derrière la programmation de style OOP est de réutiliser le code autant que possible. Ainsi, vous pourriez avoir une procédure mais une méthode indique plus clairement qu'il s'agit d'un nouveau style à l'œuvre. Honnêtement, je suis connu pour appeler des fonctions méthodes et j'ai entendu des fonctions appelées méthodes.


6
Je crains que vous ne vous figuriez mal - la méthode (un processus pour atteindre un objectif) et la méthodologie (l'étude) ont des significations différentes.
JK

1
De plus, «méthode» existe depuis très longtemps en tant que mot anglais. Il n'est pas nécessaire de chercher un mot plus long pour contracter.
Steve314

En utilisant "fonction" au lieu de "méthode", c'est en grande partie la faute de C ++, et du fait que C n'a aucun concept de "procédure", seulement une "fonction" qui revient void. Les fonctions membres C ++ sont très étroitement liées aux fonctions ordinaires (contrairement à Simula) - avoir un thisparamètre implicite et (peut-être) un mécanisme de distribution d'exécution ne change pas vraiment ce à quoi vous avez affaire. Je ne sais pas si C était d' abord aux fonctions et procédures traiter de la même chose, mais Pascal (une nouvelle langue) a functionet des proceduremots - clés - bien IIRC, les fonctions Pascal pourraient avoir des effets secondaires.
Steve314

Plus précisément, la méthode est un moyen d'atteindre un objectif, une description / connaissance, et non le processus lui-même. Cela a une signification en rapport avec la "classe", un autre concept abstrait, définissant un type d'objets. Vous obtenez une classe d'objets et une méthode pour faire X avec chacun des objets, à condition qu'ils appartiennent à cette classe. Vous appliquez une méthode générique à un objet spécifique et obtenez des résultats spécifiques à cet objet.
SF.

1

Je cherche des informations à ce sujet depuis des décennies. Jusqu'à présent, je suppose que le terme est entré dans Simula à partir du sous-champ spécial du calcul numérique, où l'algorithme spécifique pour implémenter une fonction (par exemple, une valeur propre ou autre) est souvent appelé une méthode . En effet, vous pouvez avoir différentes méthodes numériques pour calculer la même fonction mathématique, avec divers compromis. Dans la POO, en raison de la substitution de méthode, vous pouvez avoir la "même" fonction implémentée différemment selon la classe - par exemple, la zone serait implémentée différemment pour le cercle et le rectangle , qui sont tous deux des formes , qui ont une zone. Cela semble une extension raisonnable du concept traditionnel de méthode numérique.


0

Je ne sais rien de l'étymologie de ce mot dans l'histoire de la POO. Mais je sais que ce n'est pas deductional (deducable). Un meilleur terme (un terme plus déductif ou MDT) pour cela pourrait être réaction ou agir


2
Je suis tout à fait sûr de ne pas être d'accord avec vous. «Méthode» est un mot parfaitement représentatif de ce que tout a commencé, une façon de modéliser diverses choses, chaque «chose» étant d'une classe, ayant des méthodes pour changer la façon dont la chose était. De la même manière que les méthodes changent les choses dans le monde réel, comme.
Vatine

Je suppose que «méthode» décrivait à l'origine le code d'implémentation, similaire à «procédure» - la méthode / procédure / algorithme pour calculer le résultat. L'utiliser pour une interface où l'implémentation n'est pas connue est un peu bizarre, mais à l'origine (dans Simula) "message" était probablement utilisé pour cela. Même ainsi, lorsque vous appelez une méthode, vous invoquez le code d'implémentation, même si vous ne pouvez pas savoir (sur le site d'appel) quelle implémentation.
Steve314

1
Je suppose que les trois mots «fonction», «procédure» et «méthode», «fonction» ont une connotation mathématique (mapper les entrées aux sorties), «procédure» est impératif (effectuez une série d'étapes, également utilisées dans le même sens militaire); «méthode» n'a aucune connotation, ce qui explique probablement pourquoi elle est préférée dans la POO.
tdammers

@Vatine +1 pour "cromulent"
MattDavey

-1

Les programmeurs avec une expérience REAL BASIC, VBx et VB.net connaissent deux types de déclarations de méthode "FUNCTION" et "SUB". La famille de langages BASIC permet de déclarer une fonction avec le mot clé "FUNCTION" ainsi que le mot clé "SUB". La différence entre ces deux est qu'une "FONCTION" peut ou ne retournera pas une valeur alors qu'en tant que "SUB", exécute simplement le code mais ne renverra aucune valeur. Mais avec l'avènement des concepts OO, les termes sous et fonction commencent à être utilisés de manière interchangeable comme méthodes.


2
Il en va de même pour la procédure / fonction de
Pascal

3
VB utilise "Function" et "Sub", abréviation de "Subroutine", pas "Method".
Ant

5
Je doute qu'Alan Kay pensait à Basic en proposant OOP et Smalltalk
Maglob
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.