Actually, Java using more memory can very much be a problem depending on what you're doing. Mobile devices (Android's Dalvik comes to mind) or large industry systems may see this. I have a friend who works for one of the large database providers, and with so many virtual instances running, their Java implementation constantly drives down the available system memory. Even in normal game development, Java tends to simply eat up memory, and depending on what you're doing, memory might be in short supply. I do a lot of procedural work, and end up using a lot of memory. I've hit the 4 GiB limit in the past with C++; Java would have been worse.
Java does not tend to eat up memory. Excessive memory usage has nothing to do with Java itself, it all depends on your very own coding style and that of used libraries. Please do not feed age-old myths. True is, that automated garbage collection can lead to mindless programming habits, but that usually has bad consequences in each and every language and environment.
Don't use ifs or switches for that.
Create some kind of a dialog manager class which gets a game context as input and returns the appropriate dialog.
Store the dialog mapping in some external format so you can add, modify and delete without compiling.
These days there is almost no way to earn money with development tools except you have a high reputation and a very good established product, like the UnrealEngine (and you can even a get community license for free). People expect everything to be free on the internet. I don't know your developer's quality, but there is actually no way a single person can develop a quality product consisting of a game engine plus virtual machine plus script compiler plus IDE before retiring... For example, it took many years for the Java VM to reach the current status performance wise. There would be many games needed to actually evolve the product into the right direction. But who wants to be the test person ?
I don't want to discourage you, but you can still do for fun (and benefit from learning a lot) without monetary payback expectations. Or just develop games.
I've been looking around the web and I've seen a deep hatred towards java? I mean to me it seems like a decent language (then again i'm a noob that doesn't know sh*t about programming other then "If then's" statements.) I also have seen that C++ has a very good rep. can someone explain this to me in VERY VERY LAYMEN TERMS? (noticed how i bolded, underlined AND CAPITALIZED, very very laymen.)
That is simply because looking around the web and actually finding professional statements which are not highly subjective, emotional, dogmatic or show even religious tendencies is not an easy task. For certain topics it is always the same. Use the right keyword and off they go. Java vs C++ C++ vs C# C# vs Java Apple vs Microsoft .net vs Java Linux vs Windows Coca Cola vs Pepsi whatever
- identify your game entities - think about responsibilities of each entity - keep responsibility as narrow as possible - do not introduce cyclic relations - only communicate between entities through well defined interfaces - only put required methods in the entity interfaces - use interfaces to declare method parameters not specific implementations
- get several good books about software development and ... read them
Put your song in a playlist with professionell music of similiar style, I'd say at least three other tracks before. Listen to all of them with your eyes closes, don't change position or anything. Any flaw will become brutally obvious.
I've done a little C# and Python programming, and they are much nicer to work with.
What exactly is so much nicer in C# ?
But Java is a commonly used language. So I feel I'm missing something. Perhaps due to my unfamiliarity with the language, I don't understand all the tricks and idioms that people use in Java to make programming easier. So the question is, how do people stand Java?
You miss considering the entire development environment, available frameworks, IDEs, etc. The last time I looked into Visual Studio for instance, it felt like being years behind Eclipse, IntelliJ or Netbeans. The overall productivity is just much higher in Java. Naturally, choosing the language AND environment that suits your tasks best is what professionals do. And for commercial business applications that is definitely not C++ with its ugly and error prone features (like operator overloading). Java is far from being perfect, compare it to more modern languages, but C++ or its cloned sibling C# are for sure no ideal models to follow.