[Pythonmac-SIG] Mac User Python Newbies

has hengist.podd at virgin.net
Sun Feb 13 23:00:01 CET 2005


Michael Hudson wrote:

>  > [Many new developers] would
>  > prefer to get started (at least) within the relative controlled
>>  environment of an IDE.
>
>However, it probably is a good deal less effort to explain to
>newcomers how to get going without an IDE thatn to write one.

There's a paradox at work here. What newbies need from an IDE is 
_very different_ to what experienced users expect from one. On the 
one hand, newbies want something that is very quick and simple to 
learn - so the editor needs to be pretty narrow and minimal in its 
featureset. On the other, they also want it to provide some very 
powerful features - e.g. GUI editor, executable generator - that are 
non-trivial to develop so generally only appear in big, complex, 
bells-n-whistles environments.

One option is to take an existing bells-n-whistles IDE and strip it 
right down to just the features that newbies will immediately need, 
minimizing and rearranging the remaining UI and adding/rewriting 
additional built-in help facilities. That'll let newbies get started 
without running smack into the immediate information overload that 
comes from being faced with an 'old-pro' oriented environment. Once 
they outgrow the newbie-oriented IDE they'll need to make the jump to 
the full-blown one which'l no doubt require some relearning, but at 
least by then they should be able to cope with the jump.

Another would be to architect the IDE from the ground-up as 
completely component-oriented (e.g. a-la OpenDoc) where every feature 
is pluggable and replaceable, right down to the editor and 
interpreter windows themselves. That would allow the IDE to be 
distributed in its newbie-friendly form with all the 'old-pro' 
features left out, and once users become familiar with the basics 
they can start to add new components and replace existing ones so 
that the editor grows with them. This would be the better approach 
from the users' POV, though it also requires even better design and 
implementation to pull off.

Obviously, either option requires a significant amount of work to be 
done by exactly the sort of old pros who have the least to gain 
directly from it. Which is always the problem with 'free as in beer' 
software, as it requires some other form of motivation, e.g. ego, 
evangelism, foundation grants or whatever.


>Especially writing an IDE that would be noticeably more correct than
>my current Emacs/Terminal/interactive Python setup.

While that combination may well suit Python newcomers who are already 
experienced Emacs/Terminal users, it's a complete non-starter for 
anyone who isn't, because the last thing a newbie wants is to have to 
learn two or three different things all at the same time just to get 
started.


For example, when I started learning Python I took a look at various 
IDEs, but learning one of those on top of learning Python was just 
going to be too much, so I ended up using a zero-feature 
syntax-coloured shell script editor instead. Might not do anything, 
but since it only took 2 minutes to learn I was able to get right on 
with the more important task of learning Python, so that I could 
actually get on with what I _really_ wanted to do, which was write 
cool software to do useful stuff. (BTW, I'm still using that editor 
despite it being really limited because I still can't be arsed 
sinking time and effort into one of these big, fat, complex IDEs when 
I can be writing code instead.)

And that's the whole crux of the matter: Most people who come to 
Python aren't interested in learning IDEs, or Python, or anything 
else. The only thing they're interested in doing is creating cool 
software to do useful stuff, and every second they're having to sit 
and learn some tedious crap before they can do that is a second 
they're being kept from achieving that goal.

Sure, there'll be some who enjoy all that "learning for learning's 
sake", but most are primarily task-oriented so you either directly 
help them reach that goal - e.g. by providing a completely intuitive 
drag-n-drop GUI builder so they can whip up that 2-minute UI when 
they need it - or you keep the hell out their way so you don't hack 
them off. Because if you do hack them off, or they think they can get 
better help by moving to another platform, then another platform is 
just where they're gonna go.


And that's what the [Mac]Python community has to deal with if they 
want to attract new users better'n all their competition can. Me, I'm 
off to hack up a Script Editor clone now, so you can guess which 
particular audience I'm gonna be pitching to in the next few months. 
;)

HTH

has
-- 
http://freespace.virgin.net/hamish.sanderson/


More information about the Pythonmac-SIG mailing list