Several years ago, the HP 50g model pretty much became my calculating/handheld programming exploration workhorse, finally leaving my longstanding TI-89 (and later TI-89 Titanium) mostly behind. However, the Prime seems to have the current spotlight in the HP world, and even the 50g is rather limited by the compatibility commitment it makes to its dated origins. I've heard very interesting things about the Prime's potential, particularly performance, programming, and graphics. I had been intending to find out more about it for a while but never made much progress because of being buried in other projects. But I didn't want to miss the boat, and finally, because I generally find the Web to be extremely arduous to use and perform detailed research with, I decided that the only way I would really be able to fully answer all of my questions about it would be to simply buy one and try it.

Here are some of my initial thoughts and impressions after playing with it for a few days. This post is sure to be much longer than intended even if I were to spend a dozen hours trying to trim it down--I always have that problem. But if I get lucky, perhaps one or two people out there will find it interesting enough to read a portion of. Wink

Aesthetics and general operation

The styling is pretty nice; I quite like it. The metal keyboard plate is a nice touch, and I like the shape of the buttons. They have a "clicky" feel like the 50g (albeit with a somewhat lighter touch, perhaps due to lessened key travel due to the very slim design). I've never tended to like shiny plastic much, because it always looks awful unless permanently sealed in a case and never touched with bare fingers lest it be permanently marred for life. And it's all over the Prime's casing, right where my fingers are likely to rest. I've never understood why touch screens can't have matte surfaces to reduce glare and hide the smudges that distort the view of the display. Thankfully, I've become a bit less OCD about this kind of thing by this stage of my life, but it's still pretty annoying. If I were still in my teenage years, I'd already be in a straightjacket by now. Razz

I went through the getting-started guide and quickly became fairly familiar with the overall organization and operation. I can't help but feel that user manuals have gotten increasingly terse over the years, but maybe it's a good thing since I find the Prime's interface generally simple and intuitive. But I can't seem to shake the feeling that the uncluttered menus and screens mean there are features missing compared to my older, advanced graphing calculator models, though I can't place my finger on what they might be. Maybe it's just me, or I'm just unused to modern GUI design.

By far one of the best features is the extensive on-calc help. Having a reference for every function and feature is probably one of the best things one could have, and this is the first time I've had a calc that ships with a reasonably complete, instant-access reference built right in. I do sort of wish it were more convenient to casually browse and read through topics in sequence, like a PDF or ebook, instead of having to constantly bounce back to the tree view and manually move the cursor from topic to topic. Also, it's too easy to accidentally exit Help and lose my place, like trying to swipe the screen to scroll and having it somehow decide that I clicked "OK" instead. (Even merely trying to adjust the backlight brightness kicks me out.) It doesn't remember the last topic I was viewing. Ugh.

I had some frustrations with entering things on the Home Screen (in Textbook mode, at least). The UI punishes you severely if you start entering, say, a text string but forget the quotes. Just try adding quotes around the text after the fact. No matter what you try, it won't let you do it properly. The only way to recover seems either to spend lots of time clicking and tapping your way to the copy/paste mode and move the text around, or just give up and retype the whole thing over again. Yuck.

Some things will take some getting used to. There isn't a file system per sé, and after using the 89 and 50g for so many years, it feels rather uncomfortable to have all my notes, programs, or variables dumped into a single global list without any way to hierarchically categorize them.

The Prime is my first calc with an internal rechargeable battery that's not designed to be removed (very often), though I've been acclimated to such a design with other recent electronics I've owned. I haven't had it long enough to know how long it lasts on a charge, but it seems long enough that it won't be an issue, given that plugging into a USB port to charge every day isn't a big hassle--especially compared to physically swapping out and charging the rechargeable AAA batteries in my 50g every few days with heavy usage.

Entry systems

Although RPN entry is an option, it's not really as complete as the 50g's. As far as I know, there's no "undo" (LASTSTACK) function, and that's something that I use extensively on the 50g. I try out a function or formula, see the result, then my muscle memory attempts to revert the stack to try out another operation on the original arguments, but oops! The Prime doesn't have that. Darn.

