Quote from Apos
- Java was slow in 1995, this is 2011. I have yet to see actual benchmarks done correctly.
- Java has one of the best documentation. Via Javadoc (Saves lot of time later) and the official documentation. If you can't bother searching, don't bother learning.
- If something unexpected happens in your program, this can sometimes lead to very big security issues. It is a good practice to have some sort of escape plan (Especial with a program that can be ran on multiple platforms.).
- Just because there is garbage collection in Java doesn't mean you don't flush and close. On the other side, the Garbage First is pretty amazing.
- Cross platform is a reason in itself to use a programming language. As time goes by, more and more people use different OS with different hardware. It becomes a programmer's nightmare to be able to provide a program that works for everyone.
- Java 8?
- In a command line program, no. Java will run about as fast as a C or C++ program. It's when you start to add in graphical pieces that you see C languages shine, especially C#, since it can do any JIT optimization that Java can do, but it can bring it down to Assembly, if needed. Furthermore, any advanced graphics, such as some form of 3D graphics (DIrectX, OpenGL, which he said he was interested in), will blow Java away in terms of an equivalent implementation. Compare Minecraft's (Java) memory and CPU footprint to even a semi-modern game, and you'll see the difference. My laptop can run HL2 with little difficulty, but can't run any "full-fledged" Java 3D game well at are. Using Minecraft as an example, I can't render past the "very-near" setting without massive lag. Stuff
- I don't consider a wall of text to be good documentation. Compare Java documentation to the PHP documentation (which is complete with user comments), or even the MSDN documentation for any Visual Studio language. Everything is neatly organized so that you see only what you wish to see, instead of having to crawl through a mile of tables to find what you want.
- Yes, but it's also good to not make these mistakes in the first place. Learning good fundamentals about security is better than relying on a language to do it for you.
- Auto garbage collection will never compare to a tailored garbage collector, such as a combination of Smart Pointers and Memory Pools, among the many other advanced techniques unavailable to Java.
- Cross platform is not a good reason to choose a language, especially performance critical programs. The only exception I would have to this would be an enterprise-level program, however, in this case, an internal program would usually be run on the same system throughout the company. A commercial application is a different story.
- Java 7*. Typo.
None.