Python too complex ?!?!?!

15 views
Skip to first unread message

Brian

unread,
Nov 17, 2007, 8:46:45 AM11/17/07
to
Had a unsettling conversation with a CS instructor that
teaches at local high schools and the community
college. This person is a long-term Linux/C/Python
programmer, but he claims that the install, config, and
library models for C# have proved to be less
problematic than Python. So both his courses (intro,
data structs, algorithms) are taught in C#.

I am a low-end (3-year) journeyman Pythonista, and I
was attracted to the language because of its
simplicity. And I have come to enjoy the richness of
available libraries.

Many of the good people of this NG may be 'too close'
to answer, but has Python, as a general devel platform,
lost its simplicity ? Is library install too complex
and unreliable ? Will my dog go to heaven ?

Paddy

unread,
Nov 17, 2007, 8:53:57 AM11/17/07
to

It would be nice to have more info on his specific problems. Me, I
find both Activestates and the official Python wiundows installers
just work.

- Paddy.

BartlebyScrivener

unread,
Nov 17, 2007, 9:21:04 AM11/17/07
to
On Nov 17, 7:46 am, Brian <not_here@no_where.com> wrote:
> This person is a long-term Linux/C/Python
> programmer, but he claims that the install, config, and
> library models for C# have proved to be less
> problematic than Python.

If his students have problems installing Python on Windows, show him
this.

http://tinyurl.com/w7wgp

It can't get any easier.

rd

Tim Chase

unread,
Nov 17, 2007, 9:21:20 AM11/17/07
to pytho...@python.org
> programmer, but he claims that the install, config, and
> library models for C# have proved to be less
> problematic than Python. So both his courses (intro,
> data structs, algorithms) are taught in C#.

A little anecdotal comparison from some of my experience with two
web apps deployed at my current company:

One web app, written in C#/ASP.net one written in Python.

Moved each app to new servers (C#/ASP.net on a new Windows box,
Python app on a shiny new Debian box).

C#/ASP.net app: had to find and install the right version of the
.net libraries. That's an afternoon of my life I won't get back.

Python app: copied my app

C#/ASP.net app: couldn't find VS2003 (in which the app had been
written) any more so had to upgrade to VS2005.

Python app: Continued to use the same development environment.

C#/ASP.net app: (ASP specific) generally requires following a
particular convention. Writing a RESTful web app is next to
impossible given the reliance on the postbacks; and the server
environment doesn't make it easy to make clean URLs

Python app: Django makes web-app development easy and
clean/RESTful (other frameworks may as well...I speak from Django
experience) and push you to Do The Right Thing (tm)

C#/ASP.net app: had to re-partition my server containers so that
it could deploy .Net 2.0 and .Net 3.0 apps side-by-side

Python app: I've had Python 2.3, 2.4 and 2.5 running on the same
machine without a thought

C#/ASP.net app: libraries are often written to a particular
framework version, so if any new functionality requires the new
version the whole app needs to be migrated.

Python app: most of the libraries I use come built in, or they
work with 2.3 or later.

C#/ASP.net app: Installing new libraries, same as upgrading
currently-used libraries. Usually requires paying for, then
manually installing various libraries, clearing distribution
rights, etc.

Python app: There are an abundance libraries that are just an
apt-get away in terms of difficulty, and they are Free Software
so I can install them and deploy them without additional costs.

C#/ASP.net app: 3rd party libraries usually come as source-less
DLLs that you can't peer into

Python app: 3rd party libraries are usually pure python which
you can modify or step into as needed

C#/ASP.net app: really only works well on Windows

Python app: works well on Windows, Linux, BSD, Mac OS X...

C#/ASP.net app: really requires Visual Studio

Python app: works well with Eclipse, Vim, Emacs, Wing IDE,
Komodo, Idle, and piles of other development environments. Heck,
I've written the occasional python program using "ed" or "cat >
x.py".

C#/ASP.net app: files are scattered all over. You've got source
apps, you've got templates, you've got resource files, you've got
GUID files. And VS hides the complexity so when (not "if")
something breaks you get a crash course in what goes on under the
covers.

Python app: I've got .py files (and sometimes templates for my
Django code, and could have I18N files for translations). Very
easy to track down where everything is.

C#/ASP.net app: Code/syntax is horridly opaque, requires braces
and lots of additional overhead code to get things done. Compare
the clutter of a basic C# script with a similarly function Python
script. How much is pure syntactic overhead?

Python app: Code/syntax is rather easy to read (once you
understand list comprehensions and the __foo__ methods)

Yeah, I'd take Python any day...for implementation *OR* for
teaching someone how to program.

-tkc


Donn Ingle

