To Perl or Not to Perl
Hi
I am going to learn Perl as a good scripting language under Linux, besides it's very portable.
However, friends suggest that I should learn the C# and .NET as it's the most
powerful platform, thing I don't really beleive.
What's my area of interest? Game programming.
What would John Carmack recommend to learn, or what languages does he know well for his job (other than C/C++)?
Thanks.
December 20, 2004 05:34 AM
Perl is not a great language to learn for game programming. Not least because its syntax (or lack thereof) encourages really rather nasty style.
Personally I would think it would be better to learn C/C++ if you want a standard language. Many game scripting languages are closer to C + C++ than perl.
You could also learn a scripting language built into a game engine. The Garage Games Torque engine is really rather nice, and has a scripting language.
In terms of other 'standard' languages - lua and python seem to be quite popular as game scripting languages.
Bottom line is perl is great as a hacky, sysadmin, text processing language - as designed. But its not really a good language to learn for game scripting.
Personally I would think it would be better to learn C/C++ if you want a standard language. Many game scripting languages are closer to C + C++ than perl.
You could also learn a scripting language built into a game engine. The Garage Games Torque engine is really rather nice, and has a scripting language.
In terms of other 'standard' languages - lua and python seem to be quite popular as game scripting languages.
Bottom line is perl is great as a hacky, sysadmin, text processing language - as designed. But its not really a good language to learn for game scripting.
Perl is good for system scripting and small applications where complex string handling is required. Not for game scripting and even less for game programming. Perl is not suitable for large applications. If you want something more versatile and easy, use python. But I would recommend trying C++ first of all.
Don't learn Perl. The entire language is being redesigned, which is proof that they've finally conceded that they got it wrong the first time. The delay in actually releasing Perl 6 suggests that they're getting it wrong again.
C# and .NET are powerful, and hold the promise of portability, but it isn't fully realized yet. In the interim, I recommend Python as well. Best of all, there are two Python for .NET implementations in the works, one of which is being authored by the creator of Jython (Python running on the Java VM), who now works at Microsoft on the CLR team. In other words, learning Python lets you get to work right now and move to .NET in the future.
C# and .NET are powerful, and hold the promise of portability, but it isn't fully realized yet. In the interim, I recommend Python as well. Best of all, there are two Python for .NET implementations in the works, one of which is being authored by the creator of Jython (Python running on the Java VM), who now works at Microsoft on the CLR team. In other words, learning Python lets you get to work right now and move to .NET in the future.
Perl is great for system administration and text processing, but it doesn't lend itself to other tasks very well.
---New infokeeps brain running;must gas up!
I often use Perl in game programming - but the Perl code doesn't form part of the finished product.
I find it useful to do little bits of hacky repetitive scripting for stuff - particularly given that I find shell scripts too limited / hacky.
True, Perl may be only a small step up from Shell, but it's a big enough step for the simple stuff I use it for.
I never write games in it though :)
Things I've used Perl for:
- Creating level data file for J2ME breakout game
- Mangling 2d vector graphics formats (various)
- Scripts to do image scaling / packing into data files.
Mark
I find it useful to do little bits of hacky repetitive scripting for stuff - particularly given that I find shell scripts too limited / hacky.
True, Perl may be only a small step up from Shell, but it's a big enough step for the simple stuff I use it for.
I never write games in it though :)
Things I've used Perl for:
- Creating level data file for J2ME breakout game
- Mangling 2d vector graphics formats (various)
- Scripts to do image scaling / packing into data files.
Mark
Perl has largely been superceded by python. It's pretty much legacy now.
I agree. If you want to learn a new language that isn't Java or C/C++, learn Python. Python rocks.
As for john carmack, he writes machine code in his sleep. When he's awake, he just merges with his workstation and the code flows directly from his neural network into the game executable.
As for john carmack, he writes machine code in his sleep. When he's awake, he just merges with his workstation and the code flows directly from his neural network into the game executable.
=========================Buildium. Codium. Fragium.http://www.aklabs.net/=========================
You guys are saying some pretty nasty things about Perl. What did it every do to you?
Perl is a very powerful and, potentially very elegant language. Maybe you should tell Amazon.com that is is a "legacy" language, not suited for large applications.
Perl6 is not evidence 'they' (Larry Wall) 'got it wrong', any more than Java 3 is evidence that Sun 'got it wrong' with Java 2, or php5 means php4 was 'wrong'. That is just silly.
That being said, while Perl is a *great* tool to have in your toolbox, it is *not* very well suited to graphically intensive game programming.
An example Perl/SDL game:
http://www.frozen-bubble.org
Perl is a very powerful and, potentially very elegant language. Maybe you should tell Amazon.com that is is a "legacy" language, not suited for large applications.
Perl6 is not evidence 'they' (Larry Wall) 'got it wrong', any more than Java 3 is evidence that Sun 'got it wrong' with Java 2, or php5 means php4 was 'wrong'. That is just silly.
That being said, while Perl is a *great* tool to have in your toolbox, it is *not* very well suited to graphically intensive game programming.
An example Perl/SDL game:
http://www.frozen-bubble.org
Quote: Original post by grazerPlenty. But it's too painful to get into.
You guys are saying some pretty nasty things about Perl. What did it every do to you?
Quote: Perl is a very powerful and, potentially very elegant language. Maybe you should tell Amazon.com that is is a "legacy" language, not suited for large applications.People write large applications in assembly. Doesn't mean it's suited for it; it means it's what they wrote it in. Perl for web applications is an artefact of CGI, while mod_perl is a "re-jiggerification" to eliminate the out-of-proc overhead. Still doesn't make it elegant or well-suited.
But that's not even my beef. No, my beef lies in the language itself. Because of its time and place, it has been eclipsed by advances in programming technology (hello, bless?) The fact that the entire language has to be rewritten, that a VM of sorts (Parrot) is being introduced, that the next version of the language bears just about zero resemblance to its predecessor is a clear indication that they should have just moved on to something new rather than trying to redefine the language. It's like C and C++; there is no way C++ would have succeeded if it was trying to just be the "next version" of C.
Quote: Perl6 is not evidence 'they' (Larry Wall) 'got it wrong', any more than Java 3 is evidence that Sun 'got it wrong' with Java 2, or php5 means php4 was 'wrong'. That is just silly.Your analogy is silly, because you don't grasp the crux of mine. It's not versioning, numbskull. It's a major syntactic break. You don't do that. You move on and call it a new language. Why didn't the makers of Java try to pass their language off as C++2 (which was a large part of its intent)? Why wasn't C++, C2? (As for why Coca-Cola named their low-carb version C2, we shall never know.)
Perl 6 is evidence that Perl 5, as a logical extension of Perl 1, has reached its limits. At that point, Larry should have made a clean break rather than trying to trade on the name of Perl. I predict failure, particularly because the delay and the costs of transition without the subtle psychological reassurance that you are in unfamiliar territory, have made Perl 6 an inferior choice to Python out of the box for existing Perl programmers. Only time will tell if there's enough effort put into making the language appealing to current non-Perl users.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement