[Pythonmac-SIG] Mac User Python Newbies
has
hengist.podd at virgin.net
Mon Feb 14 18:09:17 CET 2005
Charles Hartman wrote:
>So an environment (in the vernacular, not the Unix sense) is what
>the beginner needs -- an IDE from within which everything you need
>to do can be done, and not dangerously much else. But if the IDE is
>complete enough for this beginner to work in, isn't it likely to be
>a reasonable place for someone to work who knows more, too?
I think Joel Spolsky hits on the broader problem when talking about
bloat vs features
<http://www.joelonsoftware.com/articles/fog0000000020.html>:
"80% of the people use 20% of the features. Unfortunately, it's never
the same 20%."
Thus we end up with big, extremely complex programs like MS Word, and
the first thing new users have to do is to determine all the bits
that they can simply ignore so they can concentrate on learning the
bits they actually do need. Uber-geeks may enjoy the feeling of
absolute control that comes from having more buttons and knobs at
hand than they can count, but us ordinary schmoes just drown in that
crap. MS builds software that way cos they like to get their users
locked into a perpetual upgrade cycle from which they can make money,
but what's OSS's excuse?
My preferred IDE architecture would be built on a completely
component-oriented architecture. That way it can ship with the
minimal components required to get started, and users can add,
upgrade and remove components as and when they need them. For
example, a new user needs everything visible so they can see what's
available; an experience one may prefer everything driven by
memorised keyboard combinations so they can devote screen estate to
more important things like their code instead of floating palettes,
on-screen help, etc.
Furthermore, those users aren't locked into a single fixed solution
for, say, building GUIs: as long as wxPython, PythonCard, etc.
provide compatible components they can plug in whichever one they
want. And it allows individual features to develop at their own rate,
so you're not stuck with the perpetually 'almost-there-but-not-quite'
situation that somebody else mentioned.
Python's myriad web frameworks are in exactly the same situation,
btw: they should be building smaller and simpler for greater
flexibility and custom assembly, but instead seem only to build
bigger and more complex with major lock-in and the result is systems
that only their existing long-time users want to use because the cost
of mastering one of these monsters has grown so high as to deter
newcomers. Who then turn to simpler, less powerful systems, master
those, and then complain about the lack of features until they too
evolve into the same monolithic giants that they'd rejected in the
first place.
I've never understood what the obsession with building every
conceivable feature into the application core, least of all when it's
coming from unix folks who really should know better. The central
tenet of Unix design philosophy is to build small, interchangeable,
single-purpose components that can be easily assembled into whatever
form the user needs. So I see this as just sensible design, and the
fact that it happens to scale well to fit lots of different user
requirements is an added plus. And I despair when I see all these
other unix-raised OSS folk rushing in the exact opposite direction,
and am at a loss to understand what they're thinking.
HTH
has
--
"Oh, cut the bleeding heart crap, will ya? We've all got our
switches, lights, and knobs to deal with, Striker. I mean, down here
there are literally hundreds and thousands of blinking, beeping, and
flashing lights, blinking and beeping and flashing - they're
*flashing* and they're *beeping*. I can't stand it anymore! They're
*blinking* and *beeping* and *flashing*! Why doesn't somebody pull
the plug!"
More information about the Pythonmac-SIG
mailing list