eXodus wrote:On top of that, I DO prefer C to Java and I recently found out that the newly open-sourced Quake3 engine is in C.
Did the Q3 engine source get released? Carmack delayed it, and I didn't think it had happened yet.
As for why the Q3 engine is in C... Q3 is based on Q2 which is based on Q1, which was written in C and QuakeC in like 1995. C++ wasn't the same language then. It wasn't nearly as popular. Good compilers were harder to come by. Carmack already had experience writing similar games in C. The QuakeC language wasn't OO, and making it OO (C++ like) and efficient would have been much more work. If you think the QuakeC argument isn't relevant, I assure you it is -- a lot of the C code in Q2 is pretty much exactly QuakeC code from Q1. I'm just saying there are a lot of practical reasons for Q3 to have been in C rather than C++ which don't have that much to do with the merits of the languages.
As for my preference, I find things to love and (mostly) hate about all programming languages. Of the ones you list, I'd say I like C++. While I don't agree with a lot of C++isms, it can do everything C can (at least for reasonable definitions of 'everything'

). And even if I don't like everything about it, the addition of templates alone is a big improvement. Forcing sloppy coders to be more explicit with their casts is too.
