One of the upsides of working for a university are the stimulating academic discussions. Yesterday, a philosopher challenged me a question:
Beyond the fact that software is expressed in Mathematics artefacts (bits, algorithms), are Information Systems fundamentally Mathematical?
For my convenience, I temporarily rephrase the question to something simpler and more concrete:
How are Software Developers limited by their mathematical weaknesses?
I plan several blog posts around this question, but let me start with an example.
A common and powerful language to process XML is XPath. XPath is used within web applications, scripts, databases, and so on. I often ask students the following question about XPath. Are these two expressions equivalent?
(The symbol “!=” means “different from”.)
Invariably, most students conclude that they are equivalent. Wrong!
Let us examine the semantics.
- The expression $x="some string" means that at least one element of $x is equal to "some string".
- The expression $x!="some string" means that some element of $x is different from "some string".
- The negation of $x!="some string" is that all elements of $x are equal to "some string". (Sorry if it sounds confusing.)
Thus, the expression not($x!="some string") is a more restrictive condition than the expression $x="some string".
Great software developers routinely think through far more complex mathematical problems. Yet, they do not think of them as being Mathematics.