|I think RPL is like a "leisure suit" (long)|
Message #22 Posted by Karl Schneider on 10 Jan 2004, 9:16 p.m.,
in response to message #1 by Walter
Forum readers --
Now that I have your attention, let me explain...
Remember the leisure suits of the mid-70's? Made of thick, coarse polyester with wide lapels and leg openings, they were neither comfortable casual wear nor were they good-looking suits. "Neither here nor there" is the English-language colloquial expression to describe something that is an ineffective compromise of two different things.
And so it is with RPL, in my opinion. Perhaps conceived as a means of adding computer-style structure to the broad and advanced capabilities of these next-generation calculators for the '90s, HP succeeded in making simple tasks difficult, and imposing a misguided consistency in place of intuitive use.
In short, RPL is "neither here nor there" -- neither a high-level computer language nor an efficient system for performing handheld-calculator tasks.
This "misguided consistency" I mention is manifested in the uniform postfix-notation that requires all input arguments for all calculator functions to be specified in advance. This approach -- the essence of RPN -- makes perfect sense for mathematical functions.
However, it is often counterintuitive for device-control functions, such as STO/RCL and FIX/SCI/ENG. On the RPN calculators, these functions (as well as LBL/GTO/GSB/XEQ) require an appended identifier, generally numerical, to complete the command. On the RPL units, the input identifier must be specified beforehand, in the interest of uniformity.
Which is easier and more intuitive:
"FIX 5" or "5 (ENTER) FIX"?
"25.4 STO 4" or "25.4 (ENTER) 'R4' STO"?
FIX/SCI/ENG are also buried in menus or must be spelled out on the RPL calcs, but are printed on the keyboard on most RPN calcs.
As for RPL programming, compare a sophisticated RPL statement with an equivalent line in C, Basic, Fortran, or any other high-level language:
"IF (A .LT. B) A = A + 360.0" (Fortran '77)
"<< IF A B < THEN A 360 + 'A' STO END >>" (approximate RPL syntax)
I apologize if the the above RPL program snippet isn't quite right, but I don't have the inclination to debug it.
While complex RPN programs can be difficult to follow, at least they are prepared they way they would be approached interactively. The special constructs for RPN programming are patterned after Fortran -- the original high-level number-crunching language, predominant when computers were actually used for computing:
- Numerical labels are like statement labels.
- Alphanumeric labels are like entry points.
- GTO and GSB/XEQ are like GOTO and CALL.
- Flags are like logical variables.
RPL, by contrast, seems to be an un-nautral melding of Object-Oriented Programming (OOP) with the spirit of RPN.
Now, you might ask, "Isn't this a 17-year-old debate, going back to the introduction of the HP-28C in 1986?". Maybe so, but HP/Kinpo is continuing at least two RPL models, while the sole RPN scientific model has yet to become a commercial reality.
(BTW, I have many HP LCD-based RPN models and three RPL-models: 28C (two), a 48G, and a 49G. I also have a few AOS models from HP and Casio.)
Comments? I'm sure that there'll be some...
Edited: 10 Jan 2004, 9:51 p.m.