https://www.cemetech.net/forum/viewtopic.php?p=285843#285843 for more information on the Python performance
Are they just lazy monopolists or am I missing something crucial?
What _is_ inexcusable to me is that the calculator still costs as much as it does. I'd bet the bill of materials for a TI-84 is cheaper than that of a Raspberry Pi at this point. A few years ago I had to take apart my -83 and discovered from references online that there were revisions A through at least K of the hardware, with many cost cutting measures made along the way. And while there's something to be said for the supply chain for a 20+ year old device probably having dried up several times over, none of those cost savings seem to have been passed onto the consumer.
However, all US textbooks contain examples specifically for TI calculators, all teachers get TI calculators for free and thus they don't recommend getting anything else but a TI calc.
I got one, so great. Statistical Student's T at the lab bench for advanced freshman chemistry. In 1987.
they did _what?!_ I recall TI-Basic programs running at a snail's pace on my TI-8whatever, without assembly nothing of any scale can be done, even numerical analysis.
Ironically, in the smartphone era, devices aren't even supposed to be programmable anymore (to the end user). They're simply means of consuming content (and a way to be surveilled). The idea that a computer is a programmable machine has all but disappeared from the mainstream.
Surely any 10 year old is savvy enough to find them.
Maybe Pocket Code fits your idea.
The reason why you don't see this advertised for mobile devices is for much the same reason that you don't see programmability advertised for modern computers: it is a feature that only appeals to a tiny subset of the market. The reason why you see programmability advertised in a calculator is due to its utility for the target market (e.g. programming is often introduced in math class).
That's long gone. There's no such tools (that I'm aware of) in the mainstream for smartphones or even computers. You say two things: "they support so much more than TI-basic", well yes and that's the problem. They are developer's tools, not user-programmer tools. If you want to write a quick program to help you in some task you don't have a quick BASIC-like tool to do that. And you also say "a feature that appeals only to a tiny subset of the market", again a self-fulfilling prophecy. There are no tools for non-technical users to program their devices, so only a minority of users do want to program their devices (or even realise that they can do so!)
Some examples that I can think of: Automator, AppleScript, Swift Playgrounds are all intended to be accessible to end users. Spreadsheets typically provide programming-like constructs (without resorting to lower level scripting). There are versions of BASIC for most platforms (including Android and the Nintendo Switch). The last time I looked into it Smalltalk (via Squeak) was still being maintained for computers and it looks like there are Smalltalk implementations available for Android.
While it can legitimately be pointed out that most of these options have to be sought out, they are a subset of what is available. While I agree that people not realizing that their devices can be programmed is a hurdle, a large number of people do realize that it is actually software that controls the operation of their devices yet have very little interest in writing their own programs.
I believe that devices are at least as accessible today as they were in 1981. Today's systems are phenomenally complicated, but you can start making them do stuff with virtually no extra parts. The web browsers are free. Tutorials online are free. Way better resources these days.
Do they expose everything? No.
Are they good enough for learning purposes and basic coding on the go?
More than enough.
Okay, so where are the options that only support basic math and graphics?
And it ended up helping me choose Computer Science as my college degree and put me on the career path I'm on now. TI has its faults, but I'll be ever thankful for their roll in my job satisfaction.
(Honestly, what everyone’s saying about programming with the TI calculators sounds amazing… I wasn’t alive then, and it’s a pity I never got to have that experience.)
Note also that assembly code is different for each CPU architecture. The TI calculator I had contained a z80 chip, so it was z80 assembler (Motorola assembler?). The x86 assembly language is a more complicated, but probably more useful to learn (can look at any program on your computer). Or maybe you could learn ARM assembly (e.g. this would allow you to write simple programs that blink lights on a Raspberri PI).
> [...] can you recommend anything?
I looked through my bookmarks and found some links you might want to check out:
1. Example of Comparing C to x86 assembly: https://www.youtube.com/watch?v=yOyaJXpAYZQ
2. The assembler project part of nand2tetris computing-from-first-principles course: https://www.nand2tetris.org/project04 I haven't gone thought this course, but I've heard many things about it.
> Note also that assembly code is different for each CPU architecture. The TI calculator I had contained a z80 chip, so it was z80 assembler (Motorola assembler?). The x86 assembly language is a more complicated, but probably more useful to learn (can look at any program on your computer). Or maybe you could learn ARM assembly (e.g. this would allow you to write simple programs that blink lights on a Raspberri PI).
Sure, I understand all this already. I suspect that x86 assembly might be most useful for me, but I also have access to an Arduino, so I might try writing assembly for that as well.
> 1. Example of Comparing C to x86 assembly: https://www.youtube.com/watch?v=yOyaJXpAYZQ
Thank you! Added to my reading list.
> 2. The assembler project part of nand2tetris computing-from-first-principles course: https://www.nand2tetris.org/project04 I haven't gone thought this course, but I've heard many things about it.
As it happens, I’ve already gone through nand2tetris. I can’t say it helped me that much: sure, it’s good for getting a conceptual understanding of how assembly works generally, but it doesn’t give me any idea about e.g. how to write a program for x86 or ARM.
> Linux, where you can actually write programs entirely in assembly because the system call API is stable
I didn’t know this — is it not stable on Windows?
[0] https://tutorials.eeems.ca/ASMin28Days/welcome.html [1] https://www.cemetech.net/
Good points — I’ll save those articles for future reference. Thanks for the recommendations!
I'm making a big assumption that the Python implementation is similar. I don't know this, but where this is a big feature of TI-BASIC, I'd hope it carried forward.
(In fact a bare-membrane keyboard, that was only ever used on extremely-low-specced home computers where only trivial programs would ever be written, arguably provides a better feel than what you'd get from a touchscreen.)
Especially considering the topic of a Python IDE, that seems like an application where predictive text and/or contextual menus could be a huge benefit for many users.
Now, if you could attach a USB keyboard to the calculator, that would be perfect.
On the other hand, getting a text-based REPL that I can quickly enter some commands on is great - that was why I really loved TI-BASIC on my TI-83. In college it made it easy to write a small program, roughly when I needed that program. In one extreme example, my girlfriend and I took ours to the grocery store every week, and used a BASIC app I wrote for meal planning for the week (this was pre-smartphone era).
I'd hope that this is _something_ of an answer to the concern that computing is getting too complicated and detached. Just thinking about the near-ubiquity of the TI-83 when I was in high school, giving kids the ability to code out of their pockets without having to worry about UI mechanics, publishing to an app store, or _threads_ even (AFAIK Android throws exceptions if you do certain things on the main thread), sounds pretty powerful.