One thing that Xojo brought to me when I started using it, and that I wasn’t used to, was finding an abusive use of timers everywhere and conflicts between them. It was brought to my attention that some code in ARM crashed, because for ARM, one event was firing out of the expected order of the developer, but worked flawlessly on Intel. For ARM, 2 events switched places, probably due to some use of timers internally instead of a queue of events. Using Queues, when you say RunFIFO(fireA); RunFIFO(fireB) you will run the events fireA() followed by fireB() always, but if you use a RunInOneMillisecond(fireA); RunInOneMillisecond(fireB); you have no guarantee of the sequence.
Turbo Pascal for DOS had a language ability is later versions (for the IDE anyway, not the apps it produced). It read the compiler messages and such from a simple text file. One enterprising chap I know changed the “; expected” message to read “purple worm expected”. Strange chap but it always makes me laugh when I use PHP or other languages that require a ; end of line.