I’m creating this thread so I can get advice on current programming languages.
Around half a year ago, I enrolled in an AP class that teaches Java. I’m doing pretty well in it, and beginning to move onto the more challenging, complex features of Java. Now that I’m starting to acquire a pretty decent “feel” for the Java language, a question arose in my head: What am I going to do with Java?
That’s the question; “What am I going to do with Java?”. What are some ways I can put my skills to the test? I’ve been thinking about taking a look into the game industry, but there are not many AAA engines that you can use Java with. Furthermore, there really are not any AAA titles that use Java (other than Runescape, but it’s graphics aren’t all that great; most Java 3D games are “laggy”). This led to another question: Is Java even worth learning?
Many AAA games in the market today use C++ (along with many, many engines). I’m pretty confident that if I was dedicated, I could continue my Java class and start teaching myself C++ along the way (I heard they are similar, correct me if I’m wrong). Is C++ worth learning? It’s an old language, but there’s a more important aspect… Many computers nowadays have a minimum of two processors, some having four to eight. It will only be a matter of short time before computers have many processors for a decent price. C++ can take advantage of multiple processing power, but not easily (I’ve heard it’s a hassle). Do you think this will ever get “fixed”?
What do you think about me learning Java, and how can I “put my skills to the test” (it gets boring just going through course work, and not being able to use my fair Java skills in my own time)? What do you think about me learning C++? What do you think about the future of both of these languages?
Any help is greatly appreciated. Feel free to input your opinion.
I don’t have too much advice to give (without the rep to back it up). But I think I can say that you should pick the language of choice and stick with it as long as possible. Once you learn one, it becomes easy to pick up another and fly. I wouldn’t waste so much time picking up a language then dropping it for another continuously. Me personally I started out with Visual Basic (i thought it was useless), learned ActionScript 2.0 (dropped it to try a lower level language), C++ (memory management nightmare atleast for me), then C#(just the basics) and decided to stay with Javascript / Php(for flexibility between web, games and other things). I wish I had researched and picked on and stuck with it. But this is just my opinion.
Decide what you want to do in the long run and just stick with the language that will keep you in that field. C# and Java are Virtual Machines and accessible on many platforms. Look at the most famous indie title as of now, it was built in Java (if i am not mistaken). The limit of programming is usually dependent on your abilities not necessarily the language.
Do you want to do server and web stuff or do you want to work on games? Speaking purely personally here, I’d ignore Java completely unless it’s the dominant language used in a field I wanted to work in and focus on other more popular languages within that field. Within games it seems to me you’re mostly looking at C, C++, Lua and C#, with some DX and OGL stuff (CG, GLSL and so on), with the occasional JavaScript variant (e.g. actionscript in games that use flash for GUI, of UnityScript). If you’re on the tools dev/rigging and general pipeline side then you might also pick up some Python and PHP.
Don’t be disheartened though, once you’ve learnt any language most others should be fairly easy to pick up as all these languages tend to be pretty similar in syntax and general style (apart from Python). So your hard work will pay off no matter what and you should find it much easier to get into any of these other languages (although the defensive coding, pointer syntax and memory handling in C and C++ may bring you a few headaches at first).
C# is similar to Java, so there’s not much of a learning curve if you use C# in Unity. Anyway, learning to program well in a language is the important part; it doesn’t matter so much what the language is, because you can apply most of the concepts to other languages and learn them much faster.