As we discussed briefly in earlier articles, each program and each software component is still largely hand-coded from scratch. Yet much of the hand-coded logic in most programs is implied by the database structure that the program is designed to use. Code generators today can use standard code patterns to automatically generate 80% to 90% of the program code that was previously manually coded. Using these code generators, we are starting to see the automatic generation of programs in a variety of languages. However, object-oriented programming has not yet delivered on its promise of interchangeable and reusable code modules. It is true that object-oriented programmers can develop reusable code modules, but it takes considerable time and skill to achieve this result. This has limited our ability to reuse much code.
Because of the different hardware and operating system platforms, we still have considerable problems in integrating code modules within and between enterprises. These different platforms and programming languages use various application programming interfaces (APIs). Programs or code modules written in one language with a particular API cannot be easily integrated with other programs or code modules on different platforms.