On 30-Jan-08, at 6:26 PM, itsme213 wrote: > > "Francisco Garau" <[hidden email]> wrote >> I hope the screenshot clarifies what I am trying to say. > > Absolutely, thank you. Even better would be to have all the torn-off > bits > available in one "working context" (such as a window) that you can > minimize, > maximize, close, etc. as one unit. Traditional file-based split editor > windows are not the only alternative to N open browsers. It sounds to me like you're talking about being able to drag and drop from one browser to another. Is that right? > Perhaps the new OB framework makes these more doable? Possibly. Colin |
In reply to this post by Zulq Alam-2
On Wed, 30 Jan 2008 09:18:17 -0800, Zulq Alam <[hidden email]> wrote:
> Perhaps the Whisker browser would be a good place to start. > > http://www.mindspring.com/~dway/smalltalk/whisker.html > > Not sure about the status of the project. That's actually a fairly horrifying screenshot. I installed it and it actually looks pretty clean. Fussy though. DNUs in my current image. OS/2 used to have this grand concept of a workspace. I have missed it in every environment I've used since then. "Show me everything I need and only what I need...." ===Blake=== |
In reply to this post by timrowledge
On Jan 31, 2008 1:13 AM, tim Rowledge <[hidden email]> wrote:
> > That's exactly where having many browsers open at once is a big win. I > typically have 5 - 10 browsers open. A couple where I might be in the > midst of editing, a couple open on related methods, some available for > looking up stuff. I've been doing it that way since a 640*400 screen > was a luxury. Why add the complication of window splitting when it is > merely a poor attempt at what we already have? This is how I work too. And the new enhancements with the task switching makes working this way even more pleasant/efficient. |
In reply to this post by Igor Stasenko
On Jan 30, 2008 11:39 PM, Igor Stasenko <[hidden email]> wrote:
> What benefits i see, comparing to single-method view. > > You can scroll to other method using keys, instead click-click , open > new browser window and click, totally losing your focus. That has nothing to do with how many methods are in the text area and everything to do with the browser implementation. > You can do a full-text search on listing. I don't understand this one. Do you mean constrain searches to less then "the whole image"? > With some shortcuts it's easy to make actions like moving caret to > different method, simply by typing first letters of it's selector. And why would this be any harder to do in a single method view? Think about emacs for example. As many features as one cares to add and all accessible without removing your hands from the keyboard. I can envision doing a Ctrl+M (m for method) popping up a little text box where I type in the method I want to zoom to. And if we could make the browser project aware it would only search for methods in the current project. > - more area for text editing/view. Yes, most of the methods are too > short, that you can say it's not worth it, but consider when you can > see multiple methods in single big window, But why do you want to see multiple methods in a single window? Do you want to switch quickly? There are potentially more efficient ways then the overly simplified "just stick it all in the same window like notepad". Do you want to compare one method with another? That sounds like a special feature that should have a special button and keyboard sequence. The feature could pop up a special window with the highlighting optimized for diffing. >it can be better than using > multiple browser windows with own set of controls (and which is 99% > will overlap each other). I don't understand this complaint. In current Squeak a code browser is relatively quick. When I work I'm constantly popping up new browsers to check something, leaving them open sometimes to "bookmark", etc. In the Java or MS language world you couldn't do this because those IDE's are too expensive resource-wise (but even in those environments I find myself opening a second browser on the same project to temporarily get functionality I have in Squeak out-of-box). > - edit window splitting , when you need to code something, while > referring to other methods/sources. Another feature. The "window tearing" shown below seemed like a cool idea. Especially if we could put these torn off methods onto a "refrigerator door" morph so we can stick 'em on the door and they are all grouped as one and can be manipulated as one unit, etc. > All i seek, is more convenience: less clicking and fuzzy typing, more > coding and analyzing :) As is mine. |
In reply to this post by Sophie424
On Jan 31, 2008 12:30 AM, itsme213 <[hidden email]> wrote:
> "Igor Stasenko" <[hidden email]> wrote in message > > > - edit window splitting , when you need to code something, while > > referring to other methods/sources. > > This is one good scenario of use where todays browser is not efficient. > > (It happens to be exacerbated by the tool requiring you to Accept or > Cancel -- so you end up clicking your way into another browser window -- but > it would be awkward even otherwise). > > - Sophie Btw, there is a package (or maybe one of the browsers) that lets you switch to other methods while the current one is not "accepted", so you can just accept them when you want to. |
In reply to this post by Blake-5
On Jan 31, 2008 3:58 AM, Blake <[hidden email]> wrote:
> > You say this almost like it's a bad thing. It's only bad when people do > (a), and if they do (a) anyway, moving the brick wall up so that they hit > it right at the beginning makes it more likely that they're going to think > that it sucks, because there's not enough time for anything new to > insinuate itself in to their thought processes. I think doing (a) is a bad thing. Anyone can do (a) to a new technology (I know I have, even to Smalltalk once upon a time), and to me that means they are not ready to look at it. Moving the wall only changes what they complain about. If one is too accommodating one ends up changing Smalltalk to be source file based instead of image based so newbies understand what's going on better. > I love Smalltalk: It's informed my programming for 15 years now. But it > does not suit the way I work at all. I write tiny little routines and > objects in all the languages I work in (even in procedural languages) but > I can write a lot more a lot quicker if I don't have to take my hands off > the keyboard. That sounds to me like an indication that the Smalltalk browser needs some of the keyboard shortcuts your other environments have. I suppose you achieve some of this by simply dumping a bunch of methods in one text area, but wouldn't it be better to attack the root of the problem? |
In reply to this post by Sophie424
On Jan 31, 2008, at 3:26 , itsme213 wrote: > > "Francisco Garau" <[hidden email]> wrote >> I hope the screenshot clarifies what I am trying to say. > > Absolutely, thank you. Even better would be to have all the torn- > off bits > available in one "working context" (such as a window) that you can > minimize, > maximize, close, etc. as one unit. Traditional file-based split editor > windows are not the only alternative to N open browsers. That is pretty much exactly what the Whisker browser does. It has been mentioned previously in this thread. Try it. - Bert - |
In reply to this post by Jason Johnson-5
On Wed, 30 Jan 2008 22:59:54 -0800, Jason Johnson
<[hidden email]> wrote: > On Jan 31, 2008 3:58 AM, Blake <[hidden email]> wrote: >> >> You say this almost like it's a bad thing. It's only bad when >> people do (a), and if they do (a) anyway, > I think doing (a) is a bad thing. Anyone can do (a) to a new > technology (I know I have, even to Smalltalk once upon a time), and to Indeed, we agree. > me that means they are not ready to look at it. Moving the wall only > changes what they complain about. Also agreed. > If one is too accommodating one > ends up changing Smalltalk to be source file based instead of image > based so newbies understand what's going on better. Squeak isn't source file based, and I doubt any form of presentation could make it so. (Though, I guess maybe if you had the Smalltalk OS, it would probably host something like a source-file based scripting system. Or something.<s>) I'm talking presentation and navigation. And it's come up as I've wended my way through the Laser Game tutorial. It actually inspired me to try to come up with a modification that would make building tutorials a lot clearer and easier. > That sounds to me like an indication that the Smalltalk browser needs > some of the keyboard shortcuts your other environments have. I > suppose you achieve some of this by simply dumping a bunch of methods > in one text area, but wouldn't it be better to attack the root of the > problem? Well, look, I'm not one to turn down hot keys. I think Bert and I must operate in very different ways, and it wouldn't surprise me to find that there are many different styles of coding. (Or maybe there are just two: Bert's and mine.<s>) But the "root of the problem" is visual as well as tactile. It's all very well to have all the source code available all the time, but much of the time, I don't want to have to care. And the remainder of the time, I don't want to see all of it, all the time. I want to see what =I= am working on. More importantly, when I'm teaching, I want students to see =THEIR= code most of the time: I'd like to be able set it up so that the debugger wouldn't go in to the base classes unless asked, because that stuff can be very confusing to a beginner. One of the most important lessons in programming is that, when you're programming and there's a bug, it's in your own code. Not in the library, not in the compiler, not in the operating system. (If that's not the case, you need a new library/compiler/OS.) I love the encouragement to explore in Smalltalk--I just want to be able to turn it off sometimes. One nice thing about the debugging stack is that it allows you to flip through the code very quickly. There's a clarity that's not available in the usual object soup. I recall a study (by IBM, I think) where the amount of code one could see at once was postiively related to productivity. (And yet, I'm the only coder I know with a propensity for conserving vertical space.) I do know that if I'm in method A and it calls method B, and method B is right there? I'm golden. As a corrolary to "the problem is in your code", there's also, "the problem is mostly in the code you just changed". I could see a browser where the methods highlighted their latest changes, like a mini-diff--something also good for pedagogical purposes. None of this is actually opposed to the Smalltalk philosophy, which encourages the writing of small methods precisely because they're easy to understand. Great. Now let me see more of those little methods, without the real estate needed to make every browser window as effective at browsing the entire universe as it is browsing my code. By the way, it was my experience with the laser game tutorial that brought a lot of this home (both doing it and watching others). For example, it doesn't leap out at you from a screenshot of a method, whether that method is class- or instance- side. It was always something extra to check--whether that "class" button was a slightly darker shade of green. ===Blake=== |
On Jan 31, 2008, at 12:27 , Blake wrote: > On Wed, 30 Jan 2008 22:59:54 -0800, Jason Johnson <jason.johnson. > [hidden email]> wrote: > >> On Jan 31, 2008 3:58 AM, Blake <[hidden email]> wrote: >>> >>> You say this almost like it's a bad thing. It's only bad >>> when people do (a), and if they do (a) anyway, > >> I think doing (a) is a bad thing. Anyone can do (a) to a new >> technology (I know I have, even to Smalltalk once upon a time), >> and to > > Indeed, we agree. > >> me that means they are not ready to look at it. Moving the wall only >> changes what they complain about. > > Also agreed. > >> If one is too accommodating one >> ends up changing Smalltalk to be source file based instead of image >> based so newbies understand what's going on better. > > Squeak isn't source file based, and I doubt any form of > presentation could make it so. (Though, I guess maybe if you had > the Smalltalk OS, it would probably host something like a source- > file based scripting system. Or something.<s>) > > I'm talking presentation and navigation. And it's come up as I've > wended my way through the Laser Game tutorial. It actually inspired > me to try to come up with a modification that would make building > tutorials a lot clearer and easier. > >> That sounds to me like an indication that the Smalltalk browser needs >> some of the keyboard shortcuts your other environments have. I >> suppose you achieve some of this by simply dumping a bunch of methods >> in one text area, but wouldn't it be better to attack the root of the >> problem? > > Well, look, I'm not one to turn down hot keys. I think Bert and I > must operate in very different ways, and it wouldn't surprise me to > find that there are many different styles of coding. (Or maybe > there are just two: Bert's and mine.<s>) I'm not entirely sure how my name got dragged into this conversation - but I do agree with the rest of your post. Setting up a context that lets you focus on what you're currently working on is helpful. There should be a browser that just shows your "working set", like a couple of packages that make up your application. I used such a browser framework 10 years ago (Application Management Browser IIRC) and it worked nicely, basically each tool had a little checkbox switching the filter to your current app on and off. Very handy. What I find is that experienced Smalltalkers blend out those distractions mentally, they only "see" the interesting parts. For them it's easy to spot the one interesting sender in a list of a hundred methods, or the stack frame in a debugger 10 places from the top where the error actually happened. But I also see Newbies being overwhelmed by the lack of separation between the system and their code. So improved tools are welcome :) - Bert - > But the "root of the problem" is visual as well as tactile. It's > all very well to have all the source code available all the time, > but much of the time, I don't want to have to care. And the > remainder of the time, I don't want to see all of it, all the time. > I want to see what =I= am working on. More importantly, when I'm > teaching, I want students to see =THEIR= code most of the time: I'd > like to be able set it up so that the debugger wouldn't go in to > the base classes unless asked, because that stuff can be very > confusing to a beginner. > > One of the most important lessons in programming is that, when > you're programming and there's a bug, it's in your own code. Not in > the library, not in the compiler, not in the operating system. (If > that's not the case, you need a new library/compiler/OS.) I love > the encouragement to explore in Smalltalk--I just want to be able > to turn it off sometimes. > > One nice thing about the debugging stack is that it allows you to > flip through the code very quickly. There's a clarity that's not > available in the usual object soup. > > I recall a study (by IBM, I think) where the amount of code one > could see at once was postiively related to productivity. (And yet, > I'm the only coder I know with a propensity for conserving vertical > space.) I do know that if I'm in method A and it calls method B, > and method B is right there? I'm golden. As a corrolary to "the > problem is in your code", there's also, "the problem is mostly in > the code you just changed". I could see a browser where the methods > highlighted their latest changes, like a mini-diff--something also > good for pedagogical purposes. > > None of this is actually opposed to the Smalltalk philosophy, which > encourages the writing of small methods precisely because they're > easy to understand. Great. Now let me see more of those little > methods, without the real estate needed to make every browser > window as effective at browsing the entire universe as it is > browsing my code. > > By the way, it was my experience with the laser game tutorial that > brought a lot of this home (both doing it and watching others). For > example, it doesn't leap out at you from a screenshot of a method, > whether that method is class- or instance- side. It was always > something extra to check--whether that "class" button was a > slightly darker shade of green. > > ===Blake=== > |
In reply to this post by Francisco Garau-2
On 31/01/2008, Francisco Garau <[hidden email]> wrote:
> Hi, > > In the old MorphicWrappers package you could "tear-off" a method or a class > from the browser. They were a mixture of a bookmark (because they were > always there using very little screen space) and a browser (because you > could edit the code there). > > The MorphicWrapper for a class (seen as the little orange boxes in the > screenshot) also acted as bookmarks. You would normally put several classes > on the desktop, send the message "browse" to some of them and get the usual > browser. Once you identified the interesting method, tear it off and leave > it on the desktop. I would accomodate these methods from different classes > in a similar order as they appear in the debugger. I loved that. > > I hope the screenshot clarifies what I am trying to say. > > Cheers, > Francisco > Yes, tearing-off it's very useful for saving desktop space. It would be good to have a 'bag' window, where i can drag and drop different methods, so they will be kept in single window with a single scrollbar. I'm against 'many windows' work style. Because you spending too much time of managing them on screen. For example, in screenshot you taken, when i want to tear-off 3rd method, and place it on desktop to see all 3 methods, i'll need to spend time dragging/resizing windows. And if you open more than 10 browser windows, they simply can't fit on the screen, making a mess of your desktop. In most cases, i found that opening new browser window with interesting method/class is faster than searching all open windows to get back to that class/method. It's because browser window designed as standalone unit of information, and without any means of having navigation between them. About browser window contents: let's analyze for a moment, how much time we spending interacting with different lists while working: - package list mainly it's used when i setting up my work space. I going to find package i'm currently working on and then clicking way through it to find interesting piece of code/class. My POV, showing a list of packages in each browser window is a waste of screen space. In regular work it's used very rarely, that it's not worth of space it's occupying. - classes list. Again, when i focused on something, i need to refer only to couple of classes (in most cases these classes located in different packages/categories). So, again, it would be better in having own, custom class list, which i can populate and browse them when i need to, instead of having list of all classes , where i need only couple of them from each category. - method categories and method lists. These list are used most frequently, and i think only these lists worth occupied space. And finally, all these 4 lists can be merged in single tree view and showed as separate window, so you interact with it only when you need it, leaving the rest of screen space free to other tasks. -- Best regards, Igor Stasenko AKA sig. |
As follow-up, how would you like an idea in having a 'working-set'
window, where i can add and manage packages/classes/methods. So i'm setting up my work once, by placing all i need into single list/treeview. Then to get to what i need is just a single click away. Also, for my task, i would need only single of such window on desktop, so i can arrange it to be kept at left/right side of screen to be always visible and accessible. Clicking at class/method will open new browser window (or navigate to already opened window). Also, with such window, i don't need to use classes/packages lists anymore - because i'm already having all what i need before my eyes. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Blake-5
|
In reply to this post by Bert Freudenberg
On Thu, 31 Jan 2008 12:59:55 +0100, Bert Freudenberg <[hidden email]>
wrote: > I'm not entirely sure how my name got dragged into this conversation > - but I do agree with the rest of your post. Setting up a context > that lets you focus on what you're currently working on is helpful. > There should be a browser that just shows your "working set", like a > couple of packages that make up your application. I used such a > browser framework 10 years ago (Application Management Browser IIRC) > and it worked nicely, basically each tool had a little checkbox > switching the filter to your current app on and off. Very handy. We added something like this to our browser. At the time, we used change sets for development, and we added a drop-down combo box above the class categories, which allowed you to choose the "current" change set for that browser. Any entry in the four lists that was associated with the change set ended up being a different color, so it was easy to see what we were working on, while at the same time showing everything else as well. Later, Jon -------------------------------------------------------------- Jon Hylands [hidden email] http://www.huv.com/jon Project: Micro Raptor (Small Biped Velociraptor Robot) http://www.huv.com/blog |
In reply to this post by Igor Stasenko
Hi, as mentioned before, the Whisker Browser seems to be nearly what you propose. Or a good starting point. Have you had a look at it? Dietmar
As follow-up, how would you like an idea in having a 'working-set' window, where i can add and manage packages/classes/methods. So i'm setting up my work once, by placing all i need into single list/treeview. Then to get to what i need is just a single click away. Also, for my task, i would need only single of such window on desktop, so i can arrange it to be kept at left/right side of screen to be always visible and accessible. Clicking at class/method will open new browser window (or navigate to already opened window). Also, with such window, i don't need to use classes/packages lists anymore - because i'm already having all what i need before my eyes. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Sebastian Sastre-2
"Sebastian Sastre" <[hidden email]> wrote > Hi sophie, did you see Dolphin Smalltalk? It has what they call the *idea > space* which group all the ST tools in one system window. I have not see that, but "all the tools" is not what I mean. Rather, all the relevant snippets/slices of the image that pertain to my task. These slices would typically (not always) be a group of related methods, where "related" might mean different things. Sometimes the identification of the "related" set can be tool assisted e.g. senders, receivers; hierarchy. Other times it might just need to be user selected (e.g. the "tear-offs" someone else described). Would this kind of thing be called a "Pluggable selection criteria" perhaps? - Sophie |
In reply to this post by Bert Freudenberg
On Jan 31, 2008 6:59 AM, Bert Freudenberg <[hidden email]> wrote:
SmalltalkAgents made an interesting and promising stab at a more flexible toolset nearly two decades ago which worked well in many respects. However, I think it helps to broaden the discussion and consider the impact of screen real estate and human cognition in the context of Croquet. |
In reply to this post by Bert Freudenberg
"Bert Freudenberg" <[hidden email]> wrote
> That is pretty much exactly what the Whisker browser does. It has been > mentioned previously in this thread. Try it. I did a while ago and had trouble with it, which was one reason I said "... There are browser packages around for doing some of these but they generally seem to have fallen out of favour." Just re-tried, still get some DNUs and somewhat strange selection-list displays, but it might be a good starting point -- perhaps some pre-defined "pluggable" ways to select a set of focus methods, a bit less rigid about columns, ... But could there be meaningful value to considering this across more than one browser, not localized to something like Whisker? As Nathaniel Scharli & Andrew Black wrote in "A Browser for Incremental Programming", http://web.cecs.pdx.edu/~black/presentations/ESUGBrowserTalk.pdf and elaborated on in their Model Extensions paper: "It is because even good programmers will make mistakes unless they have good tools" Thanks, Sophie |
In reply to this post by Jon Hylands
"Jon Hylands" <[hidden email]> wrote in message
> However, it turns out there's a better metaphor that people intuitively > understand - a stack. A Back-Button on steroids? Would be _very_ useful. It might be good, though, to treat this as _one_ way to "see a set of User-Selectable methods very Conveniently" to allow combining different orthogonal aspects: A. different ways to see them Conveniently (and navigate between them) - cascading columns/rows - split screen/row/column - tear-offs - tabs - back buttons B. different and easier User-Selectables - ways to limit scope: global image, my package, class hierarchy.. - senders, implementors of a message - concrete methods wherever possible e.g. self, super sends - lists multi-options otherwise, perhaps showing method bodies - all messages sent to an instVar (from a class, or from a method) - all calls to self or super (from a class, or from a method) - method protocol (manual or dynamic) - all not-implemented-like methods - user hand-picked set of methods - all methods of class (ok, with suitable neolithic icon :-) (I am certain we can come up with several useful others) C. the option to change the view in-place or spawn another window - in-place updates that window stack / Back button - spawn 1 other window for the new (multiple method) view - spawning <N> other windows, one for each method - would be the N-Browser approach - Sophie |
In reply to this post by Sophie424
Hi, I'm following this thread with interest because I’m trying to
learn about interaction design. I want to add some comments to the discussion: There is an assumption that the current browser is difficult or strange for the newbie. But that assumption is not backed by any survey. I think that interfaces for “beginners” are good for “casual” applications like multimedia kiosks. But for applications that we use regularly, we start as beginners and them we want to become “intermediate” as soon as possible. So a good interface design should allow the transition from beginner to intermediate quickly. From that point of view, the justification of editing all methods like in a text file, just to make the system friendly to new comers, is not good enough. The system is better for beginners if you can learn the system model quickly, a flat view of methods maybe looks nice but is not going to help with the fact that browsers are an special kind of inspectors for method dictionaries and classes. To me the source of usability problems in browsers is that there is two modes of work: editing and browsing. One problem is that when you are in “edit mode”, you can’t browse code: you have to save the code first, or open a new browser window. And when you are in “browsing mode” and start to follow senders, implementors, references you end with a lot of browsers opened but just a few a relevant. And for beginners, I think that big annoyance in Squeak are not multiple browsers, but hotkeys, input focus, and undo. For example the FillInTheBlankMorph lost the focus when you point the mouse pointer to another place, this is an unexpected behavior. Diego.- |
In reply to this post by Jason Johnson-5
"Jason Johnson" <[hidden email]> writes:
> I don't understand this complaint. In current Squeak a code browser > is relatively quick. Well searching through it to find some stuff is not that fast, I have not idea on how to limit it to just the class I'm working in e.g. > When I work I'm constantly popping up new > browsers to check something, leaving them open sometimes to > "bookmark", etc. In the Java or MS language world you couldn't do > this because those IDE's are too expensive resource-wise (but even in > those environments I find myself opening a second browser on the same > project to temporarily get functionality I have in Squeak > out-of-box). And how do you do that, you use the mouse and go forth and back and how to you find your browsers? In any other langauge I can write function a ... function b .... But I can not in Squeak I have to accept generate a new template an possible put the stuff in categories from which I never know which methods belong to which category (a bit too pointed) etc. I know that people feel that Morphic is the tool chain but I'd prefer a decent GUI builder, in which I can drag and drop my stuff. I would appreciate something like putting my cursor on some method and type F1 and got help about that thing. Smalltalks are really nice but they are lacking a decent editor ;-) Regards Friedrich -- Q-Software Solutions GmbH; Sitz: Bruchsal; Registergericht: Mannheim Registriernummer: HRB232138; Geschaeftsfuehrer: Friedrich Dominicus |
Free forum by Nabble | Edit this page |