NOTE: I have a cognitive disability and Fuch's Dystrophy, so finding ways to overcome both of these challenges is an on-going and ever-evolving process of continuous improvement/experimentation !
For the longest time, I used to avoid using GOTO and GOSUB because I wanted to avoid unstructured programming at all costs, GOTO and GOSUB being part of unstructured programming.
I've found myself over the last year seeing GOTO and GOSUB in a different light, often finding them useful in the context of structured programming. As I've been increasingly making use of these statements, I've also been reevaluating my usage of line identifiers. What I've realized:
- I heavily dislike line numbers, because the numbers don't mean anything to me
- I dislike line labels because they do not make it easy for me to locate the related line (when looking at a GOTO or GOSUB statement)
- I really like sequential line numbers because they help me locate (i.e. scroll to) the related line (when looking at a GOTO or GOSUB statement)
- I really like descriptive line labels because they help me identify what I'm jumping to (two birds with one stone: serving the purpose of line identification for the program, and serving the purpose of telling the programmer what's going on (so no need to clutter the code with a comment)
- "999" is an integer number of any length (the number can even have leading zeroes)
- The underscore is only a suggestion (you can omit it or use any other valid character)
- "XXX" is whatever mixture of alphabetic characters, numeric characters, emojis, and other valid characters
- other valid characters
- accented characters
- exclamation mark and question mark
- non-consecutive tildes
- non-consecutive "tick marks"
- # $ % |
- INVALID characters (i.e. we cannot use these in line identifiers
- space character
- period and comma
- tilde and "tick mark" (`)
- single quote (') and double-quote (")
- @ ^ & * ( ) - + = / \ > < { } [ ] : ;
- The semi-colon (:) suffix (i.e. the last character) is required
- ❓ is whatever emoji (or even a unicode character) that is available and suitable to quickly let me know whether or not I'm in the right ballpark of code in my search for a particular line.
It might be a good idea to make sure that emojis are not considered as a character that makes an identifier unique (i.e. something that distinguishes an identifier from another identifier.)
ReplyDeleteJust in case an emoji used in a BAM program on one device does not misbehave on another device that does not support that emoji.
I must chew on that idea a little bit before I update the post with some related guideline.