unread,
Nov 17, 2007, 9:25:29 AM11/17/07
to pytho...@python.org
I dunno about your dog :) but Python libs are not too demanding. From a
Gnu/Linux pov with package managers things are quite simple.

My wish is to find a way to make that even easier because the packaged
modules are not always up to date.

If the Cheese Shop could supply downloads of modules and we could stick on a
gui interface that wraps around import statements to guide the installation
of any missing packages -- that would be progress.

If you are online and the app runs, it can check the "freshness" of your
modules (those called from the app and recursively) and offer to fetch the
latest stable versions.

The gui is an issue. Does one TK or rely on some fall-back system of
gnome/kde/x11/windows dialogue boxes (ending in abject failure by way of
raw_input on the command line)? Or (perhaps) have it fetch a standard
dialogue library which would fetch and install what is needed for future
occasions.

Anyway, this is a bit of a hijack and I have not touched C# in any way, but
I don't think Python has anything to be ashamed of.*

/d

* Okay, maybe decorators but that's just because I am far too thick to grok
them :D


davis...@gmail.com

unread,
Nov 17, 2007, 1:44:32 PM11/17/07
to
On Nov 17, 8:25 am, Donn Ingle <donn.in...@gmail.com> wrote:
> I dunno about your dog :) but Python libs are not too demanding. From a
> Gnu/Linux pov with package managers things are quite simple.
>
> My wish is to find a way to make that even easier because the packaged
> modules are not always up to date.
>
> If the Cheese Shop could supply downloads of modules and we could stick on a
> gui interface that wraps around import statements to guide the installation
> of any missing packages -- that would be progress.
>

Interesting idea, although it's not something I'd want included and
turned on by default. Should certainly be possible, though, with a
little __import__ magic.

> If you are online and the app runs, it can check the "freshness" of your
> modules (those called from the app and recursively) and offer to fetch the
> latest stable versions.
>

Something similar to Java's webstart? Implement an __import__ hook
that downloads and caches the latest (stable) versions of libraries as
needed.

> The gui is an issue. Does one TK or rely on some fall-back system of
> gnome/kde/x11/windows dialogue boxes (ending in abject failure by way of
> raw_input on the command line)? Or (perhaps) have it fetch a standard
> dialogue library which would fetch and install what is needed for future
> occasions.
>

You wouldn't really *need* a GUI, although it probably should be a
configurable option ... so the user can keep tabs on, and more control
over, what's going on. No reason why it couldn't be totally
automated. easy_install already provides for automated installation
of python apps/libraries, so you could build off that.

> Anyway, this is a bit of a hijack and I have not touched C# in any way, but
> I don't think Python has anything to be ashamed of.*
>
> /d
>
> * Okay, maybe decorators but that's just because I am far too thick to grok
> them :D

It seems there are a number of people who don't grok decorators.
While getting to know how they work underneath does require some
careful reading and out-of-the-box thinking, it's only really
necessary to understand them at this level if you want to actually
implement a decorator. Merely using decorators is, IMHO, much easier
to understand (but still requires a slight brain-warp). I think some
people try to understand decorators too completely too quickly, and
end up labeling them one of those complex/unintuitive/"way out"
things.

--Nathan Davis

Donn Ingle

unread,
Nov 17, 2007, 2:23:25 PM11/17/07
to pytho...@python.org
> Interesting idea, although it's not something I'd want included and
> turned on by default. Should certainly be possible, though, with a
> little __import__ magic.
Well, since we're shooting the sh*t :), I tried in my one and only released
app (Fonty Python) to wrap the imports in try clauses and then print
helpful strings to the console to guide the user.
I'm really not too clued-up on the __deep__ magic of Python, so I can't say
what tricks there are, but a simple "catch a fail and then start a
solution" process is a general approach.


>> If you are online and the app runs, it can check the "freshness" of your
>> modules (those called from the app and recursively) and offer to fetch
>> the latest stable versions.
> Something similar to Java's webstart? Implement an __import__ hook
> that downloads and caches the latest (stable) versions of libraries as
> needed.
I have also never touched Java, so I can't say, but something like that.
The main problem with having modules coming from the web is time. How long
is the life of a URL? The Cheese Shop seems pretty well established and
could serve the role. Perhaps there are already ways of making sure that a
hard-coded link in an app can reach a variable URL online.


> You wouldn't really *need* a GUI, although it probably should be a
> configurable option ...
I'd agree, but then I grew up with commands lines. I can say with total
confidence that the command-line scares a lot of people and if there are
any questions that need answering during the automated process (and there's
always *something* that crops up ) then a gui is the natural way to reach
the user.

> No reason why it couldn't be totally
> automated. easy_install already provides for automated installation
> of python apps/libraries, so you could build off that.

Totally automated would be the goal. I'd say a throbber or progress
animation of some kind would be needed.

Just thought of a wrinkle - say a new module is available and is installed
and then proves to be broken. How can the app recover? There'd have to be a
system of flags in a db that mark the situation and on re-run can roll back
to the last working module. Then we get feedback to the author of the
module....

And let's not forget all the joy that can be spread by having to compile
modules (on various platforms) from C/C++ and then worry about *their*
dependant libraries!

Oh fun times :p

(I think I can see why this has never been approached.)

> Merely using decorators is, IMHO, much easier
> to understand (but still requires a slight brain-warp).

I'm still stuck with those things. I can't really find an example that I
want to use. My brain keeps saying "yeah, but that's so smoke and mirrors
and I could do it this way ... which seems much plainer."

> I think some
> people try to understand decorators too completely too quickly, and
> end up labeling them one of those complex/unintuitive/"way out"
> things.

I have put them in the bag along with Design Patterns and Threads as "things
that I don't have to worry about because liff is too short. And like the
Spanish Inquisition, they're welcome to surprise me when I least expect it,
but I'm not going to lose my mind waiting :D

/d

Berco Beute

unread,
Nov 18, 2007, 4:48:59 PM11/18/07
to

Thank you very much for this VERY useful summary. It gives me tons of
ammunition in case the latest .Net zealot walks into my office :)

John Nagle

unread,
Nov 18, 2007, 5:29:06 PM11/18/07
to
Paddy wrote:
> On Nov 17, 1:46 pm, Brian <not_here@no_where.com> wrote:
>> Had a unsettling conversation with a CS instructor that
>> teaches at local high schools and the community
>> college. This person is a long-term Linux/C/Python
>> programmer, but he claims that the install, config, and
>> library models for C# have proved to be less
>> problematic than Python.

He has a point. Many Python enthusiasts are in denial about this,
but, face it, the binary library situation isn't in good shape.

Try running something that needs, say, MySQL and OpenSSL on a
shared hosting server and see how far you get. Or try to install
the same set of modules on both Linux and Windows.

John Nagle

Message has been deleted

John Salerno

unread,
Nov 18, 2007, 9:15:04 PM11/18/07
to

I'm a complete noob about most of this, but it sounds like his problem
may have more to do with what needs to be done on a Linux machine, than
anything specifically pertaining to Python. How can you call installing
Python (or any third-party modules) on Windows 'hard'?

Maybe his students just have a harder type figuring out how to install
things in Linux? I don't know...

MonkeeSage

unread,
Nov 19, 2007, 1:41:59 AM11/19/07
to
On Nov 17, 7:46 am, Brian <not_here@no_where.com> wrote:

I started out with some javascript and ruby background, and I
"mastered" (i.e., could do everything I wanted to do in) python in a
few months (including playing with the GTK bindings). I only have a
GED, so I'm not the smartest programmer in the world or anything. But
even so, the learning curve for python, for me, was very gradual.
Nothing to too complex to swallow a spoonful at a time. After several
years of using python (a very short time in the long-run, mind you), I
think that the basic concepts are as simple as ever, and it remains a
prime candidate for a CS 101 course.

On the other hand, C# and .NET seems like a lot of baggage to bring to
the table. First off, you have to introduce the CLR and how it relates
to C#, then you have to deal with all the public, private, etc,
syntaxis for constructors/destructors. I don't see how anyone could
claim that C# is simpler to teach than python. I mean, (non-PC
statement follows), it's easier to teach retarded, blind children to
recite the lord's prayer backwards, in sign language, than it is to
get a working .net environment set up for actual use w/o installing
the latest visual studio. And not everyone had five-million dollars
(or a corporate license) to get the latest and greatest VS.

Regards,
Jordan

Kay Schluehr

unread,
Nov 19, 2007, 3:44:38 AM11/19/07
to
On 17 Nov., 14:46, Brian <not_here@no_where.com> wrote:

> Had a unsettling conversation with a CS instructor that
> teaches at local high schools and the community
> college. This person is a long-term Linux/C/Python
> programmer, but he claims that the install, config, and
> library models for C# have proved to be less
> problematic than Python. So both his courses (intro,
> data structs, algorithms) are taught in C#.

I don't understand this complaint. How does your instructor installs
libraries for C#? When he uses Linux for teaching purposes I assume
his students have little problems typing some shell commands and when
he uses Windows his students might feel comfortable double clicking on
a Windows installer - most likely containing prepackaged binaries.
What have I missed?

Kay

alain

unread,
Nov 19, 2007, 4:47:42 AM11/19/07
to

I think i understand his complaint.
Have you ever tried to install a package making use of easy_install?
If you have, then you understand this is a real pain in the ass,
especially if your internet access requires proxy authentication.
The world was easy before easy_install !

Alain

kyos...@gmail.com

unread,
Nov 19, 2007, 9:52:10 AM11/19/07
to
On Nov 17, 7:46 am, Brian <not_here@no_where.com> wrote:

If this professor was only using Windows for his environment, then I
might be able to understand his argument better. There are many more
external modules for Python that don't have Windows installers than
there are with binaries. And I've had more than my fair share of
broken setup.py files.

On the other hand, if all that is needed are the standard libraries,
than it's a breeze to install Python since they're all included.

Mike

Chris Mellon

unread,
Nov 19, 2007, 10:57:58 AM11/19/07
to pytho...@python.org

These modules exist, but aren't that common. Certainly anything you're
likely to be using in an introductory compsci course is well packaged.
And even if it's not, it's really not that hard to create packages or
installers - a days work of course prep would take care of the
potential problem.

kyos...@gmail.com

unread,
Nov 19, 2007, 11:44:07 AM11/19/07
to
On Nov 19, 9:57 am, "Chris Mellon" <arka...@gmail.com> wrote:

I stand corrected. Thanks for the clarification.

Mike

Diez B. Roggisch

unread,
Nov 19, 2007, 12:47:37 PM11/19/07
to
alain schrieb:

setuptools might not be flawless, but it works for me most of the times
- and always better than pure distutils.

BTW, you can download eggs and install them from files - so while
teaching easy_install how to deal with proxies (are these still used by
anyone - I thought that was in the 90ties... ) certainly would be good,
it isn't necessary.

Diez

Message has been deleted

Aaron Watters

unread,
Nov 19, 2007, 1:58:27 PM11/19/07
to
On Nov 19, 3:44 am, Kay Schluehr <kay.schlu...@gmx.net> wrote:
> On 17 Nov., 14:46, Brian <not_here@no_where.com> wrote:
> What have I missed?

Microsoft has a free download version of Visual Studio
which you can install in one go that has basically everything
you might want to cover in the first 2 or 3 programming
classes built in. Also, when it comes to making things easy
the magic "intellisense" in VS cannot be beat, and stricter
typing rules tend to keep'em out of trouble. I've seen
moderately skilled programmers get confused about list.append
versus list.extend -- it wouldn't happen in C#.

I would suggest that Python might be better for
more advanced classes like data structures
because Python cuts out all those declarations that get
in the way of understanding. For example you could implement
a binary tree in Python in 5 minutes of typing, providing
"just the facts, M'am", whereas even
with intellisense help it would take 15 minutes in C# and
the students would be totally lost in the details when
you were done.

It's also possible that once you break'em in a bit
beginner students would make better progress with more
advanced concepts by making use of the interactive
interpreter. I've taught java and C# where the students
freeze in abject fear when they confront their first
array -- Python lists are much less intimidating at
the interactive prompt. At the beginning, however, I would
agree that C# has some serious advantages. I don't
see anything wrong in teaching a bit of both, tho.

Students also like to learn languages which they can
find in the "help wanted" section very easily ;).

-- Aaron Watters

===
http://www.xfeedme.com/nucular/pydistro.py/go?FREETEXT=perverse+zone

Diez B. Roggisch

unread,
Nov 19, 2007, 4:51:11 PM11/19/07
to
Dennis Lee Bieber schrieb:
> On Mon, 19 Nov 2007 18:47:37 +0100, "Diez B. Roggisch"
> <de...@nospam.web.de> declaimed the following in comp.lang.python:

>
>> BTW, you can download eggs and install them from files - so while
>> teaching easy_install how to deal with proxies (are these still used by
>> anyone - I thought that was in the 90ties... ) certainly would be good,
>> it isn't necessary.
>>
> Company firewall blocks practically anything that doesn't come down
> from a web-browser...

Which is a totally different thing from a proxy. And I'd think that
nowadays most proxies are transparent.

>
> I've never been able to figure out how to install a downloaded egg
> -- the installer, even with the file in the same directory, still seems
> to try to find a web copy and dies on the firewall.

easy_install <egg>

works for me. Of course you need to install dependencies. It might even
work to do

easy_install <egg1> <egg2> ....

but I don't know for sure anymore.

Diez

Tim Roberts

unread,
Nov 19, 2007, 11:16:46 PM11/19/07
to
Dennis Lee Bieber <wlf...@ix.netcom.com> wrote:
>
>On Sun, 18 Nov 2007 14:29:06 -0800, John Nagle <na...@animats.com>

>declaimed the following in comp.lang.python:
>
>> shared hosting server and see how far you get. Or try to install
>> the same set of modules on both Linux and Windows.
>>
> Try installing anything .NETish on Linux?

