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