So I’ve got this friend who absolutely hates Java. Who can blame him, many people do. However, his reasons are completely unjustified. He attends the same college as me, and is currently working towards the same major as I am: Management of Computer Systems. Unfortunatly for him, our college teaches Java.
He’s a hardcore gamer (so much to the point where it effects his grades) and he’d much rather be learning C++. This is understandable since when was the last time you saw a commercial Java game on the shelves? Although I’d rather be learning C as well, I see the value in learning Java for two reasons: 1) Undergrad programming courses teach concepts and it’s much easier to grasp them in Java’s environment. 2) Java is growing and C is (debatably) dying. He cannot look past Java’s faults and C++'s history to understand that he must tough it out and just start with the coding.
He would love more than anything to begin development on a game- if only it were written in C. But what he doesn’t understand is that games are more than just syntax and tricks (he thinks he can learn by example from previous C++ games). It is difficult to make a complex working game- even a ‘simple’ shooter requires high level programming techniques. While I sit here getting down and dirty with such techniques, he’s muttering around in his dorm complaining about how C++ is so much better than Java. By the time he gets around to tackling C (with no professional instruction), I’ll have completed my Java gaming projects. By the time he gets through the harsher learning curve of C++, I’ll have started working on C myself. By the time he begins to map out programming techinques for his game, I’ll have already written them as I have done so before in Java and understand what’s needed.
How can I get him to understand the purpose of learning Java? How can I get him to break free from his hold on C++? He thinks things are so easy but I fear he’ll learn he’s wrong too late in the game. He needs to see the value in Java programming now while he’s still young and has access to professional instruction (he may not last much longer here with his additude). There comes a point where you have to stop trying to reinvent the wheel. Such is why I’m developing my first game in Java. Rather than read 20 different APIs for C++ and fail at getting Direct X initialized (without using someone else’s code), I’m writing from scratch, a full Java game. He’s spinning his wheels in C++. He needs to go forward. How can I make him understand that the only way he will go forward is with Java? I beg of you folks: Help me help him.
Note: I began my programming carrer in C++. I tested out of the classes he’s in now because of my past C++ experience so I definatly understand the boat he’s in. Compared to what I’ve seen in C, he’s only touched the tip of the iceberg. Trust me when I say he needs Java to move forward- he really will spin wheels with C++. I just don’t know how to make him realize it.