Unfortunately, depending on your viewpoint, it works just fine, thanks to
the hard work that has gone into the Mono project.
--
Tim Roberts, ti...@probo.com
Providenza & Boekelheide, Inc.

Message has been deleted

Aaron Watters

unread,
Nov 20, 2007, 10:20:37 AM11/20/07
to
On Nov 19, 1:41 am, MonkeeSage <MonkeeS...@gmail.com> wrote:
> On the other hand, C# and .NET seems like a lot of baggage to bring to
> the table. First off, you have to introduce the CLR and how it relates
> to C#, then you have to deal with all the public, private, etc,
> syntaxis for constructors/destructors. I don't see how anyone could
> claim that C# is simpler to teach than python. I mean, (non-PC
> statement follows), it's easier to teach retarded, blind children to
> recite the lord's prayer backwards, in sign language, than it is to
> get a working .net environment set up for actual use w/o installing
> the latest visual studio. And not everyone had five-million dollars
> (or a corporate license) to get the latest and greatest VS.

You've got some good points that are not
necessarily the case any more. The free
version of Visual Studio from MSFT installs
with no problems as far as I can tell,
especially on recent Windows OS's. The
extra complexity of "static public void Main()..."
&c is scary and confusing, but you can just tell
the students to "ignore that stuff for now."
You don't have to talk about the CLR at all;
the students naturally take it for granted.
In VS when you start typing something,
VS makes a pretty good guess what you are
trying to do and offers to complete it for you
-- which would be really nice to have in
Python (and unavailable afaik, at least at
that level of sophistication). When you make
a syntax or type error you get a red squiggly
underline, and so forth.

On the other hand I still think that the Python
interactive interpreter is the coolest thing
about Python for beginners. It's the only
language I know where you could seriously
start introducing basic concepts of strings,
hash tables, and arrays (lists/tuples) in the
first hour or so to students below MIT
level of preparation. This is primarily because the
interactive interpreter and Python's nice
syntax make everything so accessible. In C#
you might get into arrays or strings in week 3+
and hash tables and other scary things would
probably wait for the second course.

IronPython anyone? (btw, what's up with IronPython?)

-- Aaron Watters

===
http://www.xfeedme.com/nucular/pydistro.py/go?FREETEXT=crash+many+ways&FocusId=1593

sjde...@yahoo.com

unread,
Nov 20, 2007, 3:36:23 PM11/20/07
to
FWIW it's trivial to run pyflakes on your code (automatically behind
the scenes) to get syntax checking; in vim, my syntax errors get
underlined immediately for python code. It's especially nice for
large web applications, where having to go reload a page only to
discover you typed "if a=1:" or some silliness actually takes some
amount of time.

I also get function prototypes on the status line (so, e.g., the
elsethread example of confusing list.extend and list.append is
mitigated to a large degree).

Dynamic typing loses some info, but you can get most of the big
benefits with it.

John J. Lee

unread,
Nov 20, 2007, 3:43:50 PM11/20/07
to
"Chris Mellon" <ark...@gmail.com> writes:
[...]

> These modules exist, but aren't that common. Certainly anything you're
> likely to be using in an introductory compsci course is well packaged.
> And even if it's not, it's really not that hard to create packages or
> installers - a days work of course prep would take care of the
> potential problem.

"A day's worth of course prep" for beginners would let them debug all
the crap that building MySQLdb on Windows might throw at them, for
example? I think not! (MySQLdb, last time I looked, was one of the
not-so-obscure modules that don't have a Windows installer available
and kept up to date. Maybe it does now, but that's not really the
point.)

I certainly don't recognise what some people have been saying, though.
It's a rare thing that I have any real pain installing a Python module
on Linux. That's not to say you don't need some background knowledge
about distributions and Python if doing it "by hand", of course
(rather than with a packaging tool like apt-get). Occasionally you'll
want the newest version of something, which will in turn occasionally
get you into some grim automake issue or similar. But all of this can
be entirely avoided in an introductory course -- simply restrict
yourself to what can be installed with apt-get (if the instructor
feels they *must* make some new library available, they can always
package it themselves).


John

Patrick Mullen

unread,
Nov 20, 2007, 5:01:33 PM11/20/07
to pytho...@python.org
(Oops, sent as private, reposting to list)

On Nov 20, 2007 12:36 PM, sjde...@yahoo.com <sjde...@yahoo.com> wrote:

> FWIW it's trivial to run pyflakes on your code (automatically behind
> the scenes) to get syntax checking; in vim, my syntax errors get
> underlined immediately for python code. It's especially nice for
> large web applications, where having to go reload a page only to
> discover you typed "if a=1:" or some silliness actually takes some
> amount of time.
>
> I also get function prototypes on the status line (so, e.g., the
> elsethread example of confusing list.extend and list.append is
> mitigated to a large degree).
>
> Dynamic typing loses some info, but you can get most of the big
> benefits with it.
>

