3 ms·
I loved my HP calculators (48g and 50g) in college. HP Forth/RPN is so much more intuitive at every step. When you're entering the problem, you solve it the sa
by hajile 4y ago
I loved my HP calculators (48g and 50g) in college. HP Forth/RPN is so much more intuitive at every step.
When you're entering the problem, you solve it the same way you would on a sheet of paper. I always felt this made me understand and appreciate the formulas more. It is also MUCH faster to calculate. Anecdotally, the couple RPN users could generally have the answer while the TI users were still checking their parens. I'd also note that doing the problems step-by-step gives a better intuition for when something seems off as you see the running answer at each stage rather than just the output. I'd also note here that advanced HP calcs included a formula writer that looked WAY better than any TI calculator pre-Nspire if you really do want to use do that (along with a CAS system to operate on those formulas).
HP Forth is where the game really stepped up though. TI-BASIC not only takes quite a few lines to do anything. Worse, you only interact through prompts instead of function call-style syntax. Meanwhile, an RPN program you write looks and behaves exactly like a built-in function and is written the same way you'd do it yourself.
An easy example I used rather frequently when in school is the inverse of inverses in circuits class. If you want to find the equivalent resistance of 4 resistors on a TI calculator, you'll type in `1/(1/2+1/3+1/4+1/5)`. On raw RPN, you'd type `2 inv 3 inv 4 inv 5 inv + + + inv`. There's a moderate savings of 4 keystrokes here (I didn't add all the `enter` needed for each number which is 4 in total) and a further savings that is harder to quantify because you are just mashing the `+` button a bunch of times.
The real savings is in a forth "macro". Create a program called `rinv` and have it rely on two numbers being on the stack. Programming is as simple as `inv swap inv + inv` which is the exact same way you'd do it by hand (for 2 entries already on the stack). This will be available in the custom function bar at the top, so it's ergonomic to reach too. Suddenly, this tiny program has turned our previous problem into `2 3 4 5 rinv rinv rinv` and we have blown away the TI method in speed. Not only that, but because we see all our raw resistor values in a column, it is much easier to double-check them. It works for any number of resistors as well and because we're just mashing the same button a bunch of times, entry is also sped up (I remember writing a custom version that did 4 numbers at once, but the speedup was miniscule and not worth having to select between the two).
I can already hear someone talking about how TI-BASIC exists. There are a few major disadvantages though. Let's say you want to solve for just 2 entries (the easiest version for the TI). You create your `rinv` program and then write some lines to prompt for the resistor values, then some more lines to do your math on them, then another line to spit the result to the screen. This is its own separate mini-game that has nothing to do with how you'd normally use the calculator.
Using this is also a bad experience. You must find the function menu, scroll to your function, and run it. Then, you must interactively enter your inputs one at a time (made a mistake? too bad). Now it spits out an answer, but that answer is not going to your problem, but to a previous line. This is fine if you just want the resistor value, but not so fine if you want to immediately use that value in your current problem. I'd note that you can use inline function calls on the TI-89 which helps a lot.
It's about this time that you discover you sometimes need 2 inputs, but sometimes you need more than 2. The HP relies on the idea that you can recalculate using the previous resistor value, but reusing values here is not really a thing (who wants to copy/paste 10+ decimal places into the prompt?), so now you have to revisit your mini-game and add a loop and way to check for a non-numeric value. You will also find out that the TI-89 arguments are not optional and must be a fixed number, so solving this puts you right back in unergonomic land again.
In the end, the TI has written lines and lines of code instead of just 4 characters and despite this, it is still slower to use and more subject to entry errors that aren't as obvious.
Once again, you see the iterative learning of the HP vs the "jump to the answer" of the TI. Once I'd understand how a problem was working, I'd write "macros" to solve the repetitive bits allowing me to shift focus from the "how" to the "why". I'll readily admit that I don't use my calculators a whole lot these days, but my college self owes it quite a debt of gratitude.
- noobermin 4y agoWhen it comes to calculating, RPN seems like it be more direct and correct because it is actually what an expression actually means, a series of steps. Algebra tends to abstract that. That said, as a once upon a time (and sometimes still) theorist, familiarity makes working with algebra just easier. You also tend to logically group terms together merely because that's how things are written, with multiplication implicit by writing factors together but having to write out the infix + (or -) out and it makes it easier, in some ways to reason about expression in physical[0] way. For example, you see people doing various expansions, like perturbation theory, and then assigning physical meaning to terms (like linear term is simple harmonic oscillator, quardratic is this non-linearity, and so on in the taylor series). This grouping of terms is totally due to the abstraction infix notation gives you. That said, people get lost in the abstraction and forget it's just steps in a calculation. Forgetting the actual meaning of the notation is where mistakes and confusion about things like convergence and such really stem from (I can flesh out this argument but I'm already rambling here). It also is part of the reason I think that some scientists find programming hard to understand because they are so tied to the mental abstraction of infix notation, whereas infix is literally what happens on a computer anyway, and is thus naturally suited to a programmer's mindset. So there's value to both, I think. It is a shame though that RPN isn't as widely taught or used as it once was. [0] physical in the sense of physics interpretation.
- noobermin 4y agowhereas RPN* is literally what happens on a computer anyway,