5 Generations of Software and the history of softwares
Table of Contents
Software is an important part of the computer and any system without software is like a bank without money. In our previous post, we listed out the generation of computers but we did not really talk about the history of software hence the need to publish this article.
It is important that we give the meaning of some keywords before we continue with this article so that it would be easier for our readers to understand this post.
Software is a sequence of instructions that a computer follows to perform a given instruction and it can also be defined as a collection of instructions and data that tells the computer how to work. There are a lot of softwares but only those that possess the characteristics below can be called good softwares:
- Accuracy and Usefulness
- Usability
- Reliability
- Efficiency
- Security
- Portability
- Maintainability
- Scalability
- Robustness
- Interoperability
- Reusability
Finally, it is important to note that there are two types of softwares namely system software and application software and we wrote an article on that so ensure that you read the full article before you continue with this article.
Joseph Jacquard did the earliest form of programming in 1801 when he designed a mechanical loom that used pasteboards with punched cards with each card corresponding to one row of the design. Before one could use the loom, knowledge of weaving was required and the technology made weaving easier and faster.
Lady Ada Lovelace is known as the mother of programming and a programming language called ADA has been named after her. Lady Ada wrote a program in 1843 for the Charles Babbage analytical engine and you can read more about the engine in our previous post.
George Boole who was a British mathematician in 1847 proved the relationship between mathematics and logic with his algebra of logic otherwise known as Boolean algebra or binary logic.
John Von Neumann a Hungarian-American mathematician, physicist, and computer engineer that developed two important concepts that introduced two important concepts that affected the path of computer software and one of them was the shared program technique and this technique believes that computer hardware should be simple and does not need to be hand-wired for each program.
Grace Hopper an American Computer Scientist wrote the first compiler, A-O programming language and she was one of the first programmers of Harvard Mark I furthermore, she invented one of the first linkers.
GENERATION OF SOFTWARES
The generation of the hardware components is different from that of the software component and there are five (5) generations of software’s and in this article, we would outline them below:
First Generation: During the early days of computers, the first computers were programmed by changing the wires and set tens of dials and switches. The programming was done by humans and for the programming to be free from error, the programmer must know how to operate the computer hardware properly, and once there is a little mistake, it might be hard to spot.
Second Generation: In the second generation, the assembler was introduced and this generation made use of symbols and abbreviations.
An assembler is a program that converts assembly language to machine language but the downside of the second generation of software’s was that the assembler was unique to only one system hence the program written for one system could not work on another system.
Third Generation: The third generation saw the introduction of natural languages and compilers which we described in one of our articles so check it out once you are done reading this one.
The third generation saw the introduction of programming languages like FORTRAN, COBOL (Common Business Oriented Language), ALGOL (Algorithmic Language), RPG (Report Program Generator), BASIC (Beginners All Symbolic Instruction Code), and JCL (Job Control Language).
Fourth Generation: The first fourth-generation software’s were Ramis and focus which were reporting and query tools that allowed end-users to make their own inquiries of corporate information, usually in the IBM mainframe environment.
FOCUS was later extended to personal computers and some common types of fourth-generation software’s include: Database query languages (SQL, Natural), Report Generators (Report Builders & Oracle Reports), Rapid Application Development Tools (Power Builders & Oracle Forms), Table Driven Codeless Programming(eDeveloper), GUI/Web development tools (Cold Fusion).
Fifth Generation: Presently this is the most current generation of software’s and these softwares are declarative languages where a programmer state the problem and the language brings out the solution. Examples of fifth-generation computers include PROLOG (Programming In Logic), MERCURY, and LISP (List Processing).
The world of computing changes with time and this means that as time goes on, there would be modifications to software’s and this would lead to an increase in the number of generations so ensure that you stay updated by subscribing to our mailing list.