3 ms·
Thanks a lot for that very comprehensive and insightful answer! Still digesting it... :-) I did quite a bit of work in Postscript, it's a fun and interesting
by mpweiher 1y ago
Thanks a lot for that very comprehensive and insightful answer! Still digesting it... :-)
I did quite a bit of work in Postscript, it's a fun and interesting language.
A guess:
1. compile-time metaprogramming is where the magic is. That is the superpower.
2. as you mentioned, compile-time metaprogramming is quite a bit easier when you have a language with little to no syntax. Hence Lisp and Forth.
3. Not having syntax, or maybe more precisely: having a programming model that does not require syntax, is the fatal flaw.
4. Where we are today, the two actually are coupled. And this leads to the common schisms: one side sees the fatal flaw, the other side the superpower.
5. There is both a causal relationship between the superpower and the fatal flaw and a historical relationship (that's where it was easy, so that's where it was done first)
6. However, the coupling may not actually be a necessary one.
Which paper?
- kragen 1y agoSpecifically https://www.hpi.uni-potsdam.de/hirschfeld/publications/media/Weiher_2020_CanProgrammersEscapeTheGentleTyrannyOfCallReturn_AcmDL.pdf https://www.hpi.uni-potsdam.de/hirschfeld/publications/media.... I read through it once when you mentioned it here a few months ago, but I think it merits a deeper reading, which I haven't finished doing yet. I think more than necessity, requirements, and fatality we have more of a gradient thing. It isn't necessary to have no syntax to do compile-time metaprogramming, but the effort gradient sort of pushes you in that direction. It isn't impossible to write a web browser in Forth either, just hard.