Python too complex ?!?!?!
cyberco at gmail.com
Sun Nov 18 22:48:59 CET 2007
On Nov 17, 3:21 pm, Tim Chase <python.l... at tim.thechases.com> wrote:
> > 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 >
> 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.
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 :)
More information about the Python-list