Prof Wirth was a major inspiration for me as a kid. I eagerly read his book on Pascal, at the time not appreciating how unusual it was for its elegance and simplicity. I also followed with interest his development of the Oberon language and Lilith workstation. When I was 13, he gave a talk not too far away, I think it might have been Johns Hopkins, and my dad took me to it. It was a wonderful experience, he was very kind and encouraging, as I think the linked photo[1] shows.
A sad day. He was a titan of computing and still deserved even more attention that the got. If his languages had been more prevalent in software development, a lot of things would be in a better shape.
After playing around a bit with Basic on the C64/128, Pascal became my first "real" programming language I learned. In the form of UCSD Pascal on Apple II at my school as well as Turbo Pascal 3.0 on a IBM PC (no AT or any fanciness yet). Actually a Portable PC with a build-in amber CRT.
When I got my Amiga 500, Modula 2 was a very popular language on the Amiga and actually the M2Amiga system was the most robust dev env. I still think fondly of that time, as Modula 2 made it so easy to develop structured and robust programs. The module concept was quite ahead of the time, while the C world kept recompiling header files for so many years to come. Today, Go picked up a lot from Modula 2, one reason I immediately jumped onto it. Not by chance, Robert Griesemer was a student of Wirth.
During the 90ies, while MS Dos was still used, Turbo Pascal still was the main go-to language on the PC for everyone, as it was powerful, yet approachable for non-fulltime software developers. It picked up a lot of extensions from Modula 2 too and also had a nice Object system. It peaked at the version 6 and 7. Probably to the day my favorite development environment, partially because of the unmatched speed of a pure character based UI. And Turbo Pascal combined the nice development environment with a language which found a great compromise between power and simplicity.
Unfortunately, I was only vaguely familiar with his later work on Oberon. I ran the Oberon system natively on my 386 for some toying around. It was extremely impressive with its efficiency and full GUI in the time of DOS on the PC. A pity, it didn't achive more attention. Probably it would have been very successful if it had gained tracking in the not too late 80ies, in the early 90ies of course Windows came along.
From a puristic point of view, the crowning achievement was of course when he really earned the job title of a "full stack developer", not only designing Oberon and the OS, but the CPU to run it as well. Very impressive and of a huge educational value.
Wirth was the chief designer of the programming languages Euler (1965), PL360 (1966), ALGOL W (1966), Pascal (1970), Modula (1975), Modula-2 (1978), Oberon (1987), Oberon-2 (1991), and Oberon-07 (2007). He was also a major part of the design and implementation team for the operating systems Medos-2 (1983, for the Lilith workstation), and Oberon (1987, for the Ceres workstation), and for the Lola (1995) digital hardware design and simulation system. In 1984, he received the Association for Computing Machinery (ACM) Turing Award for the development of these languages.
But we also had syntax highlighting in the early 90's, so, using uppercase to denote language elements was already an archaic approach that hurt readability.
I'm kind of a fan of Lola, an easy-to-learn HDL which was inspired by Pascal/Oberon vs. Verilog (inspired by C) and VHDL, inspired by Ada.
I like Wirth's whole software stack: RISC-5 (not to be confused with RISC-V) implemented in Lola, Oberon the language, and Oberon the environment. IIRC Lola can generate Verilog - I think the idea was that students could start with an FPGA board and create their own CPU, compiler, and OS.
I also like his various quips - I think he said something like "I am a professor who is a programmer, and a programmer who is a professor." We need more programmer/professors like that. Definitely an inspiration for systems people everywhere.
Also collaborated with Apple on Object Pascal initial design, his students on Component Pascal, Active Oberon, Zonnon, and many other research projects derived from Oberon.
For those who don't know, Pascal was what a lot of the classic Mac software was written in, before Objective-C and Swift. It grew into Delphi, which was a popular low-code option on Windows.
I wouldn’t describe Delphi as low code, it is an IDE. Wikipedia also describes it like this[1] and does not include it in its list of low code development platforms[2].
It was a RAD platform though. From following your links:
> Low-code development platforms trace their roots back to fourth-generation programming language and the rapid application development tools of the 1990s and early 2000s.
> Delphi was originally developed by Borland as a rapid application development tool for Windows as the successor of Turbo Pascal.
It's a shame that Pascal was largely abandoned (except for Delphi, which lived on for a while); I believe several Pascal compilers supported array bounds checking, and strings with a length field. In the 1980s this may have been considered overly costly (and perhaps it is considered so today as well), but the alternative that the computing field and industry picked was C, where unbounded arrays and strings were a common source of buffer overflow errors. Cleaning this up has taken decades and we still probably aren't done.
Better C/C++ compilers and libraries can help, but the original C language and standard library were certainly part of the issue. Java and JavaScript (etc.) may have their issues but at least chasing down pointer errors usually isn't one of them.
A side effect of UNIX adoption, C already being in the box, whereas anything else would cost money, and no famous dialect (Object Pascal, VMS Pascal, Solaris Pascal, UCSD Pascal) being portable.
Unfortunately Pascal only mattered to legions of Mac and PC developers.
My father celebrated 60 two weeks back and told me he bought license for new Delphi and loves it, I was quite surprised with the development he described.
I considered telling him that he could get most of the things (he also buys various components) for free today, but then.. he is about 5 years before retirement and won't relearn all his craft now.
Myself, I am not sure whether its nostalgia but I miss the experience of Delphi 7 I started with 20 years back. In many ways, the simplicity of VLC and the interface is still unbeaten.
> I considered telling him that he could get most of the things (he also buys various components) for free today, but then.. he is about 5 years before retirement and won't relearn all his craft now.
Free Pascal / Lazarus shouldn't be all that much to relearn.
> Myself, I am not sure whether its nostalgia but I miss the experience of Delphi 7 I started with 20 years back.
Delphi 1, 28 years now.
> In many ways, the simplicity of VLC and the interface is still unbeaten.
1) Yup.
2) VCL, btw.
3) Now that Embarcadero is hiking up the price of Delphi with every release, I think the standard-bearer for best librry / framework is probably the LCL, the Lazarus Component Library.
I learned Pascal and MODULA-2 in college, in my first two programming semesters. MODULA-2 was removed shortly afterwards but Pascal is still used in the introductory programming course. I'm very happy to have had these as the languages that introduced me to programming and Wirth occupies a very special place in my heart. His designs were truly ahead of their time.
I had Pascal and some Modula as well (on concurrent programming course).
I learned C++ later myself as a Pascal with bizzare syntax. I always felt like semantics of C++ was taken entirely from Pascal. No two lanuages ever felt closer to each other for me. Like one was just reskin of the other.
I already told this story multiple times, when I came to learn C, I already knew Turbo Pascal since 4.0 up to 6.0, luckly the same teacher that was teaching us about C, also had access to Turbo C++ 1.0 for MS-DOS.
I adopted C++ right away as the sensible path beyond Turbo Pascal for cross-platform code, and never seen a use for C primitive and insecure code, beyond being asked to use it in specific university projects, and some jobs during the dotcom wave.
On Usenet C vs C++ flamewars, there might be still some replies from me on the C++ side.
I learned C that way (algorithms class was in C), even had a little printout table of the different syntaxs for the same instructions (here's how you write a for, if, record, declare a variable, etc). At the time I remember thinking that the C syntax was much uglier, and that opinion has stayed with me since -- when I learned Python everything just seemed so natural.
I started my first company based on Delphi, which itself was based on Turbo Pascal. Wirth was a great inspiration, and his passing is no small loss.
May his work keep inspiring new programmers for generations to come.
One of his quotes: "Whereas Europeans generally pronounce my name the right way ('Ni-klows Wirt'), Americans invariably mangle it into 'Nick-les Worth'. This is to say that Europeans call me by name, but Americans call me by value."
He was indeed! I wrote my bachelors thesis on bringing modularity to a language for monitoring real time systems and his work, especially on MODULA-2, was a huge source of inspiration.
A sad day for the history of computing, the loss of a great language designer, that influenced many of us in better ways to approach systems programming.
I'm much more sad when life sort of decays (Alzheimer's, dementia, or simply becoming slow/stupid/decrepit), ends early, or when life is simply wasted.
This is beautiful phrasing, very much how I think about life myself. Let's hope the last days of Mr Wirth were free from physical pain. Thinking of my grandpa who died all of a sudden, apparently without serious physical impairments or aches, at age 90, after a happy, well-lived, ethical life.
Heaven is happier by one person now for sure, again. And maybe some compilers over there also need tinkering. Rest in peace, Mr Wirth.
He gave a talk at the CHM (He was inducted as a fellow in 2004) I got to talk with him and was really struck by someone who had had such a huge impact was so approachable. When another person in the group challenged Modula-2 he listened respectfully and engaged based on the the idea that the speakers premise was true, then nicely dissented based on objective observations. I hope I can always be that respectful when challenged.
Pascal was my first "real" language after Basic, learned it in the late 80s, wrote a couple of small apps for my dad in it.
Learned most of it from a wonderful book whose name I have forgotten, it had a wrench on its cover, I think?
Anyway, still rocking Pascal to this day, since I still maintain 3 moderately complex installers written with InnoSetup, which uses RemObjects Pascal as a scripting language.
4 years ago, a new guy on our team, fresh from school, who never even knew this language existed, picked up Pascal in a week, and started maintaining and developing our installers much further. He did grumble a bit about the syntax but otherwise did a splendid job. I thought that was a tribute to the simplicity of the language.
> Pascal was my first "real" language after Basic, learned it in the late 80s
Me too, word for word. I spent a few years in my pre-teens immersed in the Turbo Pascal IDE, which was a full-on educational tool of its own that explained everything about the language. I moved on to C after that, but I still get a nostalgic vibe from looking at Pascal syntax. It was a great foundational experience for me as a programmer.
Also, his Oberon system provides a rich seam to mine. This, from a symposium held at ETH Zurich on the occasion of his 80th birthday in 2014, is a whirlwind retrospective.
"Reviving a computer system of 25 years ago" https://www.youtube.com/watch?v=EXY78gPMvl0
I just needed a feature of Pascal yesterday in one of my Rust libraries: ranged integers. I know, you can go about it in different ways, like structs with private fields and custom constructors, or just with a new generic type. But, having the ability to specify that some integer can only be between 15..25 built-in is a fantastic language feature. That's even so with runtime bounds checking disabled because the compiler would still complain about some subset of violations.
What an innovator and a role model. I wish I can be as passionate about my work in my 80's as him.
Not only did Pascal (TP more precisely) taught me about systems programming with a safer language, it was also my first foray into type driven programming, learning to use the type system to express conditions not bound to happen.
Ranged numerics and enumerations were part of that.
Pascal was my second language, after BASIC. I was about twelve and pointers cost me a little to understand. But the first hurdle was not having line numbers. It seemed weird.
In the end, it was definitely worth the effort, and I learnt good habits from it. I used it in college, and I suppose I kinda still do, because I do a lot of PL/SQL.
He was hugely important for generations of coders.
R.I.P. Niklaus Wirth. Your ideas, languages and designs were the inspiration for several generations of computer scientists and engineers. Your Lilith computer and Modula-2 language kindled a small group of students in Western Siberia’s Akademgorodok to create KRONOS - an original RISC processor-based computer, with it’s own OS and Modula-2 complier, and lots of tools. I was very lucky to join the KRONOS team in 1986 as a 16 yo complete beginner, and this changed my life forever as I become obsessed with programming. Thank you, Niklaus.
When I first got to play with Turbo Pascal (3.something?), I was more impressed by the concise expression of the language in the EBNF in the manual than by Turbo Pascal itself, and it was what made me interested in parsers and compilers, and both Wirth's approach to them and the work his students undertook in his research group has been an interest of mine for well over 30 years since.
I hold an old print of his Pascal language report near and dear on my.bookshelf. he bootstrapped oberon with one peer in 1-2 years.
his preference for clarity over notational fancyness inspired so many of us.
the Pascal family of languages are not only syntactically unambiguous to the compiler they are also clear and unambiguous to humans. can. the Carbon successor to c++ strives for the same iirc.
Wirth made one of the most critical observations in the whole history of computing: as hardware develops, software complicates to compensate and slow things down even further.
Still remember at 14 scrounging $$ together to buy a 2nd hand copy of a Modula-2 compiler for my Atari ST and then eagerly combing through the manual as my parents drove me home from the city. Really was a different era. Like a lot of other people who have posted here who probably came of age like me in the 80s, I went from BASIC to Pascal to Modula-2 and only picked up C later. Wirth's creations were so much a part of how I ended up in this industry. The world of software really owes him a lot.
The greatest of all quiche eaters has just passed away. May he rest in peace. https://www.pbm.com/~lindahl/real.programmers.html But seriously, PASCAL was the first programming language I loved that's actually good. Turbo Pascal. Delphi. Those were the days. We got a better world thanks to the fact that Niklaus Wirth was part of it.
I haven't read that one yet, but "Algorithms + Data Structures = Programs" is just an absolutely beautiful gem of a book. It embodies his principles of simplicity and clarity. Even though it's outdated in many places, I adored reading it.
Speaking of which, that book is one of the very few sources I could find that talks about recursive descent error recovery and goes further than panic mode.
There's also an interesting book "A model implementation of standard Pascal" - not by Wirth - that implements an ISO Standard Pascal compiler in Standard Pascal, written as a "literate program" with copious descriptions of every single aspect. Basically, the entire book is one large program in which non-code is interspersed as very long multiline comments.
compiler.pas can be compiled with a modern Pascal compiler, but the resulting compiler cannot compile itself. I don't know if that's caused by a transcription error, a bug in the modern compiler or a bug in the Model Implementation.
I would love it if somebody gets this working. I don't think I myself will continue with this project.
This is a huge loss in computer science. Everyone interested in computing, no matter if using other languages than Pascal or derivatives, should read his "Algorithms + Data Structures = Programs" book.
R.I.P.
"Algorithms + Data Structures = Programs" was a seminal book for me when I was learning about software development and it has influenced how I think about programming. Also, Pascal (in its various dialects) was my main language for many years on multiple platforms (CP/M, MS-DOS, Windows).
After having read some of the comments on Pascal here -- fellow HNers, what's your view on Pascal as a teaching/introductory language in 2023, for children aged 10+? Mostly thinking of FreePascal, but TurboPascal in DOSBox/FreeDOS/SvarDOS is also a possibility.
I'm also thankful for references to "timeless" Pascal books or online teaching materials that would be accessible for a 10+ year old kid who is fine with reading longer texts.
(My condolences are below, fwiw. His death is, interestingly, a moment of introspection for me, even if I'm just a hobbyist interested in small systems and lean languages.)
Niklaus Wirth is most famous for Pascal but the best language is his last, namely Oberon which is both smaller and more capable than Pascal. If you are interested in a freestanding compiler (separate from the operating system Oberon), have a look at OBNC.
> what's your view on Pascal as a teaching/introductory language in 2023, for children aged 10+?
I think it's still the best language to start with.
And don't let yourself be dissuaded by comments here about "no ecosystem" etc; that's BS, IMnsHO. There are tons of compilers and IDEs you could use, from Free Pascal (with or without Lazarus), via PowerPascal (IIRC) and other smaller implementations, to the old versions that Borland / Inprise / CodeGear / Idera / Embarcadero have released as freeware over the years.
I wouldn't teach Pascal any more. While the ecosystem around it is not quite dead it is not alive either. So, everything feels a bit fallen out of time. At least to me it would be demotivating to learn the Latin of computer science.
My very first language was Pascal. I have since forgotten it, but distinctly remember the feeling computers are fun! And the red pascal book. Thank you Niklaus, for all the fun and impact you had on subsequent languages.
I really appreciate his work. He had a full life. Since yesterday, without knowing, I was just studying a section of a book detailing the code generation of one of the first Pascal compilers for the CDC 6400.
I was just exploring Pascal last month. I've been meaning to do some more programming in it. I think it's a good compromise for someone who wants a lower level language but doesn't want to use C or C++. The FreePascal compiler also rips through thousands of lines of code a second so the compile times are really short
RIP King. 2nd language I learned was Pascal (Turbo 5 then 6) in high school. Tried UCSD P-System from a family friend with corporate/educational connections on 5.25" but didn't have a manual, and this was before the internet. I could/should have tried to use the library to get books about it, but gave up.
Fond memories; I feel like the 90s kids were the last ones to really get to appreciate Pascal in a "native" (supportive, institutional) setting.
I also loved learning Oberon/Bluebottle (now A2 I guess), which I was so fascinated with. I think that and Plan 9's textual/object interface environments are super interesting and a path we could have taken (may converge to someday?)
RIP, and thanks for helping indirectly to put me on my career path.
I learned pascal fairly late in the grand scheme of things (basic->6502 assembly->C and then eventually pascal) but it was used for the vast majority of my formal CS education first by instruction, then by choice, and eventually in my first real programming job. The later pascal dialects remain IMHO far better than any other languages I write/maintain/guide others in using. Like many others of his stature it was just one of his many hits. Niklaus Wirth is one of the giants I feel the industry stands on, and I thank him for that.
"All those moments will be lost in time, like tears in rain..."
I bought the Art of Computer Programming volume 4A a few years ago and didn't even start reading it. 1-3 I read when I… god, my youngest child is almost that age now.
I think tonight is the time to start on 4A, before we lose Knuth too.
And as I picked it down I noticed that, almost by coincidence, AoCP stood next to Wirth's PiM2. It wasn't intentional but it feels very right. There's a set of language books that end with Systems Programming with Modula 3, the Lua book. Thinking Forth, PiM2, then a gap, then the theory-ish section starts with five volumes of Knuth. Sigh.
Coming from ZX Spectrum at home and seeing the beauty of Turbo Pascal on an IBM PC-compatible has greatly contributed to my love of programming. R.I.P., Professor Wirth.
... and you never will, since OSes don't provide anything like that out of box and to make design ecosystem work like that, a major effort for fat clients would be needed. In a time when dev tools are mostly free (apart from intellij idea but this approach has its own drawbacks) and focused on other technologies / platforms.
Pascal (Turbo Pascal on a PC) was my second programming language after Assembler and some C (had a copy of Aztec-C compiler) on an Amiga when I was 17ish. Pascal taught me modular programming, breaking down largensystems. I‘d written my own matrix calc library and would program animations for my physics class. And I learned the basic concepts of OO. It was a joy to program in.
sad. after learning basic on a zx81 my father found thrown out in the trashbin (i still have that machine today) my parents got me a 8088 PC. when my friends were playing games on those atari st and amiga machines, i was progrmaming in turbo pascal 3.0 i found from a cheap book that came with a 5"14 floppy. pascal is the first true language i learned and i would probably not be coding today without Niklaus. he changed my life, and he had a huge, huge impact on computing : pascal, oberon. delphi, and many more things. i will miss him dearly.
Pascal was the first programming language I ever learned, and a book on it that he coauthored was the first programming book I ever purchased. I hold him (and Pascal) in a special place in my heart.
Modula-2 had a huge influence on my early understanding of Software Engineering and Computer Science. I feel it is one of his under-valued contributions. RIP Niklaus. One of the great ones.
algol isn't a piece of software, so it doesn't have maintainers. i don't know if the algol committee ever officially disbanded but wirth had already resigned before algol 68 came out
Oh sorry, I misremembered the list and meant Oberon but fair point. I had just noticed that the last stable release was in 2020.
If I had read more closely to the wording, the language was _designed_ by Wirth but that doesn't necessiate him being fingers-to-keyboard (or whatever modality) despite it saying he was the developer.
Perhaps perversely (or maybe just a reflection of my own middle age?), but the HN black bar is one of my favorite aspects of HN. Death rites are essential, but their significance is often lost on the young who (naturally) pervade tech; what HN has developed in the black bar is really perfect.
Anyway: I trust we're just seeing natural human latency here, but this clearly merits the HN black bar. RIP, Nik Wirth -- truly one of the giants, and someone whose work had a tremendous personal influence for so many of us!
Not trying to be crude, but is someone passing away after a long, rich life of 89 years something to mourn? Isn’t that kind of the best case scenario?
For me something like a black banner signifies a tragedy, not merely a death. A bunch of children being shot, a war, a disease ravaging a country, etc.
I’m curious to learn others’ perspectives however.
I think mourning is more than just tragedy. It's recognition of loss. And the tradition of black things around death has seemed more a sign or respect than as indication of some tragic underpinnings. But I actually don't know the history of the tradition, so I am happy to be corrected.
> Not trying to be crude, but is someone passing away after a long, rich life of 89 years something to mourn? Isn’t that kind of the best case scenario?
It can be "kind of a best case scenario" and yet you still mourn the loss. Mourning doesn't require a tragedy.
My grandmother died in her sleep at 94, pretty healthy all things considered (still had a good head, could putter along, and was in her own home of more than 60 years), after having had a great day. Pretty much the best death she and we could have hoped for. I still wouldn't have minded having her nearby for a few more years.
You know, I had a comment earlier about the importance of death rites being broadly lost on the young (and without meaning to sound pejorative, I have to believe that you are relatively young). I had thought to myself that I was perhaps being unfair -- surely even a child understands the importance of a funeral? -- but your comment shows that I wasn't wrong.
So as it apparently does need to be said: we're humans -- we mourn our dead. That is, the black bar denotes death, not tragedy; when we mourn those like Wirth who lived a full life, we can at once take solace in the fullness of a life lived and mourn that life is finite. The death rite allows us to reflect on the finiteness of our own lives, and the impact that Wirth had us, and the impact that we have on others. You are presumably too young to have felt this personal impact, but I assure you that many are brought back to their own earliest exposure to computing -- for many of us, was Pascal.
Again, RIP Nik Wirth; thank you for giving so many of us so much.
While very out of fashion these days, a black armband used to be a signal of mourning someone's death, whether the death was a "tragedy" (likely meaning unexpected, particularly violent, particularly early, or something similar) or not. The black bar is a digital imitation of that.
Niklaus Wirth contributed quite a bit to our field, and, directly or indirectly, impacted many of the people who frequent this (programming technology oriented) site.
A lot of tragedies happen in the world, but you're not going to see a black bar on HN for every one of them. It's not so much about the magnitude of the loss, but the contribution that person made to the history of computing.
Some people say that it doesn't matter if someone dies at age 89 -- after they have lived a full life and contributed all they had to give -- it's still just as sad and shocking.
Personally, I don't agree, to me it's just not as sad or shocking. People don't live forever and Wirth's life was as successful and complete as possible. It's not a "black day" where society truly lost someone before they fulfilled their potential.
[1]: https://mastodon.online/@raph/111693863925852135