> --
> http://mail.python.org/mailman/listinfo/python-list
>

That sounds really cool. What do I have to do to set up vim so it
does that for me?

Back on topic, I don't think python has lost it's simplicity. It has
added many features in the last few versions, but none of them are
requirements for learning. There are some things in python that I can
see might be sticky points for instructors, but these things have
always been an issue. The IDE is one thing. With python being
agnostic about so many things, such as the IDE, an instructor has to
choose which ide would be best to teach with. And none of the ides
available can match Microsoft's offering (One of the best, if not THE
best IDE available for any language). As someone who only uses 2% of
the features of an IDE if I am ever forced to use one, I don't respect
that, but many people swear by it. The interactive interpreter is
great as well, but that scenario doesn't work well for everybody. If
someone doesn't have much experience with command line tools, than a
microsoft word-ish (like VS) interface is going to be more condusive
for them.

You also have to think about a classroom scenario. I think python
works very well for pair programming, one-on-one tutoring, or through
text correspondence. In a class, there are many situations for error.
Being tab-based is a real problem in this instance, when trying to
tell someone how to write something. You have to be clear about where
to tab over. With blocks, it is much easier to verbalize. I have run
into this when helping people to code in person, but with one-on-one
and their full attention it's not so hard to disambiguate things. In
a classroom where many people are having different sorts of problems,
I can see where issues might crop up.

Then the library situation, which is a strength and weakness of
python. It is starting to be remedied with easy_install, but
easy_install on windows is a joke (and there are still issues with it
under linux at times). There are many libraries but on windows it can
often be a chore to track down the ones that you want, and while the
batteries are included with respect to strong language features and
web modules; the batteries are definitely missing in some key areas:
gui (tk is really quite awful, hard to learn, and ugly), web
application, graphics (pygame, PIL, opengl), sound/music (uh, any
standard libs for this? pygame is the only one that comes to mind for
me), etc.

I'd like to see a few things. Easy install being included with pygame
as standard, with a gui. Ability to browse the cheesshop and look for
specific things, such as image processing, graphics display, gui, etc.
A list of suggested extra libraries to install when you run the
python installer: (Tick off the web framework(s) you want to install).
A nicer default gui (don't know what that would be, yes I am aware of
the huge flame war and wound this would open up). A slightly improved
interpreter - when entering a long function and getting it wrong, I
want to bring back the whole function, not just line by line. A
better standard IDE - too bad the best ones all seem to be commercial.

So that is mostly a wish list, and some of those things will never
happen, but the standard easy install with a gui would be a good thing
to work towards for the windows world.

sjde...@yahoo.com

unread,
Nov 20, 2007, 7:08:14 PM11/20/07
to
On Nov 20, 5:01 pm, "Patrick Mullen" <saluk64...@gmail.com> wrote:
> (Oops, sent as private, reposting to list)
>
> On Nov 20, 2007 12:36 PM, sjdevn...@yahoo.com <sjdevn...@yahoo.com> wrote:
>
>
>
> > FWIW it's trivial to run pyflakes on your code (automatically behind
> > the scenes) to get syntax checking; in vim, my syntax errors get
> > underlined immediately for python code. It's especially nice for
> > large web applications, where having to go reload a page only to
> > discover you typed "if a=1:" or some silliness actually takes some
> > amount of time.
>
> > I also get function prototypes on the status line (so, e.g., the
> > elsethread example of confusing list.extend and list.append is
> > mitigated to a large degree).
>
> > Dynamic typing loses some info, but you can get most of the big
> > benefits with it.
>
> > --
> >http://mail.python.org/mailman/listinfo/python-list
>
> That sounds really cool. What do I have to do to set up vim so it
> does that for me?

I'm leaving for the holidays in 5 minutes, I'll post my configs when I
return (Monday-ish). Feel free to email me a reminder on Monday...

The basic concept should work fine in emacs, but the glue would need
someone to implement it (my grand scheme plan is to do it over with
the NetBeans integration interface so that vim/xemacs/whatever would
pick it up okay, but I'm not sure if that API is featureful enough).

BlueBird

unread,
Nov 21, 2007, 9:04:10 AM11/21/07
to


On Nov 20, 9:36 pm, "sjdevn...@yahoo.com" <sjdevn...@yahoo.com> wrote:

> FWIW it's trivial to run pyflakes on your code (automatically behind
> the scenes) to get syntax checking; in vim, my syntax errors get
> underlined immediately for python code.

Can you describe your setup a bit more precisely ? I'm interested in
this kind of development help. I had a quick look at pyflakes but I
haven't found any signs of vim integration.

