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/
_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to