OOP versus 4GL - IT versus DP
Object Oriented Programming (OOP) is nowadays state of the art - having replaced the previous concepts of 4GL - fourth generation languages in modern day development. Most programmers who have worked with both will tell you that creating OOP based systems for business applications has not been made easier by OOP. Concepts such as MVC - Model View Controller - as implemented in programming languages such as PHP or Java have improved the structuring of Internet/Intranet based applications, but have also increased the complexity of such applications.
Modern day applications are more oriented toward IT - Information Technology - meaning, the finding and displaying of information, than DP - Data Processing. A short comparison between the two concepts follows:
Information Technology (IT)
Data Processing (DP or EDP)
|Unstructured data, images, videos...||Structured data, tables|
|Find - display applications||Input - process - output applications|
|Temporary document storage||Permanent document storage|
|Storage in database tables and files||Storage in database tables|
|Dynamic processing procedures||Consistent processing procedures|
A typical IT application is a Content Management System (CMS) - such as the one from which you are reading now.
A typical DP application is an Order Processing System (OPS) which may run in a warehouse or in an office environment.
In a CMS you will typically select the site, enter a search or click on a link, browse some content and maybe purchase something by means of a shopping cart - which places an order to the selected shop to deliver your order. This I call a Find-Display Application. The whole process is dynamic, it is almost entirely driven by user actions, you can interrupt, stop entirely or go somewhere else and return at will.
Processing an order is a whole different type of application. From selecting the order and items for processing until the items are delivered to the customer, a whole chain of processes are involved. The processes are defined in detail and usually optimized to save effort and costs. We call these set of processes Logistics or part thereof.
The biggest source of problems in implementing an order processing system in my experience is the communication between the users (those in the office, shop floor, factory, warehouse...) and the programmers.
OOP introduced a whole new language - Classes, Methods, Properties, Inheritance, Constructors.... - which made the communication between the programmer and the end user no easier. Along came concepts to overcome this communications problem - some examples:
UML - Unified Modelling Language and
DDD - Domain Driven Design
These concepts, their language and inherent complexity are completely foreign to the average logistics worker, such as a fork lift truck driver, and my job consisted of trying to understand what requirement he had from the system and how best to implement a system to meet those requirements. The next article is all about my approach to developing a system for the end user in the real world, part of a Logistics Management System.