dubuntu-team team mailing list archive
-
dubuntu-team team
-
Mailing list archive
-
Message #00085
Re: cli frontend
Hi Jay
As you said I don't think our ideas are far appart, so let's find that
common ground.
I have both "requirements" and "categories" where you seem to have only
"categories". I have both and here's why...
a. Requirements
This is the "natural language" filter, if I can put it that way. When
you want to do development you have a "kind of/sort of" idea about what
you want to achieve.
E.g. I want to do develop a C++ application for the Gnome desktop. At
this point you haven't even considered that you might need an IDE,
compiler, etc. This is pretty much the starting point of a newbie.
When you go into Synaptic with this idea, you'll be absolute
overwhelmed. There are thousands of packages out there, which of them
applies? *&%$#@
So the purpose of requirements is to pre-filter all the possible choice
to only those that are relevant. So instead of having 1000 options you
know have 50.
In other words, if you want to do php/web development then Kdevelop
might not be relevant under the IDE category, so it won't be shown. In
stead Quanta Plus and BlueFish will be listed.
If you're not interested in specifying requirements you could just click
"select all" and go to the next phase. But then you'll get everything
in every category.
b. Categories
This is now where you start to categorise the tools for the user into
logical classifications, e.g. the IDE, compiler, etc. Note that he will
have to make at least one or two choices, e.g. he'll have to select the
IDE, but there could be defaults for the compiler and debugger.
Like you indicated, this where the user will now have the option to
drill down as deep or as shallow as he wants to. (I didn't want to put
it in my original e-mail to keep it simple for now.)
Note that this in a way is also "training"! For each category there
will be at least one or two paragraphs explaining what the items from
this categorie is, e.g. An IDE is a...., a compiler is necessary to...,
etc
What you are doing is is teaching him about the things he need and how
it all fits together. (He didn't know he needed and IDE or a compiler)
It is his choice to read/learn. He could let the system make the
default choices for him, but if he wants to learn he could read about
each choice and make a concious decision.
I don't think this is too complex for a newbie. Afterall if you don't
know what an IDE or a compiler (or at least want to learn what it is),
you should be doing programming in the first place!!
SUMMARY:
Hiding too much of the "complexity" from the user is not a good thing.
Rather structure it for him and help him understand what it is that he
needs. Now you are "teaching him to fish".
Note that any element could be linked to more than one requirement but
only to one category, e.g.:
Eclipse IDE:
Requirements - Language: C++, Java, Python - Platform: CLI, Gnome, KDE
Categories - IDE (Sub-categories would also apply)
In the end you are always presented with the same categories, but the
items listed in these categories is based on what you are trying to
achieve instead of a vast sea of options.
If you skip the Requirements step, you will be presented with IDE
options that may not apply to what you are trying to do. And you'll
have to make "requirement" choices later any way. But it is your
choice!!
We could even break requirements up into sub requirements, e.g.
If you make a selection on the target enviroment, e.g. Web application,
you may only be presented with HTML/PHP/Python as language choices
instead of C++/Pascal/etc...
In another e-mail I'll explain how I seen this being laid out in a gui.
That's a mouthfull! What do you think?
Charl
On Tue, 2009-07-07 at 12:55 +0300, Jay I. wrote:
> hi charl
>
> i think your approach is a bit convoluted however my position is not so
> far from yours. actually i've come the concept of 'search categories' -
> something similar to search folders in evolution. i haven't mentioned
> them previously 'caz i'm not yet determined about possible ways to
> implement them. i've added a special field called 'pattern' to category
> description and in the worst case it will contain just a SELECT
> statement;). the idea behind them is that first we will put packages
> into 'normal' categories and then add them to 'search' ones. e.g.
> Eclipse will go into say /development/ides/multilingual/. and then we
> will also add it to /development/languages/[c++|java|...]/ides. we'll be
> able to add packages to 'search' categories either by specifying them
> manually or by constructing some search criteria.
>
> > When you start the installer it would ask you to complete the list of
> > requirements. Which you may choose to complete as follows:
> >
> > - Target environment? Gnome
> > - Language? C++
> > - Require IDE? Yes
> > - Require Debugging? Yes
> >
> > It would then present you with a list of options by category, of which
> > you may then select one or more:
> >
> > - IDE/Editor: Elipse / Anjuta
> > - Compiler: gcc
> > - UI library: gtk+
> > - Debugging Tools: gdb / valgrind
>
> i think it can be too hard for some creatures to answer all such
> questions at once. sometimes users don't even know what they need so you
> should guide them through all possible choices starting from most simple
> things of course. it will help them to figure out what they actually
> need. and an answer like
>
> >- IDE/Editor: Elipse / Anjuta
> > - Compiler: gcc
> > - UI library: gtk+
> > - Debugging Tools: gdb / valgrind
>
> can shock some users as they may not know what 'ui' or 'compiler' means.
>
> it's like when some newbie tries to ask you what to do with a message
> dialog shown by his favorite oowriter but he's never heard terms like
> message box, window etc. so you ask him:
> - what were he doing when this happened?
> - i was editing a letter to santa clause. (at this point you understand
> that he was working in his text editor).
> - and what happened next?
> - next it showed me.. i don't know what it was..
> - a message?
> - right, it was..(at this point you understand that he faced some
> warning or error message from oowriter).
> you cannot ask him what that message was about right away. likewise you
> cant ask user whether he needs debugging or not right when he starts the
> installer - maybe he doesn't know what you're talking about.
>
> i believe that user needs to see how he's approaching his target
> starting from more general questions and ending with more specific ones.
> an experienced user can step down this hierarchy very quickly, but a
> noob would like to stop at every step to read its description.
>
> lets imagine a student that wants to install delphi. he doesn't know
> what it actually is yet but he was told he would start learning it from
> the next week so he wants to get prepared. so he opens the installer:
>
> would you like to extend your current configuration? > yes.
> in which direction would you like to extend it?
> - multimedia
> - development
> - ... > development
> (at this point a very lazy user can hit something like 'extend to
> maximum' and be sure he has everything installed. or he can select 'add
> recommended' and get installed only the most popular and effective
> tools.)
> what sort of development are you going to do?
> - web
> - desktop
> - mobile > desktop
> what do you like to add to your current configuration?
> - new language
> - new ide
> - new manual > language
> what language would you like to add?
> - c
> - c++
> - ruby
> - ...
> (searches for 'delphi'. hits [back] and reads provided descriptions)
> what do you like to add to your current configuration?
> - new language
> - new ide
> - new manual > ide
> what ide would you like to add?
> - ...
> - delphi
> - ... > delphi
> what functionality would you like to be included?
> - *a list of all possible options for delphi* > 'add recommended'.
>
> this is it. 'add recommended' is our advice for newbies. and as you can
> see you can add either a new language or new ide because ide's can
> support many languages and a single language can be supported by many
> ide's. but you can't add a compiler at this step because your choice
> depends either on language you speak or ide you live in.
>
> as you see it's not a problem to specify a correct question for every
> category along with a list of recommended options. i stand for something
> tree-like. most windows installers first ask you more general question
> and only then go into detail and at almost every step you can just agree
> with default settings. you know that they are often very easy to use -
> just several clicks and here you are.
>
> if that student would know what language he needs instead of ide he
> would go to the list of languages, select say c++ and then the installer
> would ask him:
>
> what language component would you like to add?
> - compiler
> - ide
> - debugger
> - manual
> - ... > [add recommended] (at this point the installer downloads and
> installs say gcc/g++/geany/eclipse with cdt/gdb/manpages - everything we
> recommend for c++ development)
>
> instead of providing user with a list of requirements i suggest to give
> him a whole tree of choices in which for almost every leaf there will be
> several ways to reach it and the way he will choose will eventually
> depend on his own needs.
>
> the basic idea is that user shouldn't face difficult questions like does
> he need debugging or not when he launches the installer. he will
> approach such questions step by step starting from much easier ones.
> newbies prefer to be guided so we will create a step by step guide for
> them. for pros maybe we will add a button [show all packages in this
> category] so that at every level they will be able to view the whole
> list - it's much like when you first use 'search' button in synaptic and
> then look through the list of packages.
>
> hope this makes my position more clear.
>
> jay
>
Follow ups
References