4 ms·
> wirth was the greatest remaining apostle of simplicity, correctness, and software built for humans to understand; now only hoare and moore remain Also Alan K
by Qem 3y ago
> wirth was the greatest remaining apostle of simplicity, correctness, and software built for humans to understand; now only hoare and moore remain
Also Alan Kay still with us.
- kragen 3y agoin the neat/scruffy divide, which goes beyond ai, wirth was the ultimate neat, and kay is almost the ultimate scruffy, though wall outdoes him alan kay is equally great, but on some axes he is the opposite extreme from wirth: an apostle of flexibility, tolerance for error, and trying things to see what works instead of planning everything out perfectly. as sicp says > Pascal is for building pyramids—imposing, breathtaking, static structures built by armies pushing heavy blocks into place. Lisp is for building organisms—imposing, breathtaking, dynamic structures built by squads fitting fluctuating myriads of simpler organisms into place. kay is an ardent admirer of lisp, and smalltalk is even more of an organism language than lisp is
- nerpderp82 3y agoI 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/dewey-schorre-obituary?id=10116067 https://www.legacy.com/us/obituaries/venturacountystar/name/... [1] https://en.wikipedia.org/wiki/META_II https://en.wikipedia.org/wiki/META_II
- kragen 3y agoyeah, 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 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, the acm made all old papers, including schorre's meta-ii paper, available gratis; they have announced that they also plan to make them open-access, but so far have not. still, this is a boon if you want to do this. the paper is quite readable and is at https://dl.acm.org/doi/10.1145/800257.808896 https://dl.acm.org/doi/10.1145/800257.808896
- nerpderp82 3y agoIt 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_stackless_lua_vm_implemented_in_pure_rust/ https://old.reddit.com/r/rust/comments/18wnqqt/piccolo_stack... And https://www.youtube.com/@T2TileProject/videos https://www.youtube.com/@T2TileProject/videos
- kragen 3y agothanks! i like lua a lot despite its flaws; that's what i wrote my own literate programming system in. lua's 'bytecode' is actually a wordcode (a compilation approach which i think wirth's euler paper was perhaps the first published example of) and quite similar in some ways to wirth's risc-1/2/3/4/5 hardware architecture family i hope they do go to open access; these papers are too valuable to be lost to future acm management or bankruptcy
- protomolecule 3y agoWhat are the lua's flaws in your opinion? Sincere question.
- kragen 3y agothere are a lot of design decisions that are pretty debatable, but the ones that seem clearly wrong to me are: - indexing from 1 instead of 0; - the absence of a nilness/nonexistence distinction (so misspelling a variable or .property silently gives the wrong answer instead of an exception); - variables being global by default, rather than local by default or requiring an explicit declaration; - printing tables by default (with %q for example) as identities rather than contents. (you could argue that this is a simplicity thing; lua 5.2 is under 15000 lines of code, which is pretty small for such a full-featured language, barely bigger than original-awk at 6200 lines of c and yacc plus 1500 lines of awk, and smaller than mawk at 16000 lines of c, 1100 lines of yacc, and 700 lines of awk. but a recursive table print function with a depth limit is about 25 lines of code.) none of these are fatal flaws, but with the benefit of experience they all seem like clear mistakes