* Question on CLI vs GUI, and today's call
@ 2007-02-21 18:39 Kris Van Hees
2007-02-22 21:46 ` Andrew Cagney
0 siblings, 1 reply; 5+ messages in thread
From: Kris Van Hees @ 2007-02-21 18:39 UTC (permalink / raw)
To: Frysk List
First of all, am I right that the CLI and GUI interfaces are mere shells
on top of the actual debugger/monitor core that handles all actual
functionality, and leaves the user interaction portion to the CLI and
GUI code? That largely seems to be the case, and I just wanted to
confirm that this strict separation of focus is adhered to everywhere.
Which leads to another question, or comment... Especially today's call
made me wonder a bit about the separation of processing core vs UI
because it seemed (at least to me) that part of the discussion turned
into the mechanics of stepping in the presence of multiple threads
rather than the user interaction part only. Generally, when discussing
UI aspects, if it is not clear what a certain button, menu item, or
other element (or combination thereof) is wired to in the processing
core, there is a fundamental problem. It indicates that either the
separation between presentation and processing is lost, or that the
behaviour at the processing level is not defined well enough to make it
clear how the user should interact with it.
I think it would make the calls a bit more targeted if we can recognize
when the conversation becomes more about the underlying mechanics and
defer that to discussion in a non-UI forum?
As always, all comments are welcome.
Cheers,
Kris
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Question on CLI vs GUI, and today's call
2007-02-21 18:39 Question on CLI vs GUI, and today's call Kris Van Hees
@ 2007-02-22 21:46 ` Andrew Cagney
2007-02-23 0:33 ` Kris Van Hees
0 siblings, 1 reply; 5+ messages in thread
From: Andrew Cagney @ 2007-02-22 21:46 UTC (permalink / raw)
To: Kris Van Hees; +Cc: Frysk List
Kris,
Can you be a little more specific?
Yes, we need to be careful that the UI's behavior isn't defined by
limitations of the core, and in that regard, I thought the discussion
was very positive. It was most satisfying to be in on a discussion that
at no stage limited the UI possibilities due to to limitations further
down. Instead the talk seemed to focus on identifying semantics that
would be clear to a user - for instance separate continue-thread and
continue-threads buttons. And with that decided, they can be quickly
and efficiently implemented using the core.
The internals discussion I noted was on the details of "advance-a-line"
when in a non-inner frame; there the discussion was highlighting the
confusion in some of the operations, for instance how "step" applied to
the inner-most frame and not the currently selected frame. Recognizing
that led to the decision to enable "advance" but not "step" when a
non-inner frame is selected.
Andrew
Kris Van Hees wrote:
> First of all, am I right that the CLI and GUI interfaces are mere shells
> on top of the actual debugger/monitor core that handles all actual
> functionality, and leaves the user interaction portion to the CLI and
> GUI code? That largely seems to be the case, and I just wanted to
> confirm that this strict separation of focus is adhered to everywhere.
>
> Which leads to another question, or comment... Especially today's call
> made me wonder a bit about the separation of processing core vs UI
> because it seemed (at least to me) that part of the discussion turned
> into the mechanics of stepping in the presence of multiple threads
> rather than the user interaction part only. Generally, when discussing
> UI aspects, if it is not clear what a certain button, menu item, or
> other element (or combination thereof) is wired to in the processing
> core, there is a fundamental problem. It indicates that either the
> separation between presentation and processing is lost, or that the
> behaviour at the processing level is not defined well enough to make it
> clear how the user should interact with it.
>
> I think it would make the calls a bit more targeted if we can recognize
> when the conversation becomes more about the underlying mechanics and
> defer that to discussion in a non-UI forum?
>
> As always, all comments are welcome.
>
> Cheers,
> Kris
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Question on CLI vs GUI, and today's call
2007-02-22 21:46 ` Andrew Cagney
@ 2007-02-23 0:33 ` Kris Van Hees
2007-02-23 14:37 ` Sami Wagiaalla
0 siblings, 1 reply; 5+ messages in thread
From: Kris Van Hees @ 2007-02-23 0:33 UTC (permalink / raw)
To: Andrew Cagney; +Cc: Kris Van Hees, Frysk List
I'll try to clarify more specifically what I mean, and actual your first
comment is the perfect lead-in for that. Yes, indeed the UI behaviour
(be it CLI or GUI) should not be defined by limitations of the core.
However, equally important is that the UI should not impose limitations
upon the core. Nor should the UI define the functionality of the core.
There is a fine distinction in that functionality is of course driven by
user interaction scenarios, and user interaction defines how various
tasks are decomposed in their individual steps, and the core has to
provide the functionality to make those steps possible. But that is an
abstract concept, disconnected from specific UI design.
Ultimately, the user interaction model is what drives the functionality
that is required from the core, and the UI (CLI and GUI alike) provide
the presentation to the user for that functionality.
To me it felt like the discussion was a mixture of abstract user
interaction (semantics -- "what should happen if the user does blah"),
visualization ((G)UI -- "what should this look like; should icons be
hidden or shaded), and core functionality (implementation -- "how do we
implement user action blah"). The first two are UI-related though at a
very different level, and the fine line between them is very important.
Mixing them up tends to lead to inconsistencies in UI between e.g. CLI
and GUI.
I do agree that the discussions are very positive and constructive. I
do however feel that there is a tendency (as it always happens) to mix
the areas quite a bit. And that can be quite dangerous.
Your example of the 'advance-a-line' function is a good one for this.
As you state, there was confusion as to the exact semantics of specific
operations, like "step" vs "advance". The decision was to enable
"advance" but not 'step" when a non-inner frame is selected. However,
does that mean this will be implemented as a UI change? Or a change in
the core? Or both?
Cheers,
Kris
On Thu, Feb 22, 2007 at 04:46:19PM -0500, Andrew Cagney wrote:
> Kris,
>
> Can you be a little more specific?
>
> Yes, we need to be careful that the UI's behavior isn't defined by
> limitations of the core, and in that regard, I thought the discussion
> was very positive. It was most satisfying to be in on a discussion that
> at no stage limited the UI possibilities due to to limitations further
> down. Instead the talk seemed to focus on identifying semantics that
> would be clear to a user - for instance separate continue-thread and
> continue-threads buttons. And with that decided, they can be quickly
> and efficiently implemented using the core.
>
> The internals discussion I noted was on the details of "advance-a-line"
> when in a non-inner frame; there the discussion was highlighting the
> confusion in some of the operations, for instance how "step" applied to
> the inner-most frame and not the currently selected frame. Recognizing
> that led to the decision to enable "advance" but not "step" when a
> non-inner frame is selected.
>
> Andrew
>
> Kris Van Hees wrote:
> >First of all, am I right that the CLI and GUI interfaces are mere shells
> >on top of the actual debugger/monitor core that handles all actual
> >functionality, and leaves the user interaction portion to the CLI and
> >GUI code? That largely seems to be the case, and I just wanted to
> >confirm that this strict separation of focus is adhered to everywhere.
> >
> >Which leads to another question, or comment... Especially today's call
> >made me wonder a bit about the separation of processing core vs UI
> >because it seemed (at least to me) that part of the discussion turned
> >into the mechanics of stepping in the presence of multiple threads
> >rather than the user interaction part only. Generally, when discussing
> >UI aspects, if it is not clear what a certain button, menu item, or
> >other element (or combination thereof) is wired to in the processing
> >core, there is a fundamental problem. It indicates that either the
> >separation between presentation and processing is lost, or that the
> >behaviour at the processing level is not defined well enough to make it
> >clear how the user should interact with it.
> >
> >I think it would make the calls a bit more targeted if we can recognize
> >when the conversation becomes more about the underlying mechanics and
> >defer that to discussion in a non-UI forum?
> >
> >As always, all comments are welcome.
> >
> > Cheers,
> > Kris
> >
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Question on CLI vs GUI, and today's call
2007-02-23 0:33 ` Kris Van Hees
@ 2007-02-23 14:37 ` Sami Wagiaalla
2007-02-23 16:14 ` Andrew Cagney
0 siblings, 1 reply; 5+ messages in thread
From: Sami Wagiaalla @ 2007-02-23 14:37 UTC (permalink / raw)
To: Kris Van Hees; +Cc: Andrew Cagney, Frysk List
Kris,
I think that we are all very strongly agreeing here :)
> I'll try to clarify more specifically what I mean, and actual your first
> comment is the perfect lead-in for that. Yes, indeed the UI behaviour
> (be it CLI or GUI) should not be defined by limitations of the core.
> However, equally important is that the UI should not impose limitations
> upon the core. Nor should the UI define the functionality of the core.
> There is a fine distinction in that functionality is of course driven by
> user interaction scenarios, and user interaction defines how various
> tasks are decomposed in their individual steps, and the core has to
> provide the functionality to make those steps possible. But that is an
> abstract concept, disconnected from specific UI design.
>
> Ultimately, the user interaction model is what drives the functionality
> that is required from the core, and the UI (CLI and GUI alike) provide
> the presentation to the user for that functionality.
>
Agreed, and this is definitely Frysk policy. Once in a while we forget
and we get stuck in implementation details :), but we quickly get off
the topic and back to user goals.
One example of this is back in the day we had a button that said
"Attach", and only when you have attached can you then go and add
observers. Now there is only "add observer" if the core sees that an
attach is needed in order to add that observer it does so transparently.
> To me it felt like the discussion was a mixture of abstract user
> interaction (semantics -- "what should happen if the user does blah"),
> visualization ((G)UI -- "what should this look like; should icons be
> hidden or shaded), and core functionality (implementation -- "how do we
> implement user action blah"). The first two are UI-related though at a
> very different level, and the fine line between them is very important.
>
I think this is probably a misunderstanding the goal of the discussion
was to figure out what the user wants so that we can use the core
primitives in place to implement that goal.
> Mixing them up tends to lead to inconsistencies in UI between e.g. CLI
> and GUI.
>
Agreed, if UI get too thick code should be matured, rewritten more
generically, and then pushed down to core.
> I do agree that the discussions are very positive and constructive. I
> do however feel that there is a tendency (as it always happens) to mix
> the areas quite a bit. And that can be quite dangerous.
>
> Your example of the 'advance-a-line' function is a good one for this.
> As you state, there was confusion as to the exact semantics of specific
> operations, like "step" vs "advance". The decision was to enable
> "advance" but not 'step" when a non-inner frame is selected.
This is a good example. The discussion was about what the goal of the
user is after they have filtered through a stack of calls which they are
not interested in, and he or she clicks "step". Do they mean go down to
that frame which I have already dismissed and step one line ? Or
transparently finish all those frames, arrive to the one they are
"looking at" and step one line ? Does the use really need to be
presented with both "step" and "advance" or can the need for both be
eliminated by improving the concept of " the frame the user is looking at"
> However,
> does that mean this will be implemented as a UI change? Or a change in
> the core? Or both?
>
I might not be the person to answer this, but I would guess core :) In
order to maintain the thinness of UI's, and consistency of behavior
between them.
Cheers,
Sami Wagiaalla
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Question on CLI vs GUI, and today's call
2007-02-23 14:37 ` Sami Wagiaalla
@ 2007-02-23 16:14 ` Andrew Cagney
0 siblings, 0 replies; 5+ messages in thread
From: Andrew Cagney @ 2007-02-23 16:14 UTC (permalink / raw)
To: Sami Wagiaalla, Kris Van Hees; +Cc: Frysk List
Sami Wagiaalla wrote:
>> Mixing them up tends to lead to inconsistencies in UI between e.g. CLI
>> and GUI.
>>
> Agreed, if UI get too thick code should be matured, rewritten more
> generically, and then pushed down to core.
Yes, for instance the step engine was prototyped as part of the gnome
code, but then pushed down into the run-time model where both the gnome
and hpd interfaces could share it. Importantly, this made possible
common interaction such as a HPD step being reflected in the UI.
>> I do agree that the discussions are very positive and constructive. I
>> do however feel that there is a tendency (as it always happens) to mix
>> the areas quite a bit. And that can be quite dangerous.
>>
>> Your example of the 'advance-a-line' function is a good one for this.
>> As you state, there was confusion as to the exact semantics of specific
>> operations, like "step" vs "advance". The decision was to enable
>> "advance" but not 'step" when a non-inner frame is selected.
> This is a good example. The discussion was about what the goal of the
> user is after they have filtered through a stack of calls which they
> are not interested in, and he or she clicks "step". Do they mean go
> down to that frame which I have already dismissed and step one line ?
> Or transparently finish all those frames, arrive to the one they are
> "looking at" and step one line ? Does the use really need to be
> presented with both "step" and "advance" or can the need for both be
> eliminated by improving the concept of " the frame the user is looking
> at"
>> However,
>> does that mean this will be implemented as a UI change? Or a change in
>> the core? Or both?
>>
> I might not be the person to answer this, but I would guess core :) In
> order to maintain the thinness of UI's, and consistency of behavior
> between them.
It's actually both :-)
-> the core will need to be tweeked so that an "advance" request
specifies the frame it is being applied to
This change will occure in what's become known as the "middle-end" -
frysk.rt here - that is built over lower level primatives.
-> the graphical component needs to be tweaked so step is disabled when
the frame is non-inner - thus preventing the user from initiating a step
(of course "step" is still there and will apply to the inner most frame).
I think an occasional brief dally into the middle-end - so that the
developers understand broadly the implementation and at least that it is
feasable - is ok; but taking your point on board, we need to be careful
that we don't stray into low-level core details.
Andrew
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-02-23 16:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-21 18:39 Question on CLI vs GUI, and today's call Kris Van Hees
2007-02-22 21:46 ` Andrew Cagney
2007-02-23 0:33 ` Kris Van Hees
2007-02-23 14:37 ` Sami Wagiaalla
2007-02-23 16:14 ` Andrew Cagney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).