Pascal inventor Niklaus Wirth
January 4, 2024 7:13 PM   Subscribe

The hugely influential Swiss computer scientist Niklaus Wirth (pronounced "Veert"), the designer of Pascal and eight other programming languages and the winner of the prestigious Turing Award in 1984, has died at the age of 89.

A long-time evangelist for lean software, he popularized the idea that became known as Wirth's Law, which states "In spite of great leaps forward, hardware is becoming faster more slowly than software is becoming slower." There are plenty more links in the excellent Register obituary (the first link), including video interviews in English and in German with English subtitles.
posted by Umami Dearest (63 comments total) 22 users marked this as a favorite
 
.
posted by Tell Me No Lies at 7:19 PM on January 4


Hugely influential computer scientist. I worked with a Modula 2 system in my early days. Clear, concise writing, clear concise code.

.
posted by blob at 7:27 PM on January 4 [1 favorite]


;
posted by Foosnark at 7:38 PM on January 4 [7 favorites]


The hugely influential Swiss computer scientist Niklaus Wirth (pronounced "Veert")..
Is reported to have quipped that in Europe he was called by name (i.e. "Veert") while in America he was called by value ("Worth").

[for the non-programmers wandering into this thread: he was alluding to two different approaches to passing information around in computer programs: "by reference" and "by value"]
posted by Nerd of the North at 7:38 PM on January 4 [23 favorites]


.
posted by interogative mood at 7:39 PM on January 4


:=
posted by sammyo at 7:47 PM on January 4 [8 favorites]


When my university first ported Pascal to their mainframe in the late 70s, i was intrigued to learn that most of the Pascal compiler was itself written in Pascal, and that all you needed to do to get it running was port the bytecode interpreter for the virtual machine Pascal generated code for.

I don't know if Wirth was the first to use this technique, but Java certainly ran with the idea 15 years later.
posted by CheeseDigestsAll at 7:55 PM on January 4


I wasted the front half of the 80s trying to program in stupid MS-flavor BASIC when I should have gone straight to Apple Pascal. My intro to real "Computer Science" (more like just programming skillz) as an undergrad was with Pascal in '85 and I took to it a lot better than the LISP stuff we got in the follow-on classes.

Interesting how the Macintosh team chose Pascal for its system programming interfaces; the person responsible for the File Manager sure liked the parameter block approach of API design, LOL.

Also interesting how Microsoft also decided to use Pascal for its Windows API design. Not sure if it was just taking the calling convention or a more involved attempt at copying the Mac.

Anyhoo, I certainly owe Wirth a lot!
posted by torokunai at 8:18 PM on January 4 [2 favorites]


end.
posted by ChurchHatesTucker at 8:44 PM on January 4 [7 favorites]


.
posted by Canageek at 9:01 PM on January 4


Fortran, Cobol, Assembler worked all great. Pascal was short-lived. Sad to see someone who knew how computers worked passed away.
posted by baegucb at 9:05 PM on January 4


Pascal was the first "grown up" language I was taught after Basic, and I always felt it deserved a bigger market. Borland tried to take Pascal to the Windows big leagues with Delphi, but it never took. Thank you Wirth for at least trying to save us from C++ :)
posted by Popular Ethics at 9:15 PM on January 4 [5 favorites]


Same with me! I learned the various flavors of basics, assembler and machine codes with my 99 4/A and Apple IIe, but Turbo Pascal was the first "real" language I engaged with and then onto C, Lisp, etc, etc....
posted by drewbage1847 at 9:20 PM on January 4


Was formally taught BASIC and Pascal in high school. Solid foundational programming.

Indeed, end;
posted by JoeXIII007 at 9:27 PM on January 4


.
posted by evilDoug at 9:42 PM on January 4


.
posted by genehack at 9:58 PM on January 4


for the non-programmers wandering into this thread: he was alluding to two different approaches to passing information around in computer programs: "by reference" and "by value"

“call by name” is actually yet another distinct strategy for passing parameters - it’s just pretty rare now
posted by atoxyl at 10:42 PM on January 4 [9 favorites]


.
posted by misteraitch at 11:26 PM on January 4


.
posted by infini at 11:58 PM on January 4


.
posted by tychotesla at 1:04 AM on January 5


