Sumerians Invented Numbers and the Writing System One of the earliest known civilizations was Sumer, in the Uru region of the Middle East, about five thousand years ago. The Sumerians soon dissolved into the Chaldeans, Jews and Babylonians, but not before developing a system of numbers and writing, which is the foundation of our system that we use today.
The First Software Programs. Many years after the Sumerians, the first computer was released: the Electronic Numerical Integrator and Computer (ENIAC) in 1946. Software programs for the early computers included everything: the hardware drivers, the data for the software, the business logic required to run the software - all these pieces were tightly integrated and mixed together in order for the program to work. In the beginning of my own career, I wrote programs like these, first in binary code, then in Assembly, and later, as software progressed, in programming languages such as FORTRAN, COBOL, C, and FORTH.
The First Programmer
A long time before the ENIAC, Ada Byron applied her uncommon talents of poetic imagination to science envisioned the Symbolic Medea that would become the modern computer, sparking the birth of the digital age.
A daughter of a famous poet, Lord Byron, Augusta Ada King, Countess of Lovelace, born Augusta Ada Byron on December 10, 1815, later came to be known simply as Ada Lovelace. Ada Byron - Lovelace is celebrated today as the world first computer programmer - the first person to marry the mathematical capabilities of computational machines with the poetic possibilities of symbolic logic and imagination.
Object-Oriented Paradigm (OOP) and Layered Architecture. The early software programmers had to write device drivers (programs that communicate with the computer hardware, telling the devices how to work properly).
The Layer Design Pattern made software looking like a cake with several layers.
---||| Applications |||----
--|| Data and Database ||--
-| Operating System Layer |-
-| With Device Drivers |-
Most of the programmers did not have to worry about Databases (DB) and Operating System (OS) Layers. Operating System and Database vendors took over these software layers, leaving the software developers to focus on the application layer, creating better-working, more complicated programs.
Was it clear so far? Highlight the text in question and Or
It took the industry several decades to transition to Layered Architecture.
Applications then split into a set of objects as recommended Object-Oriented Paradigm.
This way it is easier to express big ideas via smaller parts.
After many years of creating massive software packages, including monster applications, a serious problem arose: many pieces of software were repeated in thousands of applications, making maintenance extremely costly and time-consuming. Because every single piece of the software was tailor-made for a specific business, if there was ever a change in the business rules or services, Subject Matter Experts (SME) had to start a new project to rebuild the application.
Service Oriented Architecture (SOA) shifted development focus to business functions and related services, with the idea that applications must be designed as reusable connected services. This idea taught programmers to pay more attention to business specifics and build versatile pieces of software that could be used for many applications.
Knowledge-Driven Architecture*. The challenge, still, is the gap between the business and the programmer: business language is very different from XML, service terms, and programming languages. Knowledge-Driven Architecture is a new way of architecting systems based on business rules and scenarios. This step requires a new type of a developer - one who understands the semantics of business and can clearly express new ideas bridging the gap between the software, and its actual, practical use in the corporate or research worlds.
* Knowledge-Driven Architecture, Yefim (Jeff) Zhuk, US Patent, Streamlining development and driving applications with business rules & situation scenarios