Hi Ryan,

Smile. Just a couple of corrections. I think you misunderstood a
couple of things I said. Plus I think I owe you somewhat of an apology
too.

RS: PyGame does have joystick support. It has mouse support as well. And
while the sound mixer may be lacking, there are other libraries that can
pick up the slack. Libraries like those found at
http://hg.qwitter-client.net. It's also worth pointing out that all of these

TW: I did not say it didn't have joystick support I said it does not
support joysticks with force feedback. Big, big, big difference here.
I'm well aware PyGame supports joysticks, as SDL does, but joystick
support is very generic rather than advanced   support. That's what I
meant.
RS: I'm going to come out directly and say that the previous statement is
rather insulting. The language does not make the programmer, just as the
tools don't make the carpenter. If you want to be a pro and write pro-level
games, then learn to be a programmer and stick with what works for you.

TW: My apologies.I didn't mean it to come out that way. I certainly
didn't want to insult anyone.  I just want to express my opinion as I
see it. Coming from a CS background were we were instructed to use
C++, Java, SQL, etc I'm really having troubles accepting Python as
anything more thanan amateur/newby language used by script kiddies and
programmer wannabes.

Of course, I am well aware Python has been growing both in support and
has been used to write a number of high-quality applications putting
the lie to my personal opinions. In fact, the screen reader I'm using
right now, Orca, was written in Python 2.6, and I'm certainly not
complaining that Orca was written in Python. I actually don't care as
long as it works and lets me read/write e-mail, use Open Office,
browse the internet, etc. So in that  respect I know Python is more
than an amateur  language used by real professionals. What can I say
I'm biast.








