PART 5: Object Trek: The Next Generation of Code"A Brief History of Code", by Rudedog Hawkins
PART 5: Object Trek: The Next Generation of Code
Computer languages underwent an evolution in how they were implemented in various computer platforms. These implementations led to a separation of the developer’s source code from any dependency with the actual hardware that it will run on. This process of separating two or more tightly coupled entities from one another is known as Abstraction. Advances in Operating Systems, memory space and CPU performance made this evolution progress by leaps and bounds.
Those who wrote Operating System software were becoming regarded as the true gurus of the software industry. System Specialists spent long days and nights hacking away at keyboards writing code that was to be used by those who they perceived to have lesser skills, the people who wrote applications. A sibling rivalry was developing between Operating Systems specialists and User Applications Specialists. A race began to see who could outdo the other.
At the time, not many involved realized the true nature of the race that had begun, and where it would eventually lead. The most talented of these insomniacs were affectionately named hackers. Hackers were the innovators and visionaries at the cutting edge of software development. The founders of Microsoft and Apple Computer fit that definition of hackers.
Necessity is the mother invention. Each side in the rivalry needed the other but had no wish to admit their mutual dependence. No one needed an expensive and fancy OS if there were no fancy and expensive programs to realize the power of the OS. No one could write a fancy and expensive program if there were no fancy and expensive OS on which to host it. Each side needed the other more than they knew.
However, some of the hackers did know and realize the true nature of the symbiotic relationship that was growing. They realized that if the hardware could be abstracted, then so could the software. In order for the software to be abstracted, then the rivaling sides would need to work together and not as adversaries because if one changed, then so would the other need to change to maintain the symbiosis.
The software was about to make a quantum leap in complexity. The Procedure Driven code of the day was hard to write. When computers and code were first invented in the 1950s, what is thought of now as Procedure Driven code is what was first created. Procedure Driven code is what most of beginners are first introduced to when they begin programming. The now classic “Hello World” program that introduces users to Visual Studio is basically a procedure driven program. Just like a cooking recipe, it has a beginning and an ending. The code is executed beginning with the first line and continues until the final line.
While there may be branching or looping instructions within the source code, the execution basically went from start to finish. You even could have calls to subroutines, but a subroutine always returns to its’ calling point. The code still began at the first line, and continued execution until it reached the final line. Subroutines were also known as Procedures in some computer languages, which is what gives the programming style its’ name.
There is nothing wrong with writing procedural code. It is a time tested and traditional way of writing code. When it is well written, it is quite easy to understand. Most of the popular databases today are most efficient when they are controlled by or interact with procedural code. I feel that SQL, Structured Query Language, which is used by many databases, is a textbook example of procedure driven programming.
Many hackers of that time period wanted to expand their resumes to get a leg up on their rivals. So they started looking to learn new languages and researched the exotic. Many took up enthusiastic interests in something that was “new” at the time, Artificial Intelligence. It was not anything new. It wasn’t any newer than the ages old dream by mankind to be able to fly. It was just new to them.
So the rivals studied, and they argued who was better, and they existed in their mutual dependence no matter how much they may have disliked each other. Some wise folks from both sides began to explore the AI topic. They even explored it together in some cases. And they discovered some things.