Thursday, November 24, 2005

War is the way to peace

I recollect from my early teenage readings that Beethoven’s Fifth Symphony was a reflection of his view that life is a fight. It is not hard to accept that when we know he never physically heard his Ninth Symphony. In my late teenage years I came across The Old Man and the Sea where Hemingway tells us that a man can only be destroyed, never defeated.

So, who are we fighting? Newton sheds some light on our enemy when he describes our joy in finding a shell at the shores of ocean of unknown. Our enemies are fate and our ignorance to fight it. We may also someday discover our origins, but only if we persist long enough to accomplish that.

Our perpetual war for peace of software is in the shores of Normandy under the German guns of complexity and confusion. Even writing that line saddens me for the loss of so many heroes that took us closer to peace with every drop of their blood. There is no glory in Roman’s way of selfishly sacrificing someone’s child to fictitious gods so that the great priest may eat well, and then die. But without the sacrifices of war heroes, peace would not have been attained.

Peace is only achievable through war, and war has casualties. However, the casualties of war for the peace of software are Specification Languages and Correctness Proof, not the bodies of young men and women who could have assisted us in our real war. We are not one another’s enemy. Quite to the contrary, we are wholly the army against our fate as species. Our ignorance in identifying our real enemy will lead our imagination towards making more powerful war machines, with one outcome. We will either end our own existence, or our fate in the universe will trap us unguarded and wipe us out.

Z++ abstract language is the bazooka against the tanks of complexity. Without a properly researched and designed abstract language we will continue to do things like adding objects to ADA. An engineer needs an abstract language for thinking about solutions, which can also be used to express those thoughts. However, the abstract language need not be radically different from the accepted standard system programming language.

Z++ is a superset of C++, but not an extension of C++. The language C++ furnishes the main linguistic patterns of Z++, which reduces the learning curve and enables an engineer to work with both languages without gross conceptual coding errors. In contrast, Java is too far from C++.

A software engineer need not fake the ability to use more than a dozen skills in order to get a job. Even our genius samples cannot handle that kind of complexity. Thus, the Z++ war will have to succeed, and it will. The addition of an IDE is just another step in winning the war.

Z++ is freely available from ZH Micro.

Labels: , , , ,