call vs invoke - informatics context

The documentation for the Perl programming language[1] makes a conscious effort to use invoke when referring to method execution, because one always invokes methods on an invocant (/ˈɪnvɵkənt/ as a noun, not /ɪnˈvoʊkənt/ as an adjective).

The invocant is either a class or object used to identify the namespace where that named method is locate. SomeClass‑>new() and $obj‑>methname() both have invocants as the lefthand operand of the ‑> operator, respectively a class and an object. In languages like Java or Perl6 that use . for ‑>, it’s still the same thing: you still have a class or an object serving as the invocant.

In contrast, a simple function call or subroutine call has no such special invocant associated with its execution. Calling new() or funcname() hasn’t any extra thingie participating in the dispatch. Method invocation is just a special way of making a subroutine call, employing a bit of extra syntax and enjoying a bit of extra semantics.

But we try to not get to be too anal about it. Sometimes you’ll catch us saying method call, too. No big deal. Only languages like Java get anal about these things, refusing to admit that function calls even exist, creating the whole static method notion (which has no invocant) for want a normal function calls in the language.

[1] http://perldoc.perl.org/


They mean the same thing, and "call" is shorter, so in general I suggest you use that.