A story about Python... sort of

Dave Brueck dave at pythonapocrypha.com
Mon Jul 7 02:19:41 CEST 2003


On Thursday 03 July 2003 11:48 pm, Russell Reagan wrote:
> "Dave Brueck" <dave at pythonapocrypha.com> wrote
>
> > > I
> > > mean, is Linux (or Windows) 'not a viable project'??
> >
> > Well, again, neither of those are "applications level" projects.
>
> There is a rather large industry which I'll call "computer games" that is
> rather CPU intensive, and AFAIK the vast majority of those games are
> written in C/C++. It really depends on the definition of "application
> level". If we're only including things like word processors and web
> browsers in the "application level", then there isn't a great need for C++
> in the
> "application level", 

Actually, games are a particularly good example to illustrate the point:

1) In the movement away from a lower-level language, games are probably one of 
the last hold-outs since performance often means so much. Still, even games 
do make the transition - the transition away from assembly being the main 
example.

2) Even the most performance-intensive games of today are already 
transitioning towards higher-level languages - is there any major 
first-person shooter or real-time strategy game coming out these days that 
doesn't boast a powerful scripting language? With each new generation of 
games the developers try to push more and more of the functionality into 
their scripting engine leaving as little as possible behind in C/C++ - the 
render loop, *some* of the AI, etc. Not only is the game customizable by the 
customers, the developers themselves prefer it because of fewer bugs and it 
makes it much easier to try new and cool stuff out.

3) More and more of the performance-intensive work is handled by hardware 
nowadays anyway - both video and audio. Furthermore, the game itself usually 
relies on a pretty rich and powerful supporting library like OpenGL or even 
DirectX, which depending on the route you take can supply a ton of the 
functionality that the game developer would normally write in C or C++.

4) All of the above mean that in many cases you already *can* do some pretty 
elaborate games in higher-level languages (the games listed on Pygame are a 
great example), and there's every indication that the trend will continue.

There came a time when it was no longer economically viable to develop an 
entire game in assembly, and IMO we've *already* passed the point where it's 
no longer economically viable to develop most games entirely in C++ - the 
time to market is too long, it's too expensive to add new features, 
recovering from early incorrect decisions is too costly, etc. Games are 
moving to higher-level languages as much as they can because it's a 
competitive advantage to do so.

> but there are certainly areas where speed and memory
> efficiency is important.

Oh, nobody disagrees with that. But due to increases in efficiency and 
decreases in prices, the number of cases is shrinking wherein speed and 
memory constraints require you to drop to a lower-level language.

-Dave





More information about the Python-list mailing list