Sunday, June 22, 2008

Java Just Is Not My Bag...

I've been slowly trying to work out a Java game based on this design since the end of last semester, and progress has been slow to nil. Java is not my main language, and despite the fact I learned quite a bit in my GUI class (where Java was a requirement), I'm still struggling with the very basics. Whereas C++ just *feels* right, when I'm attempting to do any programming in Java I feel like a awkward teenager trying to unsuccessfully grope a transvestite hooker, desperately hoping something good will come out of it if I just keep feeling around long enough and ignore that everything seems wrong about it...

There's not a particular reason for me to feel this way, I've just never been convinced that Java is near as elegant or worthwhile as C++. And I just never really got the hang of it. The main issue is the enormous API; everything in Java is about memorizing syntax. Yes, there is a lot of this in C++ (there's more to the string class than I want to imagine), but somehow it's just not the same. I'm sure this is due to my lack of knowledge, but I don't feel as if I have any control over the built-in functions and objects. As I described to a fellow programmer friend, it feels like trying to use Legos to build an engine.

Anyway, back to my game...I got a fairly good start, with graphics and all that, though I got "stuck" (read: stopped working) when I realized I would have to think about how to deal with the click-place mechanic with the blocks. Yes, this isn't hard, but my mind was whining loudly, "Whyyyyyyyyyyyy do I have to help you figure out how to keep track of all those x and y positions? Can't we just start playing [TF2/ Resident Evil/Metal Gear Solid/Final Fantasy] again??", and I would always give in. Finally, I came back to it after months, and in between that time had started up my zombie RTS project (in C++), and I realized I had no clue what my code was doing, so I overracted and deleted all versions I had made up to that time and fired up Netbeans with a fresh new blank project. And realized it had been so long since I had programmed in Java that I couldn't even remember where to start...

Ironically the main reason I chose this language in the first place is its expansive built-in support for basic graphics stuff. I COULD use a Java game library (like lwjgl) but that would mean reams and reams more of API to trudge through. So once again, I have restarted the same game project, and am faced with my failing as a Java programmer. I have tentatively started the classes, named a few variables, outlined what is inhereted from what, all while struggling to remember exactly how all this works. Someday I will beat this language. Someday.

2 comments:

Seth said...

This makes me want to write an entry about learning and applying a new programming language. I feel like general strategies could be described for this, but that people just don't talk about it. First I should probably do some research and see what the internet has to say on the topic.

HappyCodeMonkey said...

I'd love to see that, I'm far too lazy to do the research on my own. Learning a new programming language in some ways can be so overwhelming that I'm not sure there could be a strategy, but I'll be keeping an eye out for this entry in the hopes I can improve my own learning process.

The number one strategy right now for me is to just code, code, code, and I'm currently failing ;D