On 4/23/11, Ryan Strunk <ryan.str...@gmail.com> wrote:
> Hi Tom,
>
> As a budding game developer, I want to respond to your below email to paint
> what I feel is a more accurate picture of the python language. I think there
> are a few additional points everyone really should consider before jumping
> headfirst into C#.net as I tried to, especially when that jump can meet with
> some pretty spectacular failures.
> I will proceed our statements and responses with initials.
>
> TW: On the plus side Python is easy to learn, is cross-platform, and there
> are a number of simple APIs like PyGame available to help you quickly get up
> and running with game programming. ... All of this makes Python look good on
> the surface.
>
> RS: This is exactly why Python *is* good, not just on the surface, but
> deeper down. Imagine being able to program a game right out of the box that
> will reach not only the Windows community, but the Mac community as well.
> How many of you out there are Mac users who lament the fact that you don't
> have any games to play on your computers because they've all been designed
> for windows? Python can fix that for you.
>
> Additionally, because Python is easier to learn, it's also easier to debug.
> It's a given that programmers spend far more time reading their code than
> they do writing it, and Python gives you the 1UP on that too. It's the
> difference between
> C#
> void main(string[args])
> {
> System.Console.WriteLine("Hello world");
> }
>
> And Python:
> print "Hello world."
>
> Even those of you who have never programmed a day in your life can see the
> difference.
>
> TW: On the down side Python is still a runtime language that requires an
> interpreter or runtime environment to run.
>
> RS: c# is compiled to MSIL, Microsoft Intermediate language. This is a type
> of Byte code. In other words, C# is also Interpreted. If you want more on
> the subject, check this out:
> http://en.wikipedia.org/wiki/Common_Intermediate_Language
>
> TW: ... if you are thinking about creating high performance games that have
> to update 40 to 60 times a second Python is going to exicute and run very
> slow. It was never designed to handle high performance applications like
> Shades of Doom, Mysteries of the Ancients, etc. For something like that you
> really need a triditional language like C++ to get the most performance out
> of your CPU power and memory.
>
> RS: Python was considered slow when it was first conceived nearly twenty
> years ago, back when engineers flatly rejected the idea that we could ever
> break the 1 gigahertz threshold on a computer's processor. Today our
> processors run far upwards of 1.0GHZ, and they often do it on multiple
> cores.
> While I will not dispute that there are speed advantages to running C-based
> languages, I also think it's important to point out that our accessible
> games will likely not reach the constraints of what Python is capable of any
> time in the near future. The boxing game I am currently developing updates
> its calculations 250 times a second with absolutely no slow-down.
>
> TW: Second, some of the APIs like PyGame aren't the best APIs available for
> game developers. PyGame is decent if you are going to produce a football
> game like Jim's NFL, Star Trek Final Conflict, or something like that ...
>
> RS: What about Sound RTS? That's far more advanced than either of those
> games.
>
> TW: but if you are thinking of something like Shades of Doom or Mysteries of
> the Ancients forget it. ... If you want only keyboard access PyGame is fine,
> but if you want advanced Joystick support like force feedback and things
> like that again no go. PyGame just doesn't have that kind of support yet.
>
> RS: PyGame does have joystick support. It has mouse support as well. And
> while the sound mixer may be lacking, there are other libraries that can
> pick up the slack. Libraries like those found at
> http://hg.qwitter-client.net. It's also worth pointing out that all of these
> libraries, like the Python language itself, are free to use. Developers
> don't have to shell out any expense for third party libraries or the
> development environment itself, for that matter.
>
> TW: Finally, there is the issue of using Python as a springboard to other
> programming languages. ... The problem is that you are going to have to
> start over from scratch if you use Python and switch to Java, C#, C++,
> whatever because you didn't learn much as it relates to other programming
> languages. In fact, it has been my personal opinion for a long time Python
> teaches programmers bad habits that make it difficult to adapt to other
> languages later on.
>
> RS: You're welcome to your personal opinion, but I want to give a few others
> for sake of balance:
>
> Peter Norvig is an American computer scientist. He is currently the Director
> of Research (formerly Director of Search Quality) at Google Inc. He writes:
> Several people have asked what programming language they should learn first.
> There is no one answer, but consider these points:
>
> Use your friends. When asked "what operating system should I use, Windows,
> Unix, or Mac?", my answer is usually: "use whatever your friends use." The
> advantage you get from learning from your friends will offset any intrinsic
> difference between OS, or between programming languages. Also consider your
> future friends: the community of programmers that you will be a part of if
> you continue. Does your chosen language have a large growing community or a
> small dying one? Are there books, web sites, and online forums to get
> answers from? Do you like the people in those forums?
> Keep it simple. Programming languages such as C++ and Java are designed for
> professional development by large teams of experienced programmers who are
> concerned about the run-time efficiency of their code. As a result, these
> languages have complicated parts designed for these circumstances. You're
> concerned with learning to program. You don't need that complication. You
> want a language that was designed to be easy to learn and remember by a
> single new programmer.
> Play. Which way would you rather learn to play the piano: the normal,
> interactive way, in which you hear each note as soon as you hit a key, or
> "batch" mode, in which you only hear the notes after you finish a whole
> song? Clearly, interactive mode makes learning easier for the piano, and
> also for programming. Insist on a language with an interactive mode and use
> it.
> Given these criteria, my recommendations for a first programming language
> would be Python or Scheme. But your circumstances may vary, and there are
> other good choices. If your age is a single-digit, you might prefer Alice or
> Squeak (older learners might also enjoy these). The important thing is that
> you choose and get started.
>
> With that in mind, here are 3 great articles
> Teach Yourself Programming in Ten Years: http://norvig.com/21-days.html
> Python as a First Language
> http://mcsp.wartburg.edu/zelle/python/python-first.html
> Why Python is a great language for teaching beginners in introductory
> programming classes http://www.stanford.edu/~pgbovine/python-teaching.htm
>
> TW: If you want to be an amateur game developer go with Python. However,
> ifyou want to be a pro, write really pro level games, then you have got to
> take the bull by the horns and learn something a bit more advanced than
> Python.
>
> RS: I'm going to come out directly and say that the previous statement is
> rather insulting. The language does not make the programmer, just as the
> tools don't make the carpenter. If you want to be a pro and write pro-level
> games, then learn to be a programmer and stick with what works for you.
> There are a number of languages out there, each with their own advantages
> and disadvantages. Saying that one can't be a professional developer unless
> one learns language X is wrong on so many levels. It's like saying you can't
> play chess properly if you can't speak Russian.
> And if anyone still needs more proof that Python can be a viable language,
> consider that Qwitter-client and the NVDA screen reader have both been
> developed in that language.
>
> Ryan
>
>
> ---
> Gamers mailing list __ Gamers@audyssey.org
> If you want to leave the list, send E-mail to
> gamers-unsubscr...@audyssey.org.
> You can make changes or update your subscription via the web, at
> http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
> All messages are archived and can be searched and read at
> http://www.mail-archive.com/gamers@audyssey.org.
> If you have any questions or concerns regarding the management of the list,
> please send E-mail to gamers-ow...@audyssey.org.
>

---
Gamers mailing list __ Gamers@audyssey.org
If you want to leave the list, send E-mail to gamers-unsubscr...@audyssey.org.
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/gamers@audyssey.org.
If you have any questions or concerns regarding the management of the list,
please send E-mail to gamers-ow...@audyssey.org.

Reply via email to