RIP: Niklaus Wirth, 89
Jan. 4th, 2024 09:38 amOutside of the somewhat more hardcore programming geeks, his name will be almost completely unknown. But his impact on computer programming will long outlive him.
He invented Pascal, which begat Delphi. He was involved in the development of Algol. Basically he was one of the seminal forces in developing computer programming languages throughout his career, which was a long one. Borland's Turbo Pascal was a truly revolutionary release back in the Dos days.
Interestingly, he did not intend Pascal as an actual production programming language. He wanted it used as a teaching tool to introduce people to structured programming, which it was very good for.
He intended Oberon language as a programming tool.
I took Pascal twice. The first time, it just didn't click. I probably wasn't quite ready for it, and I don't think the book was that good. But the second time, everything fell into place: great teacher, good book, and more experience under my proverbial belt. And I fell in love with it.
One thing that I thought was absolutely fantastic about Pascal was the assignment operator and the equality operator. In many, many languages, you assign a value to a variable by using the equals symbol, thusly:
A = 1
Commonly described as A equals one. Seems clear, right?
In Pascal, you use the assignment operator:
A := 1
Described as A is assigned the value of one. A little more unambiguous.
In languages that use the equals symbol, when you want to evaluate an expression, you have a problem. In mathematics, you just use the equals symbol to test for equality. But if you're using that symbol as an assignment operator, you're running a risk of confusing the program compiler or messing up the logic of your program.
If you say
if A = 9 then (do stuff)
What are you saying? Do stuff if A = 9, or are you assigning the value of 9 to A, which is a true statement? Many languages started using == to test for equality. Thus you get
if A == 9 then (do stuff)
In Pascal, since you have an assignment operator in the := syntax, you can say
if A = 9 then (do stuff) and it's unambiguous!
I always thought that was syntactically brilliant, and always gave Mr. Wirth great kudos for it.
https://developers.slashdot.org/story/24/01/04/0126247/niklaus-wirth-inventor-of-pascal-dies-at-89
He invented Pascal, which begat Delphi. He was involved in the development of Algol. Basically he was one of the seminal forces in developing computer programming languages throughout his career, which was a long one. Borland's Turbo Pascal was a truly revolutionary release back in the Dos days.
Interestingly, he did not intend Pascal as an actual production programming language. He wanted it used as a teaching tool to introduce people to structured programming, which it was very good for.
He intended Oberon language as a programming tool.
I took Pascal twice. The first time, it just didn't click. I probably wasn't quite ready for it, and I don't think the book was that good. But the second time, everything fell into place: great teacher, good book, and more experience under my proverbial belt. And I fell in love with it.
One thing that I thought was absolutely fantastic about Pascal was the assignment operator and the equality operator. In many, many languages, you assign a value to a variable by using the equals symbol, thusly:
A = 1
Commonly described as A equals one. Seems clear, right?
In Pascal, you use the assignment operator:
A := 1
Described as A is assigned the value of one. A little more unambiguous.
In languages that use the equals symbol, when you want to evaluate an expression, you have a problem. In mathematics, you just use the equals symbol to test for equality. But if you're using that symbol as an assignment operator, you're running a risk of confusing the program compiler or messing up the logic of your program.
If you say
if A = 9 then (do stuff)
What are you saying? Do stuff if A = 9, or are you assigning the value of 9 to A, which is a true statement? Many languages started using == to test for equality. Thus you get
if A == 9 then (do stuff)
In Pascal, since you have an assignment operator in the := syntax, you can say
if A = 9 then (do stuff) and it's unambiguous!
I always thought that was syntactically brilliant, and always gave Mr. Wirth great kudos for it.
https://developers.slashdot.org/story/24/01/04/0126247/niklaus-wirth-inventor-of-pascal-dies-at-89
no subject
Date: 2024-01-04 05:54 pm (UTC)My first programming language was BASIC on a Timex Sinclair 1000. I tried to do modular programming on that, so my code was full of GOSUBS.
The two things I really appreciated about Pascal were Procedures and Strong Data Typing.
I wrote some sick stuff in Turbo Pascal, including an API to control the SN76477 sound chip that the PCJr had. It was a blast!
no subject
Date: 2024-01-04 07:58 pm (UTC)As it happens, just last week or so I was doing some research on freeware Pascal and pulled up his bio on Wikipedia and found that he was indeed, at that time, still alive. I was big into modular programming from early on and am a strong advocate for mandatory data typing. It's my biggest gripe against Python. My first government job I needed to rewrite a database package for our budget department. It was in dBase III. I printed out the original system - on fanfold paper - it was around '89 or so. It was over 1" thick which probably wasn't nearly as many lines of code as I thought it was, but the remarkable thing was that it was ONE GIGANTIC LOOP! It was completely unreadable. I redid the whole thing using modular code in Foxbase and it sang! I got a commendation from the head of the Finance department for it. It was multi-user, supported record locking, and had an audit log. Pretty good for the late '80s!
no subject
Date: 2024-01-04 06:00 pm (UTC)The first programming language I learned was BASIC in my junior year of high school. We learned it on TRS80 Model III computers with 4k ram and cassette drives. Over Christmas break, they all got upgraded to 16k of ram and floppy drives. My senior year of high school I learned Fortran via dumb terminals connected to the school district's PDP-11.
In college, they started us out with 2 semesters of Pascal. The first one was the first year that students used giant floppies (that we had to check out and in) instead of punch cards. The second semester was done on one of the university's mini computers. I always kinda liked Pascal. I did think it was better than BASIC for learning.
After that it was off to assembly language, which I didn't much like at all.
no subject
Date: 2024-01-04 08:02 pm (UTC)I'm certain Basic was my first, followed in no particular order by Cobol, Fortran, some RPG, Pascal, then into some database languages like dBase III. I've dabbled in some others like Forth. I tried IBM Assembler, and man did that make my head hurt! I don't know if I ever made anything work in that language! I barely avoided punch cards when I started taking college classes in programming. They still had the equipment for previous classes to finish up. At one time I could hold up an 80-column card and read it, but that skill has long since evaporated.
no subject
Date: 2024-01-05 06:33 am (UTC)no subject
Date: 2024-01-06 08:33 pm (UTC)no subject
Date: 2024-01-06 08:41 pm (UTC)It was an elegant language, IMO, and great for drilling in the concepts of modular programming. Pascal, especially when UCSD released their universal compiler and their p-code runtime system running on pretty much any CPU, plus Borland's Turbo Pascal product, did a great job of popularizing it back in the day.
no subject
Date: 2024-01-07 01:12 am (UTC)no subject
Date: 2024-01-07 02:11 am (UTC)dBase III was one of the de facto database systems for the dos days. I wrote some pretty amazing stuff in it. Foxbase was interesting: they copied dBase and made it tremendously faster, mainly through a pseudo-compiler and greatly improved indexing! The compilation was invisible: the first time that you ran a module, it was invisibly compiled in the background then swapped into place on-going. And the speed was simply insane! The funniest thing about Foxbase was that they even copied dBase III's BUGS! People had written work-arounds for the bugs, and Fox didn't want to break those! Unfortunately Ashton-Tate, the dBase people, did not handle the switch to the world of Windows well, and then Access and affordable SQL came along, and AT faded into the sunset. But it was a great introduction to me getting my feet wet into the world of database and served me well to springboard me into truly relational database and SQL.