TIL : some cunts in the ancient development of computer programming languages decided to use the term "message passing" to refer to "remote code execution / RPC".
In my view, this was bad nomenclature ( see Karlton, "two hard things" ). Subsequently, there arises the corrective terminology of "first-class messages", because RPC is a verb, and in natural language, a message is a noun. Perhaps not always!
Linguistically, we can analyse this under the lens of "high-context vs. low-context" communications. In natural language, the high-context interpretation of "message" is indeed a verb, that is, a message is normative by the sender, and is intended to invoke some sort of behavioural change in the receiver; whereas the low-context interpretation of "message" is simply a noun, that is, a message is simply a set of things, which make be interpreted in any one of various ways by the receiver.
Back to computer programming languages. There are languages like Erlang in which "message" refers to a low-context, i.e. dumb, message. And there are languages likes C++ in which "message" refers to a high-context, i.e. non-trivial control, message. The only reason I ( a noob ) didn't know this before, is because I learnt Erlang before I learnt C++.
So after all, given the possibility of both high- and low-context interpretations of the term "message passing", it has become important to specify "first class message passing", as the sort of feature that
(a) passes dumb messages, or
(b) passes non-trivial control messages, which are encapsulated in the semantic infrastructure needed to treat them as first-class citizens in the current programming language : that is to say, such control-messages should be able to be
- - passed as arguments, to functions
- - returned from functions
- - assigned to variables
No comments :
Post a Comment