Python too complex ?!?!?!
python.list at tim.thechases.com
Sat Nov 17 15:21:20 CET 2007
> 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
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 >
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
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.
More information about the Python-list