Re: Serious discussion regarding soft menus Message #14 Posted by Jonathan Cameron on 4 Oct 2013, 11:49 p.m., in response to message #1 by Tim Wessman
I've been enjoying this discussion. I think the new Prime is great and it is fun adapting to it. I come from the more traditional background of the HP-67 and 28s. I missed the 48-50 generations, but I had experience with early versions of user soft-keys, directories, etc with the 28s. So it has taken me a little while to adjust my thinking.
I think there are two separate but related issues: (1) user-definable soft-keys, and (2) a hierarchical directory structure where soft-keys, etc, are automatically set up on each level in the directory structure based on the definitions at that level.
Regarding 1 - soft-keys: I like the idea of having user-defined soft keys available. I think having user-defined functions available via a button on the screen essentially treats the user functions as first class functions available in the same way that normal (physical) un-shifted keys. I think this capability (in one form or another) is really important for the Prime to be treated as a great calculator for professionals. However, I also agree that since they are just buttons drawn on the screen, I have no problem drawing them anywhere on the screen as long as they could be activated with single touch. We need more capabilities to do that.
I noticed that there is a DRAWMENU() function that I've played around with a bit, so it seems like someone is thinking that users may eventually be able to define semi-classic soft-keys. What is missing is a simple way to attach functions to be invoked with the soft-keys are pressed.
On the other hand, I think a lot of the types of functionality that we wrote into old user soft-key libraries can be done with the new and powerful Apps functionality of the Prime. But I'm not convinced that all user applications will fit so cleanly into the Apps concepts with its buttons and views (as implemented on the Prime). Even if Apps are the answer to all user applications, they will probably need soft-keys of their own in many cases, and the tools for users to define soft-keys for their Apps is currently mostly missing.
Regarding 2 - User directories: I am a bit concerned about this. My current understanding of the Prime is that most everything in terms of functions and variables is in the global namespace (for the most part, ignoring differences between Home and CAS views). And yes, I'm aware that Apps have their own namespaces, which may reduce the validity of some of my arguments.
One the the great features of the hierarchical directories is that scope of your functions and variables was controlled in clear, predictable way. If you wanted things to be globally available, you put them at the top of your directories. But if you had functions that were specific to a particular problem, you could put them deeper in the directories without worrying about polluting the global namespace. I do not see anything quite like that in the Prime (other than the App namespaces, which I'm not yet convinced will be enough).
The evolution of computer science in the last few decades has made it clear that (for the most part) having all of your functions or data in a global namespace will eventually lead to trouble. I think the prime needs some way of partitioning user functions and data (like hierarchical user directories!). I like the LOCAL declaration in programs/functions and it is a valuable addition to PPL that will help with this issue. Note that in a lot of more modern languages (eg, Python and Modula-2), data is modularized and imported as needed and there is very little global data. It might be a bit much to incorporate some of those features into PPL, but it is worth thinking about.
I really appreciate the thought and work that has gone into the design of the Prime and I look forward to its evolution in the coming months and years!
-Jonathan
Edited: 4 Oct 2013, 11:58 p.m.
|