6 ms·
This is very cool. Constraints are definitely the mother of all creativity, even in indirect ways. This reminds me of my first few years of programming as a pre
by GuiA 10y ago
This is very cool. Constraints are definitely the mother of all creativity, even in indirect ways. This reminds me of my first few years of programming as a pre-teen, on a TI-82 calculator (I had no computer at home at the time), where I'd input code directly with the tiny keyboard. You didn't type keywords (if, else, etc.) directly - instead you would pick them from a menu system and the editor would insert them in your code. You could use the number keys as shortcuts in the menu system; after a while you'd develop pretty good muscle memory and type relatively fast on the machine. When I graduated to assembly, it was a whole other ordeal. I also remember drawing sprites for my game on graph paper, and then painstakingly inputting the coordinates for on pixels in the source.
It's funny how every programmer who got into programming before the age of ubiquitous laptops/tablets/phones/etc. has stories like that to tell; one of my old boss's favorite stories is deleting the boot sector accidentally while programming an old DOS machine, and having to rewrite by hand and from memory while the computer was still powered. When he restarted the machine, everything worked, which was pretty much a miracle.
On one hand I wonder if programmers who had to face this kind of drastic challenges end up having a stronger understanding of their craft and tooling compared to the new generation, learning languages and machines with very strong guard rails, never having to learn the deep insides of what they're working with; on the other hand, every generation bemoans the fact that the one before doesn't get things quite the way they do, but things usually turn out fine.
- westoncb 10y agoWhoa, that's interesting. Your description of the input scheme for the TI-82 sounds very similar to something I started building for a program editor meant to be used with motion sensors (https://www.youtube.com/watch?v=tztmgCcZaM4&feature=youtu.be&t=1m32s https://www.youtube.com/watch?v=tztmgCcZaM4&feature=youtu.be...). My plan was to always present a 3x3 grid with cells containing whichever language constructs were available from the current cursor position: after selecting one, the cursor position updates, and the options available in the cells update. I've tried to imagine using it many many times, but haven't been able to definitely conclude whether it would be usable or not...
- derefr 10y agoYou're basically talking about an IME or software keyboard. For something similar to your idea, I'd suggest playing with the Japanese-language keyboard for iOS. For a bit of background: The two main Japanese writing systems are syllabic—each character represents a consonant+vowel pair, with ~15 possible consonants and 5 possible vowels, though not all possible combinations of those exist. So, instead of attempting to give you a ~70-key keyboard (wouldn't really fit on the screen), the standard Japanese IME for touchscreen devices instead displays one key per initial consonant (indicated with the character you'd get by completing the syllable with an "a"-vowel.) Tapping the key neutrally picks said "[consonant]+a" character; swiping in each compass direction instead picks one of the four other vowel options. And holding down one of the keys displays the options as a little plus-shaped menu.
- westoncb 10y agoInteresting. Yes, that is very similar to what I had in mind. The ideal solution for typing in Japanese is slightly different though since the things you're specifying are always comprised of two parts, allowing the system to always be two-step. I think I would have to go with a sequences of taps, since the things being specified could have many parts. Let's say you select "method definition", for instance. After that (assuming we're writing Java), you'd have to select an 'access modifier', 'return type', 'method name', and 0 - N 'method parameters', and so on.
- epicide 10y agoI also started on a TI calculator :) Specifically, the TI-83 family. The programming was similar, but I do know that you weren't required to select the commands from a menu. You could also type the command using the alpha key combinations. This was a good shortcut for the shorter commands. Not sure if the 82 was the same way. I seem to remember copy/paste functionality but it has been a long while.
- Pica_soO 10y agoThere is a whole community formed around those calculators. http://www.ticalc.org/ http://www.ticalc.org/
- GuiA 10y agoYup they've been around for a while! Cool thing that it's still running. I remember hanging out there quite a lot back in the day.
- surement 10y ago> Constraints are definitely the mother of all creativity This is the premise of 'pataphysique, the science of imaginary solutions [0]. This has been applied passionately to not only literature (oulipo) but comics (oubapo), music (oumupo), etc. to much entertainment. I was delighted to find out at a Donald Knuth talk that he was into oumupo. [0] https://en.m.wikipedia.org/wiki/%27Pataphysics https://en.m.wikipedia.org/wiki/%27Pataphysics