What and Why of Mathematics

By Xah Lee. Date:

Dear Richard Gabriel and friends,

Richard Gabriel wrote:

There is much to criticize in the patterns, XP, and mathematical [sic] computer science communities. Let's say we all agree with your argument that all but the mathematical approaches have proven inept. Why would the mathematical approach work better? Or are you simply suggesting we give them a try too?

When subjects are well understood, it is called mathematics. In trying to understand anything, mathematical is the only way. There are many aspects to the question “What is Mathematics”. One practical view is that Mathematics is a form of extreme scientific rationalism. It is with this stance, we should approach to software engineering and everyday questions.

What people usually mean by math or mathematical, are things that are already very well understood, having lots of theorems and various formal foundations, especially in the form of symbols on paper. For example, numbers and equations and geometric figures and measures; the average people will take as mathematics. In general, unless you have had some familiarity with abstract algebra or topology, it is hopeless for laity to understand in any slight sense what modern mathematics is about, less to ponder about “what is mathematics”. From a more advanced point of view, mathematics are simply concepts. Concepts so abstract (and advanced and difficult) that one has to get years of training just to be able to imagine it. For example, there are great many math concepts that i cannot grasp. (For example, what's a bundle? what's projective geometry in higher dimensions? what's a lattice? what's a rational curve? …) Same applies to any accomplished mathematician. Much for lack of time to study them all, also for extreme lack of material and people who know them. In contrast, software patterns and OOP mantra and eXtreme Programing every idiot can love and embrace and sing, just like solutions for weight-loss abound, none of which focus on less eating and more exercise.

300 years ago mathematicians have the faintest idea what numbers are. Today, there are still a lot unanswered questions about the nature of numbers, but the difference of today's understanding and 300 years ago is like the difference of knowing a language versus its alphabets. As near as 300 years ago, there are quite a lot math practitioners who made significant contributions to mathematics, yet who speaks of magic and God and voodoo as explanation of many aspects of numbers that are not understood. (examples: the nature of number 0, negative numbers, irrational numbers, complex numbers, infinity, transcendental numbers, transfinite numbers are all filled with mysticism and crap as near as 300 years ago, by as famous mathematicians as Euler, Pascal, Kepler, and others…. bogus fads are not limited to numbers, but much other math objects or concepts such as geometry, calculus etc.)

So, when we ask “why should we rely on mathematical methods in computer engineering?” It is like asking “why not fortune-tell and crystal-gaze and prance?”.

I have known quite many mathematicians in my life. The majority of them had their degrees in distant past. I have realized that they have absolutely no interest in mathematics, nor remember what is mathematics, if ever. Note that many of these have Ph Ds from Stanford and Berkeley. My formal indirect boss, who is a lady of respectable age and have a math ph D in perhaps topology, are so old-fashioned and un-scientific who even keep fortune cookie tickets as good-luck charm. I'm so not impressed with people who have math degrees. What i learned from my life experiences is that even mathematics is of austere rigor and respectability, a person who had math training can be just as a kook as the next utterly ignorant zombie in everyday subjects.

Having been working in Silicon Valley (Mountain View, CA) since about 1998, i'm so unimpressed with coders and programers and engineers too. I deem myself to be amateur a mathematician, and also lack in many basic knowledge in computer science. (never studied algorithms in any direct way, for example.) But i witness these multitudes of lesser learned around me, one sloppier than another, one confident than another, churning out crappy software one faster than another, living their happy lives unassuming. (it may be just that i haven't met many respectable engineers.)

There is one message i want to emphasize: Spread the idea that irresponsible software license is not acceptable. When the public demand responsible software and engineers responsible for their fckups, then all sorts of fads and crap in the computing industry will disappear.