Popular graphing calculators for education, such as the TI-83/84/89 are all but mandatory for high school mathematics. They are 'programmable' in the sense one can write simple programs for them in 'TI-BASIC', a watered down version of BASIC for the graphing calculator. Don't get me wrong, it's great
for most math stuff--but it has the potential for better applications.

The other way one can program it is Assembly code for the calculator, from which I hear from seasoned engineers is a blast. Really.

Cellular phones are increasingly using Java--why? Platform independence. What runs on one phone runs on all the others.

Why can't this also be applied to Graphing calculators? Having, quite literally, a small computer at your disposal has a lot of potential for a student: keeping a personal gradebook, notes, phonebook--general PDA stuff. Java would add capability and simplicity to the calculator without trying to squeeze it into BASIC, or Assembly code.

I've had my TI-85 since high school - it did a great shift throughout a degree in Electronic (so lots of complex numbers, vectors, matrices, differential equations etc.). Never needed, nor felt that I missed, programming capabilities. Maybe I was just short sighted.