Talk:Picking a Language

From GPWiki

Files:GUITutorial_warn.gif The Game Programming Wiki has moved! Files:GUITutorial_warn.gif

The wiki is now hosted by GameDev.NET at wiki.gamedev.net. All gpwiki.org content has been moved to the new server.

However, the GPWiki forums are still active! Come say hello.

Contents

Java Language vs Java Library

'Amos Wenger 03/04/2006 : I'm sorry to "pollute" this page with discussions, but I really have to feedback to this one. Being a Java game programmer, I oppose. Maybe by "limited", you mean that it hasn't some language features that C++ has.. But most of the time, they are useless, or they are bad programming practice, or non-oo. One limitation that could be mentioned is : no direct access to hardware. BUT PLEASE mention the JNI technology allow to write these low-level things in C/C++ then to compile & call them from Java. I think Java is too often smacked down in programming sites, and it's worth saying the truth about it. Adding a link to http://www.javagaming.org would also be a good idea.

I think the difference between the language and the library is worth making. I agree that Java does have an extensive library (though I question its cohesiveness), but the language is limited. Whether that's a good thing or a bad thing is debatable, but it's undoubtedly true. You can't do something as simple as put an Object on the stack even if you wanted to. --Me22 12:16, 14 April 2006 (EDT)
You also said "However, it is actually faster than C++ in some cases (like object instantiation)", which I cannot accept until you can prove it. I see no way that allocating memory on the heap for an object can ever be faster than simply putting it on the stack.

Machine Code Speed

I was just wondering, if two languages, both compiled to machine code, both written equivelent code, how can one langauge be faster than another if they both are completely the same code?

Well, what contributes to a language's speed can be pretty complicated. The compiler plays a large role. Some compilers are better than others, and on some you can specify different levels of optimization for code. Some languages may have features that incur a bit of overhead. Some languages may have flaws... There are tons of things.--Snoolas 20:07, 2 Sep 2005 (EDT)
Basically, the "higher level" the Programming Language is, the more difficult it is for the compiler to optimise the machine-code it produces. Machine Code doesn't have classes, polymorphism, method overloading and so on. All that has to be lead back to very basic functions like "move data from a to b" and "add data in b to data in a". Theoretically, C++ doesn't have to be slower that C, but a C++-Compiler that's supposed to produce Code as fast as comparable C-Code would have to be a lot smarter than the C-Compiler, because C isn't much more than macro-assembler. --Tannin 04:37, 31 May 2006 (EDT)
Well, classes are just tables of function pointers, so it's really not that much harder. --pfeilspitze 17:55, 31 May 2006 (EDT)

Ease of Use

Added supplementary info. to the Ease of Use section. I just felt that a language is much more easier to attain if it is related to a language already learned. For instance, C++ is easier to learn if C is learnt first. Delphi is more easier to learn if Pascal is learned first. Java is learnt best if OOP languages like C# are learnt first. See?

Yeah, that sounds alright. :) --Snoolas 08:18, 28 Aug 2005 (EDT)

OOP in C

Changed C's OOP from 'none' to 'very little'. A quick google search shows that its possible to do OOP in C, its just that a lot of typical OOP features are more easily done in other languages.

I can't say I agree with this edit. The pages you mention talk about essentially doing OOP from scratch. It really isn't, in my opinion a "feature" of the language. You can do the same thing with the most basic dialects of ASM. It isn't OOP. I think to qualify as an OO language it needs to provide automated interfaces to the various operations and actually say that OOP is a feature of the language. I won't edit until I get more feedback. --Snoolas 14:59, 9 Aug 2005 (EDT)
Well I mean, thats why he used 'very little'
But "Very Little" implies that there is support. I think I'm just going to edit it in a way that will fix the argument. --Snoolas 14:32, 10 Aug 2005 (EDT)
C doesn't have OOP Support, but that doesn't mean you can't write object-oriented code with it. Operating Systems like Windows or Linux are written in C but are very object-oriented (or else the code would hardly be managable). --Tannin 04:37, 31 May 2006 (EDT)

