, 1 min read

# The best software developers are great at Mathematics?

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?

$x="some string"

and

not($x!="some string").

(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.