Author Topic: Where to start with Java?  (Read 1431 times)

I'm interested to learn Java, because I've heard good things about it, and development platforms like Eclipse are free and there's a lot of support, not to mention I can see my results visually in a game like Minecraft. Unfortunately, I haven't had much look finding a decent introduction and guide, and I can't convince my dad to teach me. I already know the simple concepts, because I can write basic Python and Lua.

Anyone able to help?
« Last Edit: October 24, 2013, 06:32:27 PM by TristanLuigi »

Write FizzBuzz; that's what I did.  My dad, who programs computers, told me that it's a good starter's program.
Google it if you need to know what it is.
« Last Edit: October 24, 2013, 06:51:25 PM by BlockoCrafter »

minecraft is unique that's why its great.
but the game is actually a loving coded mess.

now runescape is some ultra impressive java work lol

I wouldn't recommend it, Java is dying as a language for anything other than server applications.

If you like web-based stuff, try Javascript or PHP. They're both pretty close to Torque.

If you want to make desktop applications, go for C++.

I'd actually recommend C#, it's a relatively new language very similar to Java except it's generally much nicer. It's also surprisingly fast, and in many scenarios is comparable in speed to C++.

It also has a much nicer IDE associated with it called Visual Studio. You can download the express versions for free, and imo it's much simpler and efficient to use than Eclipse or in general other java IDEs.
« Last Edit: October 24, 2013, 07:05:56 PM by Ipquarx »


Minecraft wasn't good because of Java. You could make Minecraft with literally any language/framework/library/engine that supports 3D rendering.

Since you know Python and Lua to an extent, I would advise either sticking with either one of those two using something like PySoy, or to learn C/C++.

The JVM is notorious for being generally slow, a resource hog, and having the user install a plugin to run your software (with the exception of compiling to an executable) is rather annoying.

C/C++ programs are native to devices, will probably be faster, smaller, and they don't require any plugin to run.

I'd actually recommend C#, it's a relatively new language very similar to Java except it's generally much nicer. It's also surprisingly fast, and in many scenarios is comparable in speed to C++.

It also has a much nicer IDE associated with it called Visual Studio. You can download the express versions for free, and imo it's much simpler and efficient to use than Eclipse or in general other java IDEs.
C# is pretty good too.

I recommend C++, but you should really choose any language you feel comfortable with. I actually wanted to learn Java more than anything years ago. I gave up because I couldn't get JCreator (IDE) to work, but maybe you'll have more luck with it.

I don't really want to go with C, because it's pretty outdated. C++ requires resource management and Java 7 has automatic features for it. C# is Windows-only, which sucks.

I want to learn an object-oriented language, and Python and Lua, while great, just don't really cut it.

C# is actually available on mac and linux, using a cross-platform .net framework called Mono.


What do you mean by this?
You have to manage memory and stuff, you can't just start something and leave it. You have to stop the process and regain the available RAM yourself instead of .NET doing it for you.
Thanks for all of your inputs, but I asked where to start with Java, not what language to start with.

What bothers me about Minecraft is that Notch made it originally on Java because it was what he programmed all his simple games on. With how complex Minecraft is nowadays, Java is just impractical. Unfortunately, the people at Mojang have no plans to change the engine.

You have to manage memory and stuff, you can't just start something and leave it. You have to stop the process and regain the available RAM yourself instead of .NET doing it for you.
The first part is true, you do have to do a bit of memory management yourself if you don't want memory leaks, but you don't have to stop the process to get it back if you make it properly.

It's still a pain in the ass and really unnecessary imo.  .NET does it for you no worries.