I loved the book Compiler Construction. Wirth's emphasis on minimalism is a huge inspiration.
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.
Niklaus Wirth has died
131–140 of 412 posts
Re: Niklaus Wirth has died
#132Earlier quoted context omitted.
Supported cooperative multitasking won in the end. It just renamed itself to asynchronous programing. That's quite literally what an 'await' is.
>Supported cooperative multitasking won in the end. Is this the same as coroutines as in Knuth's TAOCP volume 1? Sorry, my knowledge is weak in this area.
Re: Niklaus Wirth has died
#133Earlier quoted context omitted.
I had wanted to interview Val Schorre [1], and looked him up on a business trip because I was close. Died 2017, seems like a righteous dude. https://www.legacy.com/us/obituaries/venturacountystar/name/... [1] https://en.wikipedia.org/wiki/META_II
yeah, i wish i had had the pleasure of meeting him. i reimplemented meta-ii 3½ years ago and would recommend it to anyone who is interested in the parsing problem. it's the most powerful non-turing-complete 'programming language' i've ever used http://www.canonical.org/~kragen/sw/dev3/meta5ixrun.py (i mean i would recommend reimplementing it, not using my reimplementation; it takes a few hours or days) after i wrote…
I haven't reimplemented meta-ii, I will.
You might like https://old.reddit.com/r/rust/comments/18wnqqt/piccolo_stack...
Re: Niklaus Wirth has died
#134He 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.
Re: Niklaus Wirth has died
#135Earlier quoted context omitted.
async/await has the advantage over cooperative multitasking that it has subroutines of different 'colors', so you don't accidentally introduce concurrency bugs by calling a function that can yield without knowing that it can yield i think it's safe to say that the number of personal computers running operating systems without preemptive multitasking is now vanishingly small as i remember it, oberon didn't support eit…
And these fancy new names aren't there just for hiding the event loop? :)
Re: Niklaus Wirth has died
#136begin this is terrible news; is there a better source than twitter (edit: https://lists.inf.ethz.ch/pipermail/oberon/2024/016856.html thanks to johndoe0815); wirth was the greatest remaining apostle of simplicity, correctness, and software built for humans to understand; now only hoare and moore remain, and moore seems to have given the reins at greenarrays to a younger generation; young people may not be aware of th…
> wirth was the greatest remaining apostle of simplicity, correctness, and software built for humans to understand; And yet far from the last. Simple, correct, and beautiful software is still being made today. Most of it goes unnoticed, its quiet song drowned out by the cacophony of attention-seeking, complex, brittle behemoths that top the charts. That song never faded, you just need to tune in.
Re: Niklaus Wirth has died
#137Earlier quoted context omitted.
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]. [1]: https://en.m.wikipedia.org/wiki/Delphi_(software) [2]: https://en.m.wikipedia.org/wiki/List_of_low-code_development...
> 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.
Re: Niklaus Wirth has died
#138Earlier quoted context omitted.
yeah, i wish i had had the pleasure of meeting him. i reimplemented meta-ii 3½ years ago and would recommend it to anyone who is interested in the parsing problem. it's the most powerful non-turing-complete 'programming language' i've ever used http://www.canonical.org/~kragen/sw/dev3/meta5ixrun.py (i mean i would recommend reimplementing it, not using my reimplementation; it takes a few hours or days) after i wrote…
It is a good paper, and I give much respect for ACM opening up their paywall of old papers. They even stopped rate limiting downloads. I'd like to think my incessant whining about this had some effect. :) It is such a wonderful thing for curious people everywhere to be able to read these papers. I haven't reimplemented meta-ii, I will. You might like https://old.reddit.com/r/rust/comments/18wnqqt/piccolo_stack... And…
i hope they do go to open access; these papers are too valuable to be lost to future acm management or bankruptcy
Re: Niklaus Wirth has died
#139Earlier quoted context omitted.
It has mostly won for individual programs, but very much not for larger things like operating systems and web browsers.
Mostly won for CRUD apps (yes and a few others). Your DAW, your photo editor, your NLE, your chatbot girlfriend, your game, your CAD, etc might actually want to use more than one core effectively per task. Even go had to grow up eventually.
Re: Niklaus Wirth has died
#140Earlier quoted context omitted.
> not _better enough_ Wirth was such a legend on this particular aspect. His stance on compiler optimizations is another example: only add optimization passes if they improve the compiler's self-compilation time. Oberon also, (and also deliberately) only supported cooperative multitasking.
Supported cooperative multitasking won in the end. It just renamed itself to asynchronous programing. That's quite literally what an 'await' is.
Your opinion vs. my opinion, obviously. But the user reports of the experience in Rust is hardly even close to unanimous praise and I still say it's a mistake to sit down with an empty Rust program and immediately reach for "async" without considering whether you actually need it. Even in the network world, juggling hundreds of thousands of simultaneous tasks is the exception rather than the rule.
Moreover, cooperative multitasking was given up at the OS level for good and sufficient reasons that I see no evidence that the current thrust in that direction has solved. As you scale up, the odds of something jamming your cooperative loop monotonically increase. At best we've increased the scaling factors, and even that just may be an effect of faster computers rather than better solutions.