It also feels like RPN entry is kind of "foreign" and not universally well-understood by all aspects of the interface. Even with RPN mode selected, the Symbolic view seems to assume I want to enter graph equations in algebraic fashion, yet keys like SIN fail to paste in the proper "SIN()" syntax despite pasting the algebraic single-quote delimiters. It took me a while to figure out how to get it to understand "'SIN X'" because it wasn't clear that the parentheses were required.

To be fair, though, algebraic mode conversely also feels "foreign" and wonky in many ways on the 50g, while RPN feels like the "native" format. (Certain 50g commands and functions don't behave particularly well in algebraic mode, but everything seems to speak perfect, fluent RPN.) In this case, the Prime seems to be natively an algebraic- or textbook-entry system.

I'm not as bothered about the programming language not being RPN. While RPN-style programming has been a lot of fun for me, and I find RPL's internal design very fascinating and ingenious, RPL code tends not to be very easy to read or maintain without a ton of commenting, I feel. However, one nice thing about RPL is the keystroke-programming model, where creating simple programs to automate common tasks is essentially like recording keyboard macros. The Prime's "normal" programming misses out on this, which I always thought was a cool feature.

Graphing

Graphing is, in a couple of words, quite awesome. Being able to instantly pan around in any direction and zoom in and out on the fly really facilitates graph exploration. But what really blew me away was the Advanced Graphing app and its gallery. It's been a long time since I've felt the excitement and sense of exploration that I did years ago when I was little and got my first graphing calculators. It's unfortunate the Prime doesn't ship with a 3-D graphing app. The long plotting time and difficulty my mind had parsing the muddy jumble of pixelated, monochrome wireframe lines was always kind of a damper on the previous calculators.

While the Prime is generally reasonably easy for me to figure out, I ran into a problem with Advanced Graphing. There was an example with equations using gcd(), and I decided to try replacing all occurrences of the gcd function with lcm to observe the result. All I got for my trouble was an "Invalid Object" error (and annoyingly, a "bad input" yellow "!" sign even when tapping a valid soft key, of which the only one was "OK").

"Invalid object"? What on earth does that mean? That's one of the most unhelpful, unclear error messages I've ever seen on a calculator. All I did was replace a function with another related function that has virtually identical syntax. Are there some arbitrary, undocumented rules of which functions are allowed in graphing or something? This is one aspect where the software usability needs to be improved.

After some extensive searching, I found a random forum thread that suggested that apparently, there are indeed certain functions that can't be used in Advanced Graphing. The Prime OS certainly didn't do an adequate job of actually communicating this fact to me. This experience was pretty frustrating.

Programming

This is where things really get interesting. My experience is very limited so far, but in my brief experiments, the execution speed indeed seems pretty impressive. Reading through the available programming functions really excites me to the possibilities.

The programming model is definitely something new to me: "regular" programs vs. apps. The "apps" concept is pretty interesting, as is the concept of binding persistent app-local variables and files. In fact, this model appears to be a good fit for the sorts of programs I want to write. There are still some things I don't fully understand yet, like the detailed mechanics of extending the built-in apps. If one wanted to make a brand new type of graphing app like one of the built-in ones, for instance, is it really possible to selectively modify aspects of how an existing app's views work? Unless I'm missing something, it appears the only possibility is to completely replace the entire view with new code, forcing the programmer to replicate the entire stock functionality from scratch (even if significant portions of it would remain unchanged), assuming this is practical with the Prime's programming language.

One thing I don't like, though, is the lack of a universal, consistent datatype metaphor. The 49/50g line uses an "everything is an object" paradigm, where every single type of data in the system is a first-class object that can be placed on the stack, in a variable, in a container (a list or directory, for instance), etc.--this includes graphics, fonts, programs, directories themselves, even pointers to system ROM routines. This isn't just incredibly powerful and flexible, it makes programming easier to learn and routines easier to implement, in my opinion, because it means that all objects can generally be managed and stored in the same way, no matter what type of data they represent.

In contrast, the Prime has all kinds of "special" datatypes that don't follow the usual rules, such as GROBs (graphics objects). I tried storing a GROB into a variable for later use on the Prime, and it initially appeared to work. As it turns out, though, all this does is silently store a reference to the original GROB in the variable, not a copy, and there are only ten GROB "variables" which get destroyed after a reboot (or so the manual says). I feel that having special cases and "gotchas" like this make programming, sometimes even just casual use, unnecessarily complex and confusing.

Programming toolkit

The debugger is a great idea in principle, though when I tried to use it, I found that as soon as a runtime error occurs in a program, I'm immediately dumped out of it, without even being allowed to investigate the program state at the time of the error. Isn't that sort of the whole point of a good debugger? I feel like that diminishes its usefulness quite a bit.

The biggest overall disappointment to me with the Prime right now is the program editor. I've been spoiled by the 50g's editor (which can be extensively enhanced with SysRPL programs in addition to already being pretty capable out of the box). The Prime's editor in comparison seems really lacking in functionality. There's no convenient menu to jump to a defined function/subroutine, no search and replace, no key shortcut that I could find for doing something as basic as clearing a line of code, and the selection/copy/paste menu is a bit of a pain to get to. It doesn't even stay open after it's used, either, making it a huge pain to move many blocks of code around. (Swiping the screen to select doesn't really count as a usable shortcut when the text characters are barely a fraction of the size of my fingertip.) There's a good reason the 50g and TI-89 were given dedicated keys for selection and clipboard operations. However, I do like the Prime's multi-level clipboard history.

The editor is also missing undo functionality. The 50g lacked this, too, and I hated it. This day and age of modern software, basic undo of at least a few levels should be considered expected core functionality, not an optional extra.

While it may be just because I'm not used to it yet, I find the keyboard layout rather aggravating as well. Again, perhaps I was spoiled by the 50g: While in alpha-lock mode, I can type letters and numbers and most common symbols at the same time. It's not as nice on the Prime. Especially frustrating is that the initial mode is uppercase alpha-lock (even though lowercase is far more common in typical text) and that the space key becomes an underscore key in lowercase-alpha mode. Argh! Typing text shouldn't have to be this painful, spaces even less so.

The default key layout also doesn't seem to suit the programming language optimally in some respects. The very common ":=" assignment syntax, for instance, is particularly guilty of being unergonomic, requiring two nonadjacent keys modified by two different shift keys (or just one, of course, depending on whether alpha-lock is already on, making it even harder to key correctly). At the moment, I really do find entering that token a chore.

To be honest, though, quite a lot of my frustration probably comes simply from my painful entry speed due to not being familiar with the locations of the keys yet, which isn't the Prime's fault. Not to mention, I haven't even explored the user keyboard function yet (despite having crafting an entire custom key layout using this feature on my 50g that I leave enabled almost 100% of the time). So perhaps this, along with giving my muscle memory enough time to adapt, will in time significantly alleviate the apparent keying deficiencies.

Conclusion

I absolutely intend to explore the Prime's programming capabilities. At last, it appears I can write and share some of the games and other applications I've always dreamed of developing on a portable device without being hampered by severe performance and memory limitations and expending significant development time and effort trying to circumvent them before being able to move forward. And with color graphics, even!

But I'm not sure at this point that the Prime will ever completely replace my 50g, especially for interactive math or algorithmic exploration. There's something about the interface, functionality, and keystoke-programming of the 50g UI that appeals to me in a way that seemingly isn't easily replicated with a "modern, user-friendly, for-the-masses" interface. Something that just makes me feel efficient, able to do more with fewer keystrokes, and with minimal muss and fuss. Though perhaps it's also bias from the fact that I've spent enough years with it to travel up the fairly steep learning curve, making it very familiar and comfortable, whereas it will be a long time before I've fully come to grips with the Prime and its quirks.

So I won't be surprised if I find myself sitting down in the near future with both the Prime and the 50g side by side, perhaps using the 50g to work out an expression or algorithm for use in a program I'm developing on the Prime!
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement