Part Two: The overloading of ‘=’ and abuse of the ‘convergence’ concept
The term ‘operator overloading’ refers to a feature whereby a programmer may enrich the definition of a selected operator. For example, she might redefine ‘+’, the addition operator, to handle both numbers and strings, dependent on the type of the operand pair. Subsequently, both “5 + 7” and “ ‘a’+‘b’ ” would be accepted by her C-language compiler as legal expressions. Some disapprove of overloading, so much so that certain languages do not even permit it. But at least it is a well-defined practice about which one may argue pros and cons in the software engineering context. By contrast, the symbol ‘=’ in mathematics seems to have undergone a kind of vague de facto overloading, only by semi-conscious accretion over the centuries. Most conspicuous is the use of ‘=’ for both assignment and equality testing, a comingling of fundamental concepts that would be a recipe for disaster in software engineering. But it does not stop with ‘=’; please refer to Figure 4.