.NET

I don't think .NET was developed by Microsoft, IIRC it's an implementation of a proposed standard (which is why MONO and friends aren't getting any heat from MS lawyers) I'll confirm before editing. Codehead 17:52, 24 Jul 2005 (EDT) PS Cool article Snoolas. :)

Yeah, I suppose it would make sense... You do wonder why nobody's getting sued. If MS came up with the whole thing then it seems like they'd copyright it and everything.--Snoolas 19:18, 24 Jul 2005 (EDT)
True. .NET is an implementation of the Common Language Infrastructure (CLI), so it's not Microsofts Invention but afaik they had to buy a license. --Tannin 04:37, 31 May 2006 (EDT)
Did you not read the below, Tannin? Or Common_Language_Infrastructure @ Wikipedia? They want people to use a "standard" thing so that they end up using all the things in it that end up tying you to windows (ActiveX, Passport, ...) --pfeilspitze 17:55, 31 May 2006 (EDT)
Oops, nope. Sorry, because of the different headline I didn't realise the topics were related. I've never used .Net (never occured to me, since I'm a Linux user). I only heard it was the implementation of a standard, didn't realise it was that kind of standard... --84.56.175.15 04:36, 1 June 2006 (EDT)

A retraction

Can't find anything to back up my previous, in fact it would appear that MS did develop .NET in-house and then release the specs to encourage cross platform stuff.... I think I need to lie down.......... Codehead 08:41, 25 Jul 2005 (EDT)

Yeah, I got light headed myself reading the "encourage cross platform stuff"...--Snoolas 08:47, 25 Jul 2005 (EDT)
Naw, it's not to encourage xplatform, it's just "standardised" so that they can claim it's standard at the next monopoly abuse hearing. Sortof like the Ultra-Crappy C++/CLI psuedo-standard ( and part 2 ). --Me22 13:43, 24 March 2006 (EST)

Seems odd to bundle all languages using .NET together - this is picking a language not picking a hold-all buzzword :D Theres a c plus plus version under .NET too but it also gets a seperate catergory. Also c# is avalible as mono which is most certianly not .NET I suggest only languages are considered on this page!

ASM OOP

RE: The recent edit, I'm not aware of any OOP features in assembler, AFAIK the language is as procedural as you can get. The library statement sounds a little odd too. Codehead 03:10, 29 Jul 2005 (EDT)

Some assemblers probably provide some support for OOP, but it really isn't mainstream. :) That isn't the only weird thing there. I'll fix. --Snoolas, not logged in
I fixed it. Feel free to correct me if something is wrong.--Snoolas 10:29, 29 Jul 2005 (EDT)

Python has C-like syntax?

That's news to me! I don't think Python's syntax resembles C at ALL. Almost everything except most operators is drastically different.

OOP

The definition of OOP here is rather fuzzy. It seems like it's being used as meaning "lots of classes", which is not a very important statistic.

An excellent essay about what OOP is and isn't, to various people/languages: Rees Re: OO

--Me22 14:02, 24 March 2006 (EST)

Well, this steaming pile of text is mostly my doing, so it isn't surprising I botched something up concerning OOP. If you know better and think you can improve it, feel free to do so.--Snoolas 16:26, 24 March 2006 (EST)

Pollution

The same thing that happened to the Language and Engine pages is happening to this article. It's getting polluted by people with special interests, like the series of edits just a while ago that added PureBasic. This article's intent is to provide a simple guide for newbies to learn languages. Entries for relatively obscure languages like Purebasic, lua, ruby, and MMF are only confusing the page's readers and destroying its usefulness. --Snoolas 14:56, 25 February 2007 (EST)

Agreed... feel free to hack/slash as you see fit! --Ryan Clark 21:12, 26 February 2007 (EST)
Agree on PureBasic, never heard of it, but lua is fairly popular, especially for C program extensibility, (WoW extensions are written in it!) and Ruby is about as popular as Python these dats. --Quamaretto 03:14, 27 February 2007 (EST)