The most embarrassing moment in my education was when I realized that I would never be able to understand the Hamiltonian. Or even what it was for. There it was, named after me (sort of) and it was on the other side of a wall I could never climb. Mind you, I did learn enough of the practical sort of mathematics to realize that you could do some useful stuff with it. I also learned that there was a lot more than the Hamiltonian on the other side of that wall. All that useful stuff taught me the value of symbolic representations, formal methods and so on: that they can be used to do real work in the real world.
The other day I encountered the calculi of business processes: the l one and the p one. For me, just like most everyone else, they’re on the other side of that wall. However, I picked up on the idea because I remembered the value of formal methods, particularly when dealing with computers and real world problems. As an aside here, I really like Java and, especially when you include the class library, it has to be one of the least formal languages. You may be able to do a lot, but even its best friends wouldn’t call it concise. One of the most concise languages is APL: 136 primitive operators and no precedence, let alone input/output. But, returning to the point, the purpose of formality in language is the ability to produce a minimal complete system of representation.
Minimal because, like most of humanity, I’m thoroughly lazy and don’t want to have to understand multiple ways of doing things (the Windows class libraries spring to mind here). Not only is there more to learn, but you then waste even more time trying to choose the best way of doing things. Whatever it is. Obviously, it also has to be complete. Why invest all that learning effort only to find that you can’t use it as you want to. So my ideal system of representation has a formal basis and is minimal and complete. Incidentally, the world’s most successful language, English, is neither formal not minimal, but is certainly complete.
There’s another attribute I desire. Remember the success of SQL: a public domain standard. Remember the success of the PC: horrible design, but published and therefore copied, to the detriment of (so I’m told) a manifestly superior one. So if I’m going to invest my time and effort, I want to use a public domain standard. (I make exceptions with things like Java, which is almost public domain.) The lessons of the Open Source projects are obvious and relevant. They are the only real threat to the dominance of Microsoft. They are successful because a vast number of people, who care, are involved. The sheer amount of intellectual horsepower available within the open source community can, and is, beating anything that any single supplier can deploy. So, in my opinion, if and when a public domain standard becomes supported by the open source community, it will be unbeatable.
1
Solution Center Resources