Python vs. C#

Brandon J. Van Every vanevery at 3DProgrammer.com
Tue Aug 12 14:52:09 EDT 2003


Cliff Wells wrote:
> On Sun, 2003-08-10 at 13:55, Brandon J. Van Every wrote:
>
>> Java and C# are the obvious languages that are not going away.
>> Python?  What industrial entity is going to champion Python?
>
> Perhaps people who think for themselves and simply choose the best
> tool
> don't need shiny brochures and a pat on the back from a salesman to
> feel they've made a good choice.

If I had coffee, I'd be the one choking on it.

> You're starting to sound like your
> research was done on page 3 of PC Magazine.

And how many corporate managers do you think do exactly that?

> If you think it takes major marketing to push a language, let me ask
> you
> this: what are you doing on this list?  No, really.  You couldn't
> possibly have discovered Python without a major corporate advertising
> campaign, so how did you find your way here?  It seems almost...
> contradictory.

Python is known in the game industry.  There's a steady trickle of
programmers who extol its virtues.  Unlike certain advocates in c.l.p, they
give both sides of the story.  A GDC 2002 speaker will not irresponsibly
sell you on merits, without commenting on integration issues with C++ and
the debugger environment.   Humongous Entertainment, for instance, "solved"
problems of this sort by writing an open source debugger.  Also, the
companies using Python seem to be writing 2D adventure games (low
performance app) and scripts for Massively Multiplayer Online Games (stuff
is gonna get scripted in something).  Not 3D engines.

In my case, I thought I needed a scripting language for user AI extensions
in my game.  I had absolutely no interest in inventing a scripting language,
so I surveyed all available scripting languages for their merits and
demerits.  Python emerged as the one with the best features, the simplest
syntax, and most importantly the best community support.  The downside
appeared to be performance.  But overall, it looked like the best fit to the
problem.

As it turned out, the problem went away.  Looking closer and closer at the
AI problems, I had serious reservations that any casual hobby programmer
could handle low level AI problems without serious brainpower and hard work.
There was no point in providing the service if few to no people would use it
in practice.  I decided that I should do the low level AI stuff in whatever
langauge was appropriate, probably C++.  Once I had a more stable, high
level API for what I was doing, then worry about user AI.  So now I had no
immediate reason to use Python.

Looking for reasons why I might still use Python, I examined 2D + 3D GUI
problems.  Could I get cross-platform widgets that could be skinned for game
development and would run on any platform?  Would they integrate well with
my 3D code?  I found at least one project along those lines, but as a
sideshow project without a lot of industrial testing, I wasn't willing to
make a big learning curve committment just over that.  It didn't look "prime
time" and the whole point of switching to Python is to save work, not create
it.  So I put that idea on the backburner.

More recently I've realized what a chore C++ is, and how it limits my
development.  I hate the look of STL, I"ve always avoided it, and I could
really use lists, collections, dictionaries, etc. for some problems.  I've
never done much memory management, but even the tiny amount that I have done
tends to be tedious.  So recently I started considering the advantages of
higher level languages.

Available were: Python, Java, C#.  They can all do the "higher level
language" job, but C# currently has slam dunk advantages on the Windows
platform.  It's pretty much a no-brainer for a Windows developer who's been
doing lotsa C++ but is tired of it.

>> But I am not seeing Python's overwhelming utility compared to other
>> languages.
>
> Then perhaps you should spend less time trolling the newsgroups and
> more time programming.

Perhaps you should spend more time programming on Windows.

> Perl isn't a bad language?  Perl is a terrific tool but a terrible
> language.  I could go on, but I think your own statements sum up your
> abilities to make any sort of qualitative judgement regarding
> programming languages.  No wonder you chose C++.

Please notice my e-mail address as to what kinds of tasks have been
historically most important to me.  If you don't see why C++ is a better fit
to low-level 3D graphics problems than Python, well....

-- 
Cheers,                         www.3DProgrammer.com
Brandon Van Every               Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.





More information about the Python-list mailing list