For a long time, I often typed "begin" when I had intended to type "being".
posted by the Real Dan at 1:45 AM on January 5 [2 favorites]


.
posted by trip and a half at 2:25 AM on January 5


Did a ton of my undergrad in Pascal. Legend.
posted by whatevernot at 2:44 AM on January 5


He wrote Pascal as a teaching language, and I have many lovely memories of writing Pascal - some far too recent.

His algorithm beat an entire year of undergrads (ncluding me) in solving the 8-queens problem by about an order of magnitude.

His legacy is still going: The guy who wrote Turbo Pascal now works on C# and Typescript.

END.
posted by flamewise at 3:49 AM on January 5 [2 favorites]


Did pascal for two years in highschool (87 and 88 I think). Because someone may be tickled by this: on Icon and Icon2 machines in an Ontario highschool. I remember liking it well enough and finding it way easier than the Basic I had fiddled with prior. Then I went off to UW for engineering and "learned" fortran, and basically never programmed again.
posted by hearthpig at 4:03 AM on January 5 [1 favorite]


Borland tried to take Pascal to the Windows big leagues with Delphi, but it never took.

Not dead yet - surprisingly, Delphi ranked among the top 20 most popular languages in 2023, ahead of Rust, Ruby and R.
posted by Umami Dearest at 4:09 AM on January 5 [6 favorites]


.

My first job as a coder was writing Borland Pascal for a taxi software firm, back in the 90s, after learning both Pascal and Modula-2 at Uni. I'll pour one out for NW tonight.
posted by faceplantingcheetah at 5:02 AM on January 5 [1 favorite]


Is reported to have quipped that in Europe he was called by name (i.e. "Veert") while in America he was called by value ("Worth").

While I’m sure there have been variations, The Register article quotes it as a joke by van Wijngaarden when introducing Wirth at a 1965 IFIP congress.
Whereas Europeans generally pronounce his name the right way ('Nick-louse Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say that Europeans call him by name, but Americans call him by value.
posted by zamboni at 5:03 AM on January 5 [3 favorites]


[for the non-programmers wandering into this thread: he was alluding to two different approaches to passing information around in computer programs: "by reference" and "by value"]
"By name" is actually different from both of those.
posted by kenko at 5:07 AM on January 5 [1 favorite]


“call by name” is actually yet another distinct strategy for passing parameters - it’s just pretty rare now
The name of the song is called 'Haddocks' Eyes'."
"Oh, that's the name of the song, is it?" Alice said, trying to feel interested.
"No, you don't understand," the Knight said, looking a little vexed.
"That's what the name is called. The name really is 'The Aged Aged Man'."
"Then I ought to have said 'That's what the song is called'?" Alice corrected herself.
"No, you oughtn't: that's quite another thing! The song is called 'Ways And Means': but that's only what it's called, you know!"
"Well, what is the song, then?" said Alice, who was by this time completely bewildered.
"I was coming to that," the Knight said. "The song really is 'A-sitting On A Gate': and the tune's my own invention."
.
posted by jedicus at 5:53 AM on January 5 [5 favorites]


The AP computer science test in my day was oriented around Pascal, and I learned it in a summer nerd camp in high school. The next fall my math teacher had a good laugh at finding ":=" handwritten in random spots in my homework.

Pascal was mocked as a "toy language" for nudging you away from all-too-clever pointer tricks that are common in C. Since some of those tricks are needed to write the close-to-metal parts of an OS kernel, the Unix community rallied around C. Now we have Ada and Rust that embraced the same safeguards and their use being mandated rather than memory/thread-unsafe languages. Glad to see he lived long enough to see that he won that debate.

:=
posted by ocschwar at 6:17 AM on January 5 [7 favorites]


.
posted by crocomancer at 6:20 AM on January 5


There were pointers in (at least) Turbo Pascal as well, I remember trying to write a double-linked list in school, and actually succeeding. I wrote the first program I was able to sell as well in Turbo Pascal. Still programming all these years later.
posted by Harald74 at 6:26 AM on January 5 [1 favorite]


Some of my fondest memories of high school come from AP CompSci, wrestling with TurboPascal and figuring out stuff before our teacher did. Mrs. Van Hise was a great teacher, and not afraid to assign us programming work that she didn't quite know how to do herself. As a teacher now myself, I can only imagine her philosophy was something like "I'll know the students are right if the program works."

I remember having to write a program that either parsed reverse Polish notation equations or transformed standard equations into reverse Polish notation. Luckily, I was the kind of nerd that had an HP calculator, so I was the only student in the class familiar with reverse Polish notation to begin with. In some ways, I feel like that class was the still the most fun I've had learning and figuring out how to do things. I do sometimes wonder if that's an indication I should have remained a computer science major in college.
posted by mollweide at 6:28 AM on January 5 [2 favorites]


Another old Pascal programmer here. I eventually came to hate it as a "bondage and discipline language" and found my true metier as a C programmer. But without Wirth I might never have gotten there.
posted by Aardvark Cheeselog at 6:42 AM on January 5 [1 favorite]


I always liked the Oberon operating system (and the similar Plan 9 / Acme). It's weird that none of that crazy TUI black magic ever made its way to the unix command line.
posted by jabah at 6:43 AM on January 5


.
posted by silentbicycle at 6:51 AM on January 5


Wirth designed Pascal at a time when programming languages like PL/1 and Algol-68 were in vogue in computer science circles. These were languages that were so complicated that people were finding it impossible to write compilers to implement the languages as specified.

Wirth basically through out everything in those languages that weren't needed, and ended up with a language that was simple, elegant, and easy to implement and understand.

Time and time again, the real breakthroughs in computer science come from removing complexity, rather adding it. You see it in RISC vs CISC, Unix vs Multics, TCP/IP vs OSI, etc.
posted by 1970s Antihero at 7:03 AM on January 5 [5 favorites]


.
posted by Prophetess of Tech at 7:22 AM on January 5


Did a ton of my undergrad in Pascal. Legend.

I took the very first Computer Science AP ever offered in 1984 -- in Pascal. (Old man shakes fist at object oriented cloud.)

.
posted by The Bellman at 7:34 AM on January 5 [3 favorites]


Yeah, I made a living for 15 years writing in Delphi. It was the best. And does still exist.

.
posted by Windopaene at 7:39 AM on January 5 [5 favorites]


.
posted by jim in austin at 8:19 AM on January 5


.
posted by pmb at 8:21 AM on January 5


.
posted by adekllny at 8:28 AM on January 5


He tried to save us from the chaos of C preprocessors, flat namespaces, and multi-pass compilers, but we refused to listen.

.
posted by credulous at 8:47 AM on January 5 [7 favorites]


Back in 1980, I got hired by Apple to setup and test UCSD Pascal on the Apple ///. Meanwhile, I wrote the ASM86 manual for Intel on an Apple II using the UCSD Pascal editor, because it supported upper and lower case, in a weird way. Later on, Apple was planning on releasing two new peripherals that required apps. I and a coworker were anointed to write them using the MacApp framework on the Macintosh Programmer Workshop, which had Object Pascal. My background was primarily assembly language and Intel’s PL/M language. Apple needed to see if someone could actually develop object oriented apps on MPW which they were then selling. It took me a month of experimenting, reading, studying, prototyping to “get” object oriented programming. Suddenly, one day, something clicked, and I got it. A manager had recommended Wirth’s book Algorithms + Data Structures = Programs (excellent) and his Pascal manuals. OOP and Pascal became my language. It’s been years since then, but if there was a center for my programming it was Wirth.

.
posted by njohnson23 at 9:33 AM on January 5 [8 favorites]


Pascal was the first language I learned (from the delightfully-named Oh! Pascal!) after messing around with BASIC as a kid, and it felt like a step into a world where things could be complex and structured without being overwhelming. I still think it doesn't deserve the hate it gets. Pascal was and still is a good language.

.
posted by wanderingmind at 10:42 AM on January 5 [3 favorites]


.
posted by Mitheral at 11:06 AM on January 5


I've been recommending his Compiler Construction book to people for years. It's a fairly small book, easy to follow, and goes through the steps to set up a compiler and opcode virtual machine ("RISC architecture emulator") for a dialect of Pascal (Oberon) while other textbooks are still mired in automata theory. That stuff has its place, but it's so helpful to have a system working end to end that you can understand and play around with. His writing is full of clear, concise mentoring like that.
posted by silentbicycle at 11:31 AM on January 5 [2 favorites]


I was taught Pascal in a lunchtime course shortly after I started my first proper academic job. But I was too busy teaching to have a project to which I could apply my new toolbox. When I next needed to process some data, I'd forgotten Pascal and wheeled out and polished up my Fortran. Same with being taught PL/1 and C: use it soon or lose it. Hats off to Dr Wirth.
posted by BobTheScientist at 11:34 AM on January 5


Pascal was one of my first languages; it seemed so much nicer than the various BASIC flavors that I started with. For years, I was concerned that I wasn't a real programmer because I bounced off of C and kept coming back to Pascal.

Eventually, I ended up in C#, which was heavily influenced (greatly improved!) by Anders Hejlsberg, who was heavily influenced by Wirth. Wirth's legacy ended up shaping most of my computing life, and I'm grateful for that.

.
posted by a faded photo of their beloved at 11:51 AM on January 5 [3 favorites]


"By name" is actually different from both of those.

By value: evaluate the parameter at the time of call and use the result in the function

By reference: create a pointer to the original location of the parameter in memory and use that in the function (which means the function can actually change the original data, unless a language feature forbids it)

By name: re-evaluate the parameter expression every time it is used in the function. Lazy evaluation but you don’t keep the result (at least that’s my understanding).

It’s fairly standard now to have the first two - either you get an explicit choice or data structures that are accessed through an implicit reference get that reference passed around by default. In Wirth’s heyday the last wouldn’t have been obscure because it was used in e.g. the early ALGOL languages but now it’s relatively obscure because it’s subtle (in the sense of “possibly confusing”) and of niche benefit.
posted by atoxyl at 12:07 PM on January 5 [1 favorite]


.
posted by introp at 12:44 PM on January 5


In honor of Wirth, Dana "nanoraptor" Sibera created a vector graphic copy of the legendary Apple PASCAL poster. PDF available here.

Respect to anyone that took the AP in this language. I loved it. Got a 5. C seemed so much more crude after that.

END
posted by JoeZydeco at 1:06 PM on January 5 [5 favorites]


.
posted by mikelieman at 1:22 PM on January 5


ALGOL: computer language.

Al Ghoul: the ghoul: the boogyman of Arabic folklore.

Not a coincidence.
posted by ocschwar at 2:27 PM on January 5


> subtle (in the sense of “possibly confusing”) and of niche benefit.

Also it invites various pathologically clever abuses of the side effects of repeated evaluation.

As an old programmer, I have learned to despise cleverness of this kind.
posted by Aardvark Cheeselog at 3:34 PM on January 5


My college professor let me do the numerics assignments in Pascal instead of FORTRAN IV, which was very cool of her.
posted by and for no one at 4:27 PM on January 5 [2 favorites]


Another fan of Borland Turbo Pascal from back in my teenage years.

Makes me reminisce fondly about the crazy-fast compile/run turnaround times compared to the multi-minute build/deploy times for the k8s container monstrosities that apparently the world needs in the modern era.
posted by knoxg at 8:59 PM on January 5 [2 favorites]


It was the first "real" programming language I learned as well as the teaching language when I got my Bachelor's and I'll always have a fondness for it. I still fire up Lazarus and Free Pascal now and then just for the fun of it.
posted by tommasz at 7:51 AM on January 6 [1 favorite]


I remember writing a couple of string table utility functions in (Watcom) Pascal function in a high school project because the idiomatic way of handling strings in Pascal was blowing out the 64KB data segment. I later used Visual Pascal for Windows for my hobby programming and noticed it had added support for C-style strings. This was probably for interop with C libraries, but I remember Visual Pascal being nicer to program in.
I'm not fond of Pascal but I'm mindful that it was designed during the era of 1970s minicomputers that only had a few KB of memory to work with. Newer languages like Python and Rust also have the advantage of additional decades of experience with what works well and what doesn't with structured programming, to the point where the lack of goto isn't really noticeable. I do wish that the Pascal assignment (:=) operator had won out over the C-style (=) equals symbol. The postfix dereference operator was also nice.
posted by mscibing at 4:05 PM on January 6 [1 favorite]


Having got this far I can say this:
You people scare me.
posted by y2karl at 6:19 PM on January 6 [2 favorites]


.
posted by filtergik at 6:28 AM on January 7


« Older The Cheesemongers Know   |   "That's gonna put some butts in the seats!" Newer »


This thread has been archived and is closed to new comments