There are some encouraging signs of progress in the software development tools industry. Compared to hardware technology, software is still in the dark ages, but it is at last starting to grow up.
It isn't that there are no good software products, but there are far too many bad ones. Worse however is that the same mistakes are regurgitated. Drawing on the analogy with hardware there is not enough use of reusable components and far too loose a relationship between the business specification and the programming. Still it is better than it was a few years ago when a programmer could 100% meet the specification they were given and yet it could be seriously wrong compared to the business requirements.
It was a great shame that the CASE tools of 10 years ago never came to anything, because that was a main objective of the life cycle model, to automatically generate the code from the business design. The business design could be simulated and tested for logical consistency before any coding took place. It was proved many years ago that correcting a logical flaw at the coding/testing stage was hundreds of times more expensive than at the specification stage. Integrated CASE didn't happen for many reasons, but a lot of good individual products came out of that era.
The advent of client/server computing unfortunately threw software back many years because of poor GUI tools (Visual Basic) and a lack of understanding of multi-user applications by the new generation of PC programmers. Nevertheless it did get the reusable component concept off the ground with libraries of VB controls targeted at the GUI side in particular. Today, with products like Visual Studio and similar ones from IBM, Borland, Oracle, etc. we have moved on from the individual coder into an integrated concept, covering reusability, components, release control, testing and any other aspect of writing programs, thus hiding the earlier deficiencies.
While there have been these good developments for the programmers, there has been some progress in the field of automated design as well, albeit not as common as programming tool developments. This is understandable because such tools should be in the hands of business designers; more and more they will automate the generation of programs without programmers, creating quite a conflict. In the future programming will become a specialist job for those creating system software and developing the components; application "programming" will be a business design job. But not yet!
Of all the companies focusing on high-end CASE tools, Rational have taken the lead. It is for this long term concept that IBM bought Rational. End-user organisations using these graphical business design tools to generate tailored applications, which of course are implemented on an IBM on-demand system, licensing IBM supplied software components. IBM have taken a lead, they are however not alone.
To encourage the trend towards the use of business design tools it is essential to consolidate the lower level Integrated Development Environment (IDE). IBM's own products are very good in this area, but Microsoft has the edge. Further IBM's strategy is based around Java; Sun, the owners of the Java specification have their own IDE, an OSS Java Beans product, but IBM and other Java enthusiasts would like a little more freedom from Sun and so IBM funded an organisation, Eclipse, with $40 million, to further the whole Java based IDE, including an OSS product, also named Eclipse. Sun declined to join, not too surprisingly, but now Eclipse has become independent; IBM is just a member, along with SAP, SAS, etc. The outstanding question then is will Sun now join and will Eclipse and Sun's IDE converge?< BR>
Martin Healey, pioneer development Intel-based computers en c/s-architecture. Director of a number of IT specialist companies and an Emeritus Professor of the University of Wales.