Niklaus Wirth, Inventor of Pascal, Dies At 89 (twitter.com) 96
New submitter axlash writes: It has been reported on X that Niklaus Wirth, inventor and co-inventor of several languages including Pascal, Euler and Oberon, died on Jan 1, 2024. He was aged 89. "We lost a titan of programming languages, programming methodology, software engineering and hardware design," writes software engineer Bertrand Meyer
in a post on X. "Niklaus Wirth passed away on the first of January. We mourn a pioneer, colleague, mentor and friend."
Niklaus Wirth, born on February 15, 1934, in Switzerland, is a renowned computer scientist known for his significant contributions to the field of computer science and software engineering. He is best known for developing several programming languages, including ALGOL W, Pascal, and Modula-2, which have had a profound impact on the design and development of modern computer software. Wirth's work emphasized simplicity, clarity, and efficiency in programming languages, which greatly influenced subsequent language design and the development of structured programming techniques. His legacy also includes the development of the Oberon programming language and the design of the Oberon operating system. Wirth's dedication to elegant and efficient software design continues to inspire computer scientists and software engineers worldwide, making him a highly respected figure in the history of computing.
You can learn more about Wirth via A.M. Turing Award, Britannica, and the Computer History Museum.
Niklaus Wirth, born on February 15, 1934, in Switzerland, is a renowned computer scientist known for his significant contributions to the field of computer science and software engineering. He is best known for developing several programming languages, including ALGOL W, Pascal, and Modula-2, which have had a profound impact on the design and development of modern computer software. Wirth's work emphasized simplicity, clarity, and efficiency in programming languages, which greatly influenced subsequent language design and the development of structured programming techniques. His legacy also includes the development of the Oberon programming language and the design of the Oberon operating system. Wirth's dedication to elegant and efficient software design continues to inspire computer scientists and software engineers worldwide, making him a highly respected figure in the history of computing.
You can learn more about Wirth via A.M. Turing Award, Britannica, and the Computer History Museum.
Call Him By Name (Score:5, Insightful)
Niklaus.
Call him by value: enormous.
Re: (Score:3)
Re: Call Him By Name (Score:4, Interesting)
Yes and no.
The no: There are probably more bare metal hackers out there now than in the 60s because microcontrollers programmed in C and assembly are dirt cheap and damn near ubiquitous compared mainframes that filled a room.
The yes: they are dwarfed in number by people who write high level languages and don't have to know what a stack pointer is or how to implement (or even choose) an efficient sorting algorithm.
The world would look quite different without either group of people. Hard to say one approach won out over the other.
Re: (Score:2)
There are probably more bare metal hackers out there now than in the 60s because microcontrollers programmed in C and assembly are dirt cheap and damn near ubiquitous compared mainframes that filled a room.
That is true, but I don't know anyone who regularly programs in assembly. Even the smallest microcontrollers have enough RAM to just use C.
Re: (Score:2)
I think C succeeded for embedded programming partly because the popularity of Arduino making it super easy write a "sketch" and over time more boards adopted a similar approach. But Rust is also becoming popular for embedded programming, because it makes for safer code.
Re: (Score:2)
Pascal was not a high level language. It was compiled just like C either straight to native code, or to a virtualized p-code which was still a form of stack-based assembly language. It gained pointers, memory allocation, OO and all that stuff. And while it had pointers, it wasn't quite low level enough to be useful for systems programming. But it wasn't abstract enough to compete with the likes of true high level languages like Java. It didn't help that there were umpteen dialects and standardization came t
Re: (Score:3)
For a long time period, Pascal, especially UCSD Pascal, was the most used programming language on the planet.
Re:Call Him By Name (Score:5, Informative)
For a long time period, Pascal, especially UCSD Pascal, was the most used programming language on the planet.
The Apple Macintosh's native programming language was pascal for many years.
Turbo Pascal revolutionized programming the PC.
Re: (Score:3)
But Turbo Pascal wasn't really Pascal, was it?
Re: (Score:3)
But Turbo Pascal wasn't really Pascal, was it?
It compiled to native binary rather than the UCSD p-system VM, but the latter wasn't required. I think it was done to get the language on more platforms more quickly. Only the VM needed to be redone in native code on a new platform, not the compiler.
The p-system VM made the code too slow to be of practical value. Native code was fast enough that Turbo Pascal got some use in professional app development.
Source code differences were largely that it added stuff, in particular to support DOS.
It added suppo
Re: (Score:2)
That was kinda my point; it had to be a superset to do anything useful, because actual Pascal was crap.
Re:Call Him By Name (Score:4)
That was kinda my point; it had to be a superset to do anything useful, because actual Pascal was crap.
Pascal wasn't really meant for industry. If was really meant to teach structured programming to students. It was perfectly suitable for college course work in its standard form.
Re: (Score:1)
because actual Pascal was crap.
Then you obviously never did use Pascal.
Re: (Score:2)
And I recall writing a complete accounting system in Pascal MT+ (the Digital Research compiler) for CP/M machines.
Happy days -- dealing with the limitations of 8-bit processors that forced you to use dozens of overlays (dynamically loaded code) and hand-optimize certain routines to save a byte or two here and there.
Kids today don't know how good they've got it! :-)
Re: (Score:1)
The p-system VM made the code too slow to be of practical value.
That is not true. It was fast enough for business applications.
It added support for recursion. Every Pascal had recursion. Perhaps you mean "tail recursion optimization"?
Of course the big difference was that Turbo Pascal offered a complete IDE, so one got an editor and debugger in addition to a compiler.
UCSD also came with an IDE. Just do not remember if it had a debugger inlcuded. Would not wonder if it had, and I never notices (Talking about
Re: (Score:2)
The p-system VM made the code too slow to be of practical value. That is not true. It was fast enough for business applications.
Who found it too slow and migrated to other solutions. P-system is a footnote for a reason.
(Talking about Apple ][ UCSD).
The USSD Pascal I personally toyed with was also Apple II. At the school minicomputer our Pascal compiled to binary.
Re: (Score:1)
We used Pascal in university on Macs. I convinced my tutors that I could use Modula 2 instead.
Both compiled to real binaries of course.
Then we had Pascal on a Vax, don't remember the model.
On the Suns and DEC machines I did not program much. Only shell and perl scripts. Perl was new and fast, so everyone wanted to use it ...
Re:Call Him By Name (Score:4, Informative)
But Turbo Pascal wasn't really Pascal, was it?
Pascal is a language, Turbo Pascal is an IDE/compiler, different things. And while the Pascal in Turbo Pascal has some add-ons, you can very well write and compile standard Pascal with it.
Re: (Score:1)
It was Pascal.
Hence the name.
Re: (Score:2)
Wrote my A-Level project (a radioisotope expert system) in Turbo Pascal 3. It had genetics, which made for some wonderfully non-standard optimisations.
Re: (Score:2)
Wrote my A-Level project (a radioisotope expert system) in Turbo Pascal 3. It had genetics, which made for some wonderfully non-standard optimisations.
I used Turbo Prolog in a couple of AI classes, one was a "big project" class where we created an expert system.
:-)
Turbo Pascal, Turbo C, Turbo Prolog. What a collection. Too bad there was no Turbo FORTRAN.
Re: (Score:2)
true, but at this point, its at its...
End.
Re: (Score:2)
Niklaus.
Call him by value: enormous.
Are we talking about the inventor of Pascal or Christmas in Anglican countries?
Re: (Score:2)
This discussion is wirthless! :_)
Epitaph (Score:5, Funny)
begin
writeln('Goodbye, World!');
end.
Re: (Score:2)
program goodbye(input, output);
begin
writeln('Goodbye, World!');
end.
Re:Epitaph (Score:4, Informative)
Sloppy. Here's an improved version (it's not C):
Program Goodbye(input, output);
Begin
Writeln('Goodbye, World!');
End.
Re: (Score:2)
Re: (Score:2)
Pascal in general is case insensitive, not just some specific dialects.
For what it's Wirth (Score:2)
+[-->-[>>+>------.>>>+.>>..+++[.>]>>>+.
(I'm kidding, as I don't know it.)
Re: (Score:2)
It's been a long time but as I remember, a semicolon was not necessary on the statement just before the terminating "end" statement.
Re: (Score:2)
I, for one, refuse to write Pascal code in mostly lowercase.
BEGIN
WRITELN('Goodbye World);
END.
All reserved words and language-native functions MUST be uppercase.
Guy who hated pointers (Score:4, Insightful)
Oh you want a not predetermined length array? Sucks to be you.
Re: (Score:2)
Pascal was originally a language for teaching. But because it got very popular it started to get used for a lot more complex stuff which is why many Pascal compilers added better libraries and newer features, making it more suitable for systems programming even. Ie, DEC Pascal which I used for awhile, was every bit as useful as other languages for VMS.
Re: (Score:3)
Pascal does have pointers and dynamically allocated memory:
https://www.freepascal.org/doc... [freepascal.org]
https://www.freepascal.org/doc... [freepascal.org]
https://www.freepascal.org/doc... [freepascal.org]
https://www.freepascal.org/doc... [freepascal.org]
Re: (Score:2)
Re: (Score:1)
I reckon it was a later addition by borland/freepascal, but pointers, new and dispose were available even in Wirth's pascal.
Re: (Score:2)
The GCC. I hope it's permissive enough. Not sure if it supports Windows, though.
Re: (Score:2)
I used it in the 1990's. It is a garbage language. The compiler I used just transpiled it to C.
IMHO it is better to use languages that have been battle hardened and debugged for *decades* instead of some obscure Toy language based on "Theory" that has only been used by a handful of people.
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Care to elaborate? I always thought Pascal was one of the worst languages, and it should NEVER have been used as a teaching language; it's too hard for beginners and nowhere near powerful enough for experts. I was so annoyed they were using it in our CS classes, I used C for my assignments, instead.
Re: (Score:3)
Care to elaborate? I always thought Pascal was one of the worst languages, and it should NEVER have been used as a teaching language; it's too hard for beginners ...
I never noticed such a problem. I suspect your complaint is more along the lines of being different from what you are used to. A person new to programming doesn't have such an issue, its entirely new to them.
... and nowhere near powerful enough for experts.
By design. The point of pascal was to teach a structured programming mindset, not necessarily the language itself. The structured mindset, once developed, was to be used in any programming language going forward.
I was so annoyed they were using it in our CS classes, I used C for my assignments, instead.
Keep in mind that Pascal predates C. And C was not designed for teaching, it does not foste
Re: (Score:2)
I've done my fair share of programming in Pascal, so I'm not sure what you mean by "different from what you are used to".
Re: (Score:2)
I've done my fair share of programming in Pascal, so I'm not sure what you mean by "different from what you are used to".
Was all this Pascal programing before the CS classes? You had not learned C before Pascal?
Re: (Score:2)
C was not designed for teaching, it does not foster the structured mindset.
C was not designed for teaching, it's true, but does not foster the structured mind set is nonsense. That's a matter of style. Teach people to write C in a structured fashion, and they can write it in other ways later. Teach people to write Pascal instead, which they will never use again*, and then they still have to learn a useful language later.
* Yeah, there was Delphi. It came and went and now we're back to C and variants, predictably.
Re: (Score:2)
C was not designed for teaching, it does not foster the structured mindset.
C was not designed for teaching, it's true, but does not foster the structured mind set is nonsense. That's a matter of style.
C does not foster any particular style.
Teach people to write C in a structured fashion, and they can write it in other ways later.
The problem is structured programming would be harder to teach as the language would allow violations. Professors would have to correct these violations and students would have wasted time learning a prohibited implementation. Better to avoid the confusion and waste of time.
Different tools for different jobs. Want to learn structured programming, pascal. Want to learn expert systems, prolog. Sure any of this could be done in c, it is a universal assembly language, i
Re: (Score:3)
>I always thought Pascal was one of the worst languages :)
I guess you've never programmed in Cobal or Fortran. Pascal was a delight after those
Re: (Score:3)
I've never programmed in Cobol, but Fortran (77) kicked Pascal's ass. (I'll agree that Pascal is better than Fortran IV, or lower, but just barely.)
Re: (Score:2)
Fortran data types were implied by the identifier, unless you explicitly stated it. Fortran was fast and powerful, but very very easy to write bad software for because of quirks like that.
(However, it did lend itself to some superb irreligious memes!)
Re: (Score:2)
Fortran was incredibly difficult to read, for me anyway. Primarily because most programs Ive seen in it were in no stretch of the imagination "structured". Variables were passed to functions via common blocks, etc. Fortran is a language that naturally obfuscates itself.
Re: (Score:2)
Turbo Pascal was pretty much my first programming language (I played with logo before for a little bit, but I don't think that little bit counts).
I am not a programmer, I used Turbo Pascal (later Delphi) to program some simple stuff, like renaming files in a directory based on regex.
I think that the strict types and boundary checks are a good for learning - it avoids the mistakes that are simple to make, but confusing to figure out. Compared to C, for example3 - there is a separate type that means a single
Re: (Score:1)
Re: (Score:2)
The point of it as a teaching language is that it didn't let you cheat. Ie, you had to write a pure structured program, no gotos or early returns.
I proctored a self-taught intro to programming class using Pascal (UCSD). The people who had the most trouble with the class really did seem to be those with some prior programming experience in BASIC. They really hated the idea that you can to structure things, that variables had to be declared with a type (or even that they had to be declared at all).
As for ab
Re: (Score:2, Interesting)
That is what I wrote, I believe. How anybody could conclude I was blaming Wirth for Java is beyond me. I most certainly do not. I was making a comment on the state-of-the-art, which is in some areas (Java) thoroughly disappointing.
I do not have any beef with C though. C is a valid assembler replacement and decidedly not for everybody. It takes real skill and experience, but C does allow "simplicity, clarity, and efficiency" and does not stand in your way getting there. It does not help you getting there eit
Re: (Score:2)
How anybody could conclude I was blaming Wirth for Java is beyond me.
It's not all about you. I wanted to make it clear to other readers (if not you) that Java was not Wirth's.
The big picture in these threads are Wirth and his creations. Pascal and Java have some commonality with respect to compiling to a VM rather than native code. I believe Wirth was on board with the idea that this would help spread adoption of Pascal faster. Both languages were designed, in part, as teaching languages. Its not much of a leap to think there might be some relationship.
Re: (Score:1)
Well, then maybe make that clear directly in the first place. If it sounds like an attack on a statement, then it most likely is. Your AdHominem is also pretty much misplaced. I recommend going with an apology for _your_ unclear statement next time instead.
Incidentally, P-code is not a VM, it is a stack-machine, i.e. a simulated processor. The Java VM is a proper VM.
Also, that Java was supposedly designed as a teaching language is news to me. It seems to be exceptionally unsuitable for that. Probably just s
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Well, then maybe make that clear directly in the first place.
Funny, that was my point. In threads about Wirth and his creations, if you want to inject a non-Wirth creation mention it is unrelated and similarities are coincidental.
If it sounds like an attack on a statement, then it most likely is. Your AdHominem is also pretty much misplaced.
"I don't think Wirth is to blame for Java." is an AdHominem to you? LOL.
I recommend going with an apology for _your_ unclear statement next time instead.
My statement was quite clear. Your erroneous reading of an AdHominem into the statement is on yourself, not me.
Incidentally, P-code is not a VM, it is a stack-machine, i.e. a simulated processor.
"In computer programming, a p-code machine (portable code machine[1]) is a virtual machine designed to execute p-code (the assembly language or machine code of
Re: (Score:1)
Just three comments, "Not everything is about you" is the AdHominem, very clearly. Second, I was there to read the original press releases about Java and I taught it to a few 100 students back when. That language was never intended for teaching. Seems somebody managed to get history revised there. And third, anybody that confuses a p-code machine and a Java VM has no clue about either. Basically the only thing they have in common is that they do non-native execution.
Re: (Score:2)
Just three comments, "Not everything is about you" is the AdHominem, very clearly.
Not really. It is merely pointing out that there is a reader audience beyond yourself. At worst you could call it critical. A bit of fragility would be needed to go beyond that.
Second, I was there to read the original press releases about Java and I taught it to a few 100 students back when. That language was never intended for teaching. Seems somebody managed to get history revised there.
Or a college instructor was unaware of Sun senior managements goal to use colleges and universities as an environment to help popularize and evangelize java. Teaching students Java was at the core of this evangelism.
And third, anybody that confuses a p-code machine and a Java VM has no clue about either. Basically the only thing they have in common is that they do non-native execution.
Straw man. What was stated was that they are both virtual machines. Also UCSD Pascal and Java share a similar behavior,
Re:An then you have Java... (Score:4, Informative)
I often heard it stated that there was one way to do something in Pascal. The point gweihir may have been making is, in contrast to the obvious elegance of Pascal (and Ada), bricks and hammers, such as C and Java have won out in the end.
Different missions. Pascal was a teaching language. Teaching students how to program in a structured way. The structured programming mindset was the real goal, not the Pascal language itself. The structured mindset was to be taken to whatever language the student would find once they entered industry.
C was more of a practical alternative to assembly language. Hence it worried much less about forcing you to do the "right thing".
Java and Pascal in its p-system implementations are alike with respect to compiling to a virtual machine rather than native binary code, and performance suffering as a result.
Re: (Score:2)
Teaching programming with a tool the student will never use again is 50% wasted time. It makes more sense to teach the lesson you want to teach with a language people actually use for development for this reason.
Re: (Score:3)
Pascal is close enough to Ada that you can transfer skills, and if they'd been able to write a decent Ada compiler early on, that would have made a difference.
The other side is that Pascal teaches structured thinking. The syntactic sugar used to decorate that thinking is less important. People get too caught up in exact wording. That can be looked up. The logic is the hard part.
Having said all that, Pascal is sufficiently different from the major languages (C, C++, Rust) and perversions (Python, Java, Javas
Re: (Score:2)
Teaching programming with a tool the student will never use again is 50% wasted time. It makes more sense to teach the lesson you want to teach with a language people actually use for development for this reason.
The lesson to be taught, structured programming, needs a lot of hands on experience. A language that forces structured programming is highly desirable to achieve this goal. And as others have pointed out, transitioning from pascal to c is a minor thing.
Re: (Score:2)
Good memories (Score:1)
I cut my teeth with Turbo Pascal. So many good memories, thanks Niklaus, your contributions shaped me in so many ways.
This saddens me (Score:2)
Re: (Score:2)
My very first programming langauage in my IT career was Turbo Pascal. So have a sort of attachment to it. Hail Borland and hail Nicklaus Wirth.
Re: (Score:2)
That's exactly why I hated it.
C is for when you want to write programs.
Pascal is what you use when you'd rather write a novel.
Re: (Score:3)
> Pascal is what you use when you'd rather write a novel.
No, that would be COBOL.
Re: (Score:3)
Cobol is what you use when you want to write really boring novels.
Re: (Score:2)
I learned BASIC and BBC BASIC (a dialect with procedures!) on my own, Pascal through a university external course (which I then used in my A Level project), ADA and Cobol at university, and moved onto C with my first job.
I'm now in recovery.
Re: (Score:2)
Basic, Pascal, Cobol and C were the languages I learned, but, same as you, I really liked Pascal the most. I found it more elegant than C and there wasn't much C could do that Pascal couldn't.
Modula-2 was my first university course language (Score:2)
It was so rigid and verbose that I learned to hate it with a passion and all other Pascal languages. Probably not helped because we worked on a Mac Classics where I had to swap disks to save a copy of the file and then swap the disk again to the Modula system 2 disk to compile it, and then get a bunch of errors and have to correct them, swap disks to save, swap disks to compile etc. So the slightest deviance from what this ornate language wanted was punished by disk swapping. Felt like throwing the Mac out
Re: (Score:2)
You must love obfuscated perl contests then.
War story (Score:3)
Our task was to write a program to brute force solve the problem, and we were to write it in Pascal. At the time, there was no textbook or anyone to teach us how to use the language. All we had was a single sheet of paper with the recursive definitions that Niklaus Wirth used to define the language. That was it. I had never seen anything before like it. Prior to this class, I'd seen assembly language and FORTRAN.
But the best part was that we had to use a keypunch machine to write everything. And you couldn't just say:
A = B
No... It was
A ;= B
Where the character ;= didn't exist on the keyboard, so you had to multi-punch it in. You do this by holding down the multi-punch key and then keying the exact holes to be punched. It was too easy to screw up and the only check you got for a typing error was when your job was run and it failed. Running a program was submitting your card deck and getting it returned, wrapped in the green/white fan fold printout.
You don't know the meaning of the word "suffering" until you've dropped your deck and had to pick up the cards and get them back in the right order.
Re: (Score:2)
You're among the few that get this [youtube.com] joke.
Re: (Score:2)
Couldn't you have put the card deck through a card reader attached to a teleprinter to get a listing that you could visually check before submitting it and paying for the computer time to compile and run it? Also, the assignment operator in Pascal is := (not ;=) because it uses = as the equality operator. It's always two characters, not a single special character. C uses = for assignment and == for equality - most languages need you to be explicit about the difference, and it's often confusing for beginn
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
The second edition of the Pascal User Manual and Report, copyright 1974, is on my lap. I wrote my first code as a college junior in Assistant Professor Niklaus Wirth's class, Introduction to Algorithmic Processes, in 1965. It was an Algol-60 maze-solving program; I typed each line on an IBM 029 keypunch into one 80-column card. That course was the most fun I had in a college class. I was hooked for life.
When I was a wee lad (Score:1)
Hardware design - Verilog? (Score:2)
In his honor... (Score:2)
He once got me a promotion, maybe. (Score:2)
I enjoyed Pascal (Score:2)
Writeln('Goodbye, World.')
End
Re: (Score:2)
Obligatory obituary, oh Oberon (Score:2)
program tribute; /. doesn't support leading spaces or in <code> blocks *)
begin
(* * *) writeln('Godspeed, father');
end.
(* *
Run it online here [onlinegdb.com]