|Re: the future of programmable calculators?|
Message #5 Posted by David Hayden on 27 Oct 2009, 5:35 p.m.,
in response to message #1 by Herbert Crepaz (UK)
I looked through the archives going back to 2002 and didn't see much when searching for "future." I apologize if this has been covered earlier than that or under different topics.
I think there are (at least) two type of programmers that HP needs to think about: end users who are writing quick programs of a few lines, and more experienced programmers who are writing applications and such. End users need the development environment on the calculator, but for more serious code, I think you can offload all the development onto a PC.
In other words, I wouldn't put the development library in flash memory on the calculator. Let all complex development occur on PCs. Most of it probably occurs there now anyway.
Regarding speed, if I was HP, I'd be working hard to convert the 48/49/50 Saturn assembly code to native ARM and port the RPL to a 32 bit address, byte addressable environment (vs the 20 bit address, nibble addressable environment of the Saturn). This would give a huge speed boost over the TI's. As an aside, does anyone know how much of the ROMs are Saturn assembly code and how much is RPL?
Finally, I wish someone would create an RPL optimizer. I believe that most user RPL code could be greatly sped up by static analysis of the stack. For example, if you know that levels 1 and 2 of the stack contain real numbers and the next instruction is "+", then you can replace it with %+, thus avoiding lots of error checking. Really, I wish I had the time to do this myself.
Although not specifically related to programmable calculators, I think HP should offer some of the calculators in a different form factor. Nearly all of their calculators today are about 7"x3"x0.5". The 12C's form factor is quite popular and it fits your pocket. I personally liked by 29C because you could hold it in one hand and easily reach all the keys with your thumb, making for very handy one-handed operation.