A story about Python... sort of
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
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.
More information about the Python-list