> I also get function prototypes on the status line

I'm interested in that as well !

regards,

Philippe

Chris Mellon

unread,
Nov 21, 2007, 11:55:39 AM11/21/07
to pytho...@python.org
On Nov 20, 2007 2:43 PM, John J. Lee <j...@pobox.com> wrote:
> "Chris Mellon" <ark...@gmail.com> writes:
> [...]
> > These modules exist, but aren't that common. Certainly anything you're
> > likely to be using in an introductory compsci course is well packaged.
> > And even if it's not, it's really not that hard to create packages or
> > installers - a days work of course prep would take care of the
> > potential problem.
>
> "A day's worth of course prep" for beginners would let them debug all
> the crap that building MySQLdb on Windows might throw at them, for
> example? I think not! (MySQLdb, last time I looked, was one of the
> not-so-obscure modules that don't have a Windows installer available
> and kept up to date. Maybe it does now, but that's not really the
> point.)
>

A days worth of course prep would allow the professor (or his TA, more
likely) to produce a set of installers that's suitable for use with
the course. This is a comp sci course, not a "how to sysadmin a Python
installation" course.

For the record, it took me less than 3 minutes to install MySqldb, the
first time I've ever needed to do it - I don't like or approve of
MySql. Steps required: Google for "mysql python" and click through 3
or 4 links to the SF download page. Download the binary installer,
from March 2007. Not exactly rocket science.

On a similar note, I have or create executable installers for all the
third party modules I use, because I need to provide them to the
people who do our deployments. This has never been much of a burden.

> I certainly don't recognise what some people have been saying, though.
> It's a rare thing that I have any real pain installing a Python module
> on Linux. That's not to say you don't need some background knowledge
> about distributions and Python if doing it "by hand", of course
> (rather than with a packaging tool like apt-get). Occasionally you'll
> want the newest version of something, which will in turn occasionally
> get you into some grim automake issue or similar. But all of this can
> be entirely avoided in an introductory course -- simply restrict
> yourself to what can be installed with apt-get (if the instructor
> feels they *must* make some new library available, they can always
> package it themselves).
>
>

The obstacles as presented in the OP seem pretty bogus to me. Of
course, it's third hand anecdotal evidence, so there's not much of a
reason to believe that the original statement really preserves the
essence of the problem.

I'd be pretty interested if the OP could ask his associate to chime in
with some of the actual issues he encountered

Brian

unread,
Nov 22, 2007, 4:04:42 PM11/22/07
to

/ Chime Mode <ON>
I have, in fact, sent this thread to my friend.
His limiting factors are

- money-control people favor MS platforms
- C# and VS have minimal cost impact for academia
- sys admins have everything locked down (probably
essential for high school and community college)
- both Python 2.4.2, then 2.5.1, on XP and Win2k
crashed approx 10% of lab cptrs, so lab techs refused
to allow further install of any 'third-party' s/w.
(side note - I have installed Python and all the
supporting stuff for PyVISA on 14 work-site (11 XP, 3
Debian) cptrs with no problem, so I do not understand).
- no such thing as TAs in JC or HS.
- CS instructors, for the effected schools, are not
allowed to config machines or admin the network.
- money-control people want students to learn skills
that are on the IT buzz-word list.
- my friend is no longer allowed to use me as an
'unofficial' assistant in these classes (not considered
qualified because I only have a B.S. degree), so he
only uses stuff that existing staff are (supposedly)
familiar with...
/ Chime Mode <OFF>

I told my friend, the wannabe Python instructor, to
walk away from any more volunteer work, and stick to
the paid stuff. American education, what a mess...

luck,
Brian

John J. Lee

unread,
Nov 22, 2007, 4:23:02 PM11/22/07
to
"Chris Mellon" <ark...@gmail.com> writes:

> On Nov 20, 2007 2:43 PM, John J. Lee <j...@pobox.com> wrote:
>> "Chris Mellon" <ark...@gmail.com> writes:
>> [...]
>> > These modules exist, but aren't that common. Certainly anything you're
>> > likely to be using in an introductory compsci course is well packaged.
>> > And even if it's not, it's really not that hard to create packages or
>> > installers - a days work of course prep would take care of the
>> > potential problem.
>>
>> "A day's worth of course prep" for beginners would let them debug all
>> the crap that building MySQLdb on Windows might throw at them, for
>> example? I think not! (MySQLdb, last time I looked, was one of the
>> not-so-obscure modules that don't have a Windows installer available
>> and kept up to date. Maybe it does now, but that's not really the
>> point.)
>>
>
> A days worth of course prep would allow the professor (or his TA, more
> likely) to produce a set of installers that's suitable for use with
> the course. This is a comp sci course, not a "how to sysadmin a Python
> installation" course.

