documents should never have an embedded turing-complete language that runs automatically or without the informed consent of the user.
This idea of "accidental Turing Completeness" reminds me of "Wang's Carpets", a short story by Greg Egan:
His fiction trades somewhat crappy characterisations (but to be fair, mostly of post-humans) for mind-blowing SF ideas.
The only online version I can find is probably illegal:
People make claims about the legibility of dynamically spaced vs monospace typefaces, but I've never been able to see it. Maybe I've just used well-designed monospace typefaces. (I've seen poorly-kerned barely-legible dynamically spaced types, of course. We all have.)
Monospace means words are visually consistent, at least.
@enkiv2 @natecull I'm not talking about the legibility of monospace vs. not. I mean, a poorly hinted typeface, monospace or not, will look bad at small sizes, which means it will be harder to read. I'm sure there are ways to do hinting that don't need to be Turing complete, but you don't need to jump to conclusions and say that we need to ban all typefaces you don't like.
It seems to me that 'Turing-complete' shouldn't be a HUGE problem if we can ALSO enforce resource usage limits on any jumping-type construct.
So we can know right from the start 'this can't take more than X cycles to run or use more than Y memory cells'.
Are there languages which do that?
Obviously, it could be done not-stupidly. Not aware of anybody who does.
Well, I mean at the LANGUAGE level, not the USER INTERFACE level.
Thinking something like Margaret Hamilton's Universal Systems Language, which seems to basically just put resource bounds on all recursion-type constructions. Any function call is a process and has a finite resource pool that its subfunctions inherit, etc.
Her stuff is probably optimised for missiles, not web browsers, and also maybe we did manual RAM allocation in the Mac/Amiga/DOS days and it was terrible.
and then we get:
user wants to pump 100 gigabytes through one browser pane because it's a streaming ultra high-def TV series they're binge-watching
ad company wants to pump 100 gigabytes through the same browser pane but user considers this malware
ad company considers the user's ad blocker to be malware...
@enkiv2 OK, I'm gonna go the other direction with this hot take, than I usually do, given the context.
I'm going to argue that Excel is a radically different form of IDE, not a mere document editor, and therefore a degree of Turing-completeness is expected.
It's still not a great situation, though...
Granted, Excel isn't on every machine, but it's something that lets users, not just programmers, develop task-specific software relatively easily.
I've seen this take before. I'm not 100% sure I buy it. Spreadsheet formulae are both more technical and more limited than BASIC. Something like Twine is a better match (though again most people don't have a copy).
Non-technical users can and do create incredible things in spreadsheets, but I think you'll probably find that nearly all of them went to company-sponsored seminars on spreadsheet formulae to gain those skills.
I've used it in the past in a previous job to parse raw text files containing financial data from Oracle systems into spreadsheets than could be further analysed.
Word and other MS office apps have the same functionality (which can and indeed has been misused by malware already, hence the security settings needed to turn on macros on documents)
@bhtooefr @calvin @enkiv2 I've seen mixtures of these *and* "proper" VBA functions in some code (especially when put together by accountants rather than those who have even basic knowledge of coding).
To be fair, it often works a fair bit of the time until its fed with data containing some odd edge case like a control character in a text file and the whole thing chokes.
I remember explaining to colleagues the innocent lookng "square box" in that text file is *not* always the same thing 😉