What is next after C++?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

PhatoseAlpha

Platinum Member
Apr 10, 2005
2,131
21
81
Unfortunately though, the languages are essentially inseparable from their platforms. To use a car analogy, just because those are always appropriate, you can try to discuss the difference between electric cars and gasoline cars without mentioning the widespread availability of gas stations (and inavailability of charging stations), but you just end up with a conclusion that's neither here nor there.

The similarities between c# and java exist because they're a good way to do things. C# and Java exist because Sun and Microsoft have quite different views on what a good way to make a platform is.


At any rate though, I think the difference between C and C#/Java is being understated by an order of magnitude. Managed memory is a huge improvement in usability, and really....C syntax is arcane. Not quite assembly "We're only doing it this way to make sure the plebes can't understand our magic rites" arcane, but sure as hell not created with ease of comprehension in mind.
 
Last edited:

degibson

Golden Member
Mar 21, 2008
1,389
0
0
At any rate though, I think the difference between C and C#/Java is being understated by an order of magnitude. Managed memory is a huge improvement in usability, and really....C syntax is arcane. Not quite assembly "We're only doing it this way to make sure the plebes can't understand our magic rites" arcane, but sure as hell not created with ease of comprehension in mind.

I don't know much Java, and practically no C#. I'm going to start another thread about C gripes and how C# and/or Java improves them -- it should prove to be entertaining, at least.
 

Gamingphreek

Lifer
Mar 31, 2003
11,679
0
81
At any rate though, I think the difference between C and C#/Java is being understated by an order of magnitude. Managed memory is a huge improvement in usability, and really....C syntax is arcane. Not quite assembly "We're only doing it this way to make sure the plebes can't understand our magic rites" arcane, but sure as hell not created with ease of comprehension in mind.

I can not disagree more. Managed memory and garbage collection, while convenient, can never be as efficient as a human being allocating and deallocating memory as is needed. Not only that, in my mind, it promotes sloppy programming since the programmer doesn't have to worry about any other management.

Regarding ease of programming, it depends HIGHLY upon what you want to do.

What is "arcane" about C/C++ syntax? Just because it isn't Object Oriented to the max doesn't make it archaic. I can make C/C++ just as (un)readable as any Java/C# code that I write.

I will say that C/C++ really should incorporate the pthread library or something for multi-threading into the C standards. Writing multi-threaded programs in Java is MUCH less hassle then in C.

-Kevin
 

Cogman

Lifer
Sep 19, 2000
10,286
145
106
At any rate though, I think the difference between C and C#/Java is being understated by an order of magnitude. Managed memory is a huge improvement in usability, and really....C syntax is arcane. Not quite assembly "We're only doing it this way to make sure the plebes can't understand our magic rites" arcane, but sure as hell not created with ease of comprehension in mind.

Ummmm... Really? You are going to say that C# and Java are orders of magnitudes better and that C's syntax is arcane? You do realize that C# and Java HEAVILY inherit C style syntax, don't you? Perhaps some of the standard function names are confusing, however, the syntax is very close.

C# and Java have good built in libraries, memory management, a more strict OO style, and the possibility of being ran on multiple platforms without recompilation. Those are great things, but they don't IMO translate into "orders of magnitude" difference. C may not come standard with the functionality to create windows. However, there are so many libraries for C/C++ that it is essentially a non-issue.
 

dinkumthinkum

Senior member
Jul 3, 2008
203
0
0
I can not disagree more. Managed memory and garbage collection, while convenient, can never be as efficient as a human being allocating and deallocating memory as is needed. Not only that, in my mind, it promotes sloppy programming since the programmer doesn't have to worry about any other management.

Once upon a time, people said the same thing about assembly language vs high-level programming languages.

Managed memory has a big advantage that is hard to capture in C: compaction. While not always a boon, it can give the edge to GC, when cache effects are considered. Actually, as far as manual memory management goes, C has some severe design disadvantages, namely: that pointer arithmetic and aliasing are permitted. This kills several compiler optimizations that languages like FORTRAN are accustomed to taking.

There's room for improvement.
 

EricMartello

Senior member
Apr 17, 2003
910
0
0
I am complete C++ what i do next to learn for Game Development

I'm also interested in game development. Assess what you do know and work the best you can with it. Download some game source code from sourceforge and see how it works. Try customizing it and slowly making it into your own version...a lot of people say that tetris is a good game to practice with as a programmer since it teaches you the fundamentals that you'll need in just about any game you may want to program in the future.
 

slugg

Diamond Member
Feb 17, 2002
4,723
80
91
If you want to get your feet wet with game development, download Valve's Source SDK. It's in C++ and uses the Source engine (Team Fortress 2, Left 4 Dead, Half-Life 2, and much more). After that, you can start learning some DirectX/3D API and integrate it with what you've already done in the Source SDK. This knowledge will be pretty much universal to all Quake-like games, and the DirectX experience is universal for all Microsoft platforms (Xbox/360, Zune, Windows).

Rumors are spreading that the Source SDK will be able to target Mac OS X and Linux, in addition to the existing Windows support. So... this would be a great starting point.