Where did the 4th and 5th generation programming languages GO? - Part 1 or 3
Mike Rozlog
Building startup operations to mature companies | Focused on commercial software | Advanced algorithms and AI
Back in the 80’s the world of technology was the new frontier. I remember the wonderment as I programmed my Timex Sinclair 1000 with 2k of RAM and 2k of ROM. A computer, for the regular people like my mother, was a mysterious box that she always claimed would be a toy, but was flabbergasted when I had her run a program that asked her a series of questions and returned with Hello Margaret!
Now, many years later I finally explained to my mother what I had done: it was a simple program of print to screen statements that had her stare at the TV (hooked up with an RF-Modulator) for a Retina scan, put her fingers on the TV for fingerprint analysis and a bunch of other ones to finally return (hard coded of course) “Hello X.” Yes, I ran this program on my friends, my family, and people I just met and it was amazing to watch them follow the instructions to be amazed at the end that the computer knew them.
Of course, I used the embedded BASIC programming language to achieve my goals, but then I started to really dig deeper into the program and soon enough the 2k of ram and 2k of ROM was just not enough, so I needed to upgrade to a Commodore 64 and that is where I learned new commands called Poke and Peek and the fact that you could manipulate the computer to do great things very fast with machine code. As I continued to understand the computer, went to college, purchased an Amiga 1000, 2000, 3000 and of course multiple Wintel PCs, there was the concept that programming languages would evolve past simple instructions and allow real work to be done. Heck, in the future there would be code generators that would generate the code for me… all I would need to do was put in some constraints and boom my program would be done!
Back then it was going to be CASE (Computer-Aided Software Engineering) that would save the world. Of course, it did not per-say, although CASE kind of made its way back in the late 90’s, but I digress. In computer science, there are 5 generations of programming languages what naturally occur as more programs and solutions are created.
When I was in college in the mid-80s, there was going to be 5 generations of computer languages.
Generation 1: was machine code, ‘0x00000000’ which some users still program in, very slow but it is the fastest you can get. Here is a simple machine code for the Hello World program. All it does is print “Hello World”. This machine code is specific to the particular hardware being used to run the program.
Generation 2: was all about assembly language, which added natural language commands but is still considered low-level because it is machine/hardware specific.
Generation 3: was a HUGE improvement over the machine and assembly code. You could say real words to tell the computer what to do and it was not machine specific.
The code is COBOL and is fairly easy to read. Don’t worry about the Divisions, they are standard, the real work is in the main-logic section.
Notice you tell the computer what to do with real language…
Display “Hello World” and its location on the screen.
Much easier!
Generation 4: always think of 4GL’s as less code in many cases, “more” natural language and even a little specialized focus. Many 4GL’s are focused on specific areas like Data, Reports, or GUI generation.
Generation 5: the concept that the computer will figure out the Algorithms and the programmer will give Constraints and programs will be written by the machine.
So, there you have it, examples of all 5 generations of language for computers. Here is the ironic twist, all these languages, except for Machine code were conceived in the late 1950’s and 60’s. Assembler 1952 called SOAP (Symbolic Optimal Assembly Program), Lisp (this fifth generation language) 1958, COBOL 1959, ALGOL (ALGOrithmic Language - the father of most 3rd generation languages) C, Simula, B, Pascal, and Java was 1960.
Even the “new” languages of today are not as young as what you think, for instance, JavaScript was created in 1996, 21 years ago. So, I will ask the question that I always ask, there is no better way? We really can’t come up with a “killer” language like we did back in the 20th Century?
In part 2 we will explore what it means to be a 4/5 generation language.
You might want to check out Xojo. It's a 4th generation language that provides and IDE and cross-platform framework so you can target macOS, Windows, Linux, the web, iOS and raspberry Pi all from one tool/language. https://www.xojo.com
Senior Software Developer at US Trotting Association
7 年Interested in where you're going with this Mike. Still waiting for the dBase version of Hyperwire.