-
Notifications
You must be signed in to change notification settings - Fork 16
Home
WP43 and its derivative, C47 are two projects to implement a high-end RPN calculator on the DM42. In that sense, they are similar to DB48X. However, they are RPN, DB48X is RPL. You can think of DB48X and WP43/C47 as similar in the sense that they try to innovate and push the limits of the RPN and RPL paradigms to their limit, exploring novel ideas regarding calculator user interface.
As the author of DB48X, I am obviously biased, but my point of view is that there is a reason HP moved beyond RPN. RPL is a real programming language, very close to Forth conceptually, but with a very large dictionary and many data types as opposed to the handful in Forth. It's extensible, making it quite easy to add your own "keywords" that behave like any built-in construct. As a matter of fact, RPL initially was an internal language to facilitate the development of calculator ROMs, and this shows on HP calculators with the command "SYSEVAL" that can be used to invoke ROM code.
For something with as many features as WP43/C47 or DB48X, I think that the RPL approach ends up being easier to use. But that's the way I perceive it, and this is most likely a matter of taste. In any case, I tried as much as possible to make DB48X as "discoverable" as possible, whereas I believe that WP43/C47 requires someone to read the manual (which is truly a work of art).
Feature-wise, here are a few areas where I believe DB48X currently has an edge:
- Built-in markdown-based help with an exact copy available online, featuring detailed reference for most (long-term all) commands.
- Variable precision arithmetic for real numbers (e.g. compute sin(3) with 100 digits), higher limit for integers (above 1000 digits, e.g. 500!)
- Binary number arithmetic above 64 bit, and in any base up to 36. (And I don't understand why numbers change sign with base on C47)
- Ability to use hardware-accelerated floating-point for speed
- Handling of units, except for special cases such as angles, date or time where C47 does at least as well
- Mix and match operations, e.g. computations mixing polar and rectangular, fractions and decimal, angles in various units, algebraic and RPN, and so on.
- Superior programming model, e.g. ability for programs to generate programs (homoiconicity), programmable parsing ("STR->"), structured control flow (e.g. for, while and until loops, if-then-else, iferr, and so on).
- RPL-inherited variable management, with names, directory, local names, and so on. Note that
- DB48X has configurable support for numbered variables to make it easier to port programs from RPN calculators.
- WP43/C47 supports (and encourages) named variables
- RPL-inherited "no limits" approach to text, as opposed to 196 characters on WP43/C47 with HP41-style "register-oriented" text features.
- Support for equations and algebraic expressions, including ability to build expressions using stack operations (e.g. "X 10 " builds equation "X10"). WP43/C47 has some limited support for equations, but they are a "distinct entity" in the calculator, usable only for plotting, integrating and root-finding.
- Symbolic operations, including on complex number or in matrices
- Graphics (I believe that at this time, C47 only draws curves for statistical curve fitting, but I may be wrong).
- Muscle memory relative to the DM42 or HP42 (one exception was swapping exp and log10).
- Large level of source code compatibility with existing HP calculators. My objective is that you can take most non-system RPL programs and expect it to work the same way. I went out of my way to implement many compatibility features, from command spelling (You can type DUP in a program, and choose if the calculator shows it as DUP, Dup, dup or Duplicate)
- Command-line history, Undo and text editing capabilities (copy/paste, search and replace)
- Customizable units and constants, e.g. to allow currency conversions
- Integration of the flash disk for "STO", "RCL" or statistics, e.g.
3 "FOO.TXT" STO
creates a text file calledDATA/FOO.TXT
that contains the text3
. - Command catalog with auto-completion
- Optimized alphanumeric entry
- Subjectively, it feels a bit faster and snappier
Here is where I believe WP43/C47 has the edge (but of course I would know much less in that respect):
- Larger team and community, more third party documentation and videos, etc (I have yet to see a third-party video of DB48X)
- User manual (the project started with Walter Bonin's manual), with tons of really interesting examples of how this or that feature is used lifted from older HP manuals. I would very much like to borrow this idea.
- Amount of information in the status bar (DB48X is closer to DM42 in that respect)
- Per-country localization support (I think DB48X support most localization features, but does not have things like SETJPN), something I am likely to steal some day.
- More feature-complete in some areas like probabilities or statistics, or advanced mathematical functions (Bessel function, etc), eigenvalues, etc
- Curve fitting application, which is really rich and takes good advantage of the screen real estate. Ultimately, I expect the DB48X HP48-style plotting application to prove at least as good, but for the moment it's not implemented on DB48X.
- Matrix editing (an HP-48SX like matrix writer is not implemented yet on DB48X, so you need to enter matrices with brackets)
- Keyboard and menu customization
- Alpha entry for special characters (I expect the future characters menu to be at least as usable, but for now C47 has a clear edge to enter Greek text)