| Previous page | Next page | Contents | Home | Obix pragmatics |
Model the real world whenever possible!
Increasing the level of abstraction is generally considered as a main objective for any new software development product. Instead of having to deal with bits and bytes, memory management, search and sort algorithms, hardware drivers, and the like, a programmer should be able to concentrate on things which are as close as possible to the application domain, e.g. invoices, employees and coffee machines.
Object oriented programming has been invented to improve and simplify programming. However, after decrease of the initial hype, some people said that OO didn't reach its goals of better productivity, reusability and ease-of-use. This may be true in some cases, but object oriented programming is surely one of the greatest inventions in the world of software. If initial goals have not been reached immediately, this is not due to the concept itself, but to the lack of appropriate technologies.
Since early times scientists were aware of the fact that nature shows us the best way for new technologies. They have often been successful by trying to understand and copy nature. Think for example of airplanes, medicine, chemical and biological products. Fortunately, OO programming is highly suited to model the real world. This makes programming easier and more pleasant. The concept of everything being an object composed of attributes, commands and events is exactly what we find in nature. Factories enable us to create new objects based on types, like cars being created by real factories, or even a new offspring being 'created' in his mother's belly, based on 'type information' stored in DNA molecules. Complex types can be composed of other types, like our solar system being composed of planets, itself being a component of our galaxy. An extended type can replace a base type, like a master replacing a journeyman. Cooperation between objects can be regulated by messages and contracts, like a sales contract defining the client's and supplier's responsibilities. During development of Obix, it often appeared to be very helpful asking: How is this problem solved in nature?
It would also be a big progression to make operating systems 100% object oriented. Once the end user has understood the easy concept of objects, he just manages objects. And this is precisely the only thing he really wants to do: create a new customer, delete an e-mail, change a phone-number, ask a list to be printed, etc. A completely object oriented software system with a consistent, easy-to-use, graphical user-interface should be the real goal of future software.
| Previous page | Next page | Contents | Home | October 2004 |