Ah, sorry, misread what you wrote. I made the same point in my next
paragraph, so perhaps the misunderstanding's mutual :-)


> For the record, it took me less than 3 minutes to install MySqldb, the
> first time I've ever needed to do it - I don't like or approve of
> MySql. Steps required: Google for "mysql python" and click through 3
> or 4 links to the SF download page. Download the binary installer,
> from March 2007. Not exactly rocket science.

That's great, though I don't see the connection with what I wrote.

Within the last year or so (IIRC) a MySQLdb Windows installer was not
available. And ISTR grumpy noises coming from the corner of the
ReportLab office where AFAIK the only Windows binary publically
available shortly thereafter was built -- albeit an unofficial,
unsupported binary. So I guess the fact that the MySQLdb maintainer
wasn't (isn't?) a Windows user didn't make the build process silky-
smooth ;-)

My point was that it's by no means unheard of for popular Python
modules to be unavailable as Windows binary installers.


> On a similar note, I have or create executable installers for all the
> third party modules I use, because I need to provide them to the
> people who do our deployments. This has never been much of a burden.

[...]

That's nice too. Other people have not found it so easy. OTOH, ISTR
that current MinGW / MSYS / Python / distutils make it easier for
people who don't have the appropriate MS compiler, so perhaps the
situation has improved over the last 12 months...


John

Toni Mueller

unread,
Nov 23, 2007, 1:03:09 PM11/23/07
to
davis...@gmail.com wrote:
> On Nov 17, 8:25 am, Donn Ingle <donn.in...@gmail.com> wrote:
>> If you are online and the app runs, it can check the "freshness" of your
>> modules (those called from the app and recursively) and offer to fetch the
>> latest stable versions.
>>
>
> Something similar to Java's webstart? Implement an __import__ hook
> that downloads and caches the latest (stable) versions of libraries as
> needed.

I'm not too involved yet, but I have this association with what you wrote:

http://plone.org/documentation/tutorial/buildout


I guess that this could be adapted/used in other cases as well, as


$ paster create --list-templates
Available templates:
basic_namespace: A project with a namespace package
basic_package: A basic setuptools-enabled package
basic_zope: A Zope project
nested_namespace: A project with two nested namespaces.
paste_deploy: A web application deployed through paste.deploy
...some more plone stuff here...

doesn't list only Zope&Plone stuff. But then I also don't know Java's
webstart, so...

Best,
--Toni++

Patrick Mullen

unread,
Nov 23, 2007, 1:31:02 PM11/23/07
to pytho...@python.org
> --
> http://mail.python.org/mailman/listinfo/python-list
>

Wow... Sounds like in this instance (and probably most such cases),
none of the problems are really python related. Just a stupid
institution thing. Everyone uses MS because it's what they are used
to, and MS pays a lot to keep it this way. The only somewhat valid
strike against python is the crashing, which is a real WTF. My guess
is that python was not the cause of the crashes, and the admins
assumed so since they were prejudiced against it. I had python crash
at school pretty much immediately after installing it, but guess what
- other people in the same lab have their vista computers crash
frequently without installing python. Uh, maybe microsoft and their
crappy vista OS is to blame... Oh, and I told the admins about the
crashes and they said they have never seen them crash. ... Ok. How
come every time I come into lab and turn the computer on it gives me
the "your computer had a problem, do you want me to send data to
microsoft about it?". Lol.

I still think that python does inherently have some issues with regard
to teaching it in a classroom setting, but it's mostly minor quibbles.
Obviously in America, the main problem is we just can't possibly hope
to displace the juggernaut.

Chris Mellon

unread,
Nov 23, 2007, 11:00:26 AM11/23/07
to pytho...@python.org


Pretty unfortunate stuff, especially that he doesn't have any
permission to configure the machines for his course. These are all
(mostly?) political problems in his specific situation, though, not
issues with Python per se - except in the general sense that Python
doesn't get much respect.

Except possibly the crashes, although honestly public school computer
labs tend to be incredibly hostile environments (admin lockdowns
notwithstanding).

Support for even mildly off the beaten track thinking is in short
supply in most schools, I'm sad to hear of your friends problems.

Jacob Hallen

unread,
Dec 8, 2007, 4:57:49 PM12/8/07
to
In article <mailman.1525.1195847...@python.org>,

When you install Microsoft software,like C#/.NET,and it fails, this is percieved as
your problem. You did not have the skills required to do the job.

When you fail to install third party software, like Python, this is percieved to
be a problem with the software package. The people building it did not have
the skills required to do the job properly.

Microsoft has this teflon effect. Never their fault that things do not work as
expected.

Jacob

--

Reply all
Reply to author
Forward
0 new messages