"Method" is a special term in Object-Oriented Programming. Does anyone know when the word began to be used in this particular sense, and in connection with what programming language or other branch of quantitative learning?

5 Answers 5


Java and C# got method from C++, which got it from Simula.

And Algol probably had influence on Simula:

Also, an MIT ALGOL version, AED-0, linked data structures ("plexes", in that dialect) directly with procedures, prefiguring what were later termed "messages", "methods" and "member functions"

  • 4
    IIRC, C++ usually prefers 'member function' over 'method'.
    – tdammers
    Jul 16, 2011 at 8:49
  • According to that same Wikipedia article, that places the coinage of the term (related to OOP) within the first half of the 60s. Sep 12, 2016 at 14:37

It's hard to find a definite answer out there but the first language to refer to things as methods appears to have been Simula though this may well be false or retroactive. Given that functions (from math) and procedures (also from math) show up in programming languages, the best I can figure is that "Method" is short form for "Methodology".

All of these are Subroutines, bits of code making up a computer program. I'd imagine "Method" was chosen because the idea behind OOP style programming is to reuse code as much as possible. Thus, you could have a procedure but a method makes it more clear that it's a new style at work. Honestly, I've been known to call methods functions and I've heard functions called methods.

  • 7
    I'm afraid you 'figure' incorrectly - method (a process to achieve a goal) and methodology (the study) are have different meanings.
    – J.K.
    Jul 15, 2011 at 4:35
  • 2
    Also, "method" has existed as an English word for a very long time. There's no need to look for a longer word to contract from.
    – user8709
    Jul 15, 2011 at 9:44
  • On using "function" instead of "method", that's largely the fault of C++, and due to the fact that C has no concept of a "procedure", only a "function" that returns void. C++ member functions are very closely related to ordinary functions (unlike in Simula) - having an implicit this parameter and (possibly) a runtime dispatch mechanism doesn't really change what you're dealing with. I don't know if C was first to treat functions and procedures as the same thing, but Pascal (a newer language) has function and procedure keywords - though IIRC, Pascal functions could have side-effects.
    – user8709
    Jul 15, 2011 at 9:52
  • Specifically, method is a way to achieve a goal, a description/knowledge, not the process itself. This has a significance in connection with "class", another abstract concept, defining a type of objects. You get a class of objects and a method of doing X with each/any of the objects, as long as they are of that class. You apply a generic method to specific object and get results specific to that object.
    – SF.
    Jul 15, 2011 at 13:39

I have been looking for information on this for decades. My guess so far is that the term came into Simula from the special subfield of numerical computation, where the specific algorithm to implement a function (e.g., an eigenvalue or whatever) is often called a method. This is because you may have various different numerical methods for computing the same mathematical function, with various tradeoffs. In OOP, because of method overriding, you may have the "same" function implemented differently as appropriate for the class--e.g., area would be implemented differently for Circle and Rectangle, which are both Shapes, which have an area. This seems a reasonable extension of the traditional concept of numerical method.


I don't know anything about etymology of this word in OOP history. But I know that it's not deductional (deducable). A better term (a More Deductional Term or MDT) for it could be reaction or act

  • 2
    I am entirely sure that I do not agree with you. "Method" is a perfectly cromulent word for what the whole thing started out as, a way of modeling various things, with each 'thing' being of a class, having methods to change how the thing was. In the same way that methods change things in the real world, like.
    – Vatine
    Jul 15, 2011 at 9:27
  • I'd guess "method" originally described the implementation code, similar to "procedure" - the method/procedure/algorithm for computing the result. Using it for an interface where the implementation isn't known is a tad wierd, but originally (in Simula) "message" was probably used for that. Even so, when you call a method, you are invoking implementation code, even if you can't know (at the call site) which implementation.
    – user8709
    Jul 15, 2011 at 9:41
  • 1
    I guess of the three words 'function', 'procedure', and 'method', 'function' has a mathematical connotation (map inputs to outputs), 'procedure' is imperative (perform a series of steps, also used in the same sense in the military); 'method' doesn't have either connotation, which is probably why it is preferred in OOP.
    – tdammers
    Jul 16, 2011 at 8:48
  • @Vatine +1 for "cromulent"
    – MattDavey
    Oct 12, 2011 at 15:22

Programmers with REAL BASIC, VBx and VB.net background are aware of two types of method declarations "FUNCTION" & "SUB". BASIC family of languages allow to declare a function with the "FUNCTION" keyword as well as the "SUB" keyword. The difference between these two is that a "FUNCTION" can or will not return a value where as a "SUB", just executes the code but will not return any value. But with the advent of OO concepts, terms sub and function are started being used interchangeably as methods.

  • 2
    Same goes for Pascal's procedure/function
    – Mchl
    Jul 15, 2011 at 7:25
  • 3
    VB uses "Function" and "Sub", short for "Subroutine", not "Method".
    – Ant
    Jul 15, 2011 at 8:03
  • 5
    I doubt Alan Kay was thinking Basic when coming up with OOP and Smalltalk
    – Maglob
    Jul 15, 2011 at 8:11

Not the answer you're looking for? Browse other questions tagged or ask your own question.