I&#x27;ve gotten into numerous conversations with people about the proper terms to use for members of executable body of code, and the results are surprisingly opinionated.<p><i>Almost</i> everyone agrees that a function (the noun), following the mathematical definition thereof, is a thing which accepts an input or multiple inputs, and returns a consistent, repeatable result, directly related to that input. But... say &#x27;method&#x27; and&#x2F;or &#x27;procedure&#x27; in front of the wrong people, and you will be taken to task on the semantic meaning of such words, and what is proper and correct within a variety of technical fields.<p>Similarly, what is meant by &quot;functional&quot; (the adjective) is also up for debate. Some people, when they hear the word &quot;functional&quot; think you&#x27;re speaking in terms of &quot;functionality&quot; perhaps in the context of user acceptance testing, and the proving of a minimum viable product. Others will think you&#x27;re referring to the &quot;pure functional&quot; programming paradigm, like as in the sense of Haskell.<p>Still others will think you are simply referring directly to a specific Java method, or a specific JavaScript function, and correct you accordingly, and not consider whether the terms have any deeper meaning or context at all. (like: &quot;<i>no, this is Java, so it&#x27;s a method...</i>&quot; or &quot;<i>no, JavaScript only has functions, not methods...</i>&quot;)<p>That being said, I&#x27;ve always felt that these terms have such broad, generalizable definitions, since they&#x27;ve sort of been borrowed from layman&#x27;s English, and repurposed within a specific context.<p>Is there <i>REALLY</i> a difference between a &quot;method,&quot; a &quot;procedure,&quot; and a &quot;function&quot; proper?