As you can see from the logo on the right, this year marks Grey Matter’s 25th anniversary in the business. We at HardCopy are celebrating with a redesign - which we hope you like - and with a number of articles that look back over the past 25 years in the software industry. On page 8 Graham Keitch looks back over not just 25 but a full 30 years of the Oracle database, while on page 32 Mary Branscombe talks to Grey Matter’s John Lockwood about the changing ways in which we have licensed software since 1983. However our main feature, starting on page 15, is a 10-page survey of the major software languages available today.
One thing that struck me as we put this feature together was how little we have progressed in that time. Yes, our programming languages are considerably more powerful than they used to be, while the component and software-as-service models have made software re-use easier and more prevalent. However software programming remains essentially a craft, rather than an industry. Creating a software program has more in common with - say - designing a house than building a car.
Of course arguably it has to be like that as the software requirements of each business are unique. However you only have to look at the vast sums spent by government departments on software projects that fail to do what is needed, if they actually get completed at all, to know that something is amiss.
There are many reasons for this. However a major problem is actually one of language. Even if accurate, the specification of the problem to be solved or the process to be automated is often open to misinterpretation. Although there are languages specifically designed for describing business problems and processes, these do not easily map onto current computer languages, while the ‘cultures’ of those using the system, describing the system and programming the system are often very different. With the possible exception of SQL, computer languages are used to tell the computer how to solve the problem, rather than communicating what the problem actually is.
Progress is being made on this front, but it is painfully slow. On the one hand there is the Unified Modeling Language (UML) which can be used to model both business processes and software. Model Driven Architecture (MDA), supported by the Object Management Group (OMG) is an initiative that hopes to use UML and other standards to automate the creation of software. MDA tools are beginning to appear in open source projects such as Eclipse. On the other hand is the concept of the Software Factory which is supported by Microsoft and beginning to come to fruition through the Domain Specific Language support that is appearing in Visual Studio Team System. It will be interesting to see how far we get with this over the next 25 years!