COBOL: A 1959 Idea and 2022 Technology

COBOL, the unassuming technology that has been around since before IT was even a term, is sometimes the subject of a heated state government debate, occasionally makes headlines at industry events, and it was even featured among the top 10 technology topics on an IEEE Twitter poll from 2020. But how did it become a part of the modern zeitgeist? 

COBOL is now into its seventh decade of usage as a global programming language and continues to be hugely important as a system language for great swaths of the global economy. Age aside, COBOL’s defining characteristics include running systems of record applications in worldwide organizations; supporting all sectors vital to the global economy including banking, transportation, government, and healthcare; comprising billions of lines of application code worldwide; and remaining ubiquitous in the mainframe world.

Java Template Method Pattern in 3 Minutes [Video]

The template method pattern is a behavioral design pattern in GoF's design pattern. In my opinion, it is fundamental and worth knowing and learning. It opens up our eyes to many of the usual ways of object-oriented design. 

In this pattern, the father class (the abstract superclass) defines the skeleton/algorithm of an operation in terms of a number of high-level steps. The detailed steps are to be implemented by the sons (the subclasses).

The 7 Virtues of Good Software Design

There are plenty of good practices, design patterns, code checks, and more, that you must learn and follow to produce high-quality, reliable, and extensible software.

But each and every one of them serves to one or several of these seven golden virtues:

The Relationship Between Modularity and Polymorphism

Object-Oriented concepts and practices have a layered structure with both vertical and horizontal relationships between the layers and among items in each segment. The following chart shows this structure. The closer a layer is to the bottom of the inverted pyramid, the more important and fundamental it is.

As a reminder, the lowest layer consists of “Abstraction,” “Modularity,” “Encapsulation,” and “Hierarchy.” Those are the most fundamental tools in the Object-Oriented Paradigm; all other layers add more clarity to these principles. The second layer belongs to GRASP, an abbreviation for “General Responsibility Assignment Software Patterns.”

Is the Object-Oriented Paradigm a False Hope?

For the last 20 years, Java has become the most popular object-oriented language. It conquered the enterprise world and still has one of the biggest communities. Now industrial development exists only because of the object-oriented paradigm (OOP). But here, I want to bring up skepticism about its fundamental paradigm. First, let's return to the past when Java didn't exist.

You may also like:  Misunderstanding OO Programming

Historical Reference

Programming before Java