>Your whole program was limited to a few kilobytes. You only had 27 floating point variables, a few lists of floats with a maximum length of 999, no real functions or stack or anything, etc. You’d shave bytes by taking advantage of syntactical quirks that the interpreter happened to accept, like not closing parentheses at the end of a line.
I found that smaller programs just ran faster. So I took one I'd written to convert from ASCII strings to binary strings and back. Yes, there's a built in function to do this, but it's very limited. Mine used string representations and so the only limits were memory...Then I changed all the variables to single letters to save space...and rendering the code completely indecipherable in the process.
Learning the hard way that "human readable code" is very important at a very young age.
One reason for this was that GOTO was a main control structure in TI-BASIC (since it lacked user-definable functions), and AFAIK on hitting a GOTO, the interpreter scanned the program from top to bottom to find the corresponding Label. So it was very easy to write loops than ran in O(program size). This was strong motivation to learn how to use While and For loops.
Huh, I am too young to have messed with Ti-84 programming, but what you described sounds extreemly similar to my experience programing in YOLOL the ingame/inworld programming language in the game starbase.
In this language you are limited to 120 characters per line, and 20 lines with .2 second execution time for a single line in a "chip" (the devices that store and execute code ingame). Only very basic operations are availible, like goto, if, and math operations.
You basically end up code golfing to squeeze as much as possible into those 120 characters, to minimize latency and use fewer chips (which have in-world costs) its been a fun experience so far.
I wonder if the developers were inspired by the similar Ti-84 programming limits
I found that smaller programs just ran faster. So I took one I'd written to convert from ASCII strings to binary strings and back. Yes, there's a built in function to do this, but it's very limited. Mine used string representations and so the only limits were memory...Then I changed all the variables to single letters to save space...and rendering the code completely indecipherable in the process.
Learning the hard way that "human readable code" is very important at a very young age.