Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

10 reasons Java is awesome

Name: Anonymous 2010-05-01 14:55

1.  Easy to learn.  90% of Java = C-pointers+classes.  You come from pretty much any programming background and hit the ground running with java.
2.  Best and most comprehensive standard libraries.  Wheels of all types and sizes are included in the standard library and they all have pristine documentation.  Not to mention the thousands of external libraries.  In java you never write wheels, you combine wheels to make machines.
3.  Super Fast.    Java is faster than all other garbage collected languages and about 1.5 times slower than C.
4.  Very readable code.   Without things like millions of operators, operator overloading, and first class functions it takes a lot of effort to obfuscate and write unreadable/unmaintainable java code.  Spend less time figuring out what existing code does and more time writing new code.
5-8.  Awesome tool chain.  Eclipse is as fully featured as it gets, from ridiculously good auto-completion and code prediction...to detection of errors before you even compile... to plug ins and version control integration. Did I mention its free?  The only competing tool chain that is even comparable(Visual Studio) costs an arm and a leg.
9.  Application versatility.  There is a JVM for all major platforms sans apple mobile products.  Porting from one platform to the other is easy.
10.  Ridiculously good garbage collection. Competing GCs don't even come close.

tl;dr  Real programmer use java.

Name: 21 2010-05-06 7:00

>>33
Java is about 10 times slower than C meaning that Java will not take the place of compiled apps like video games any time soon.
Java is not 10 times slower. It depends heavily on the problem you're working on, but properly optimized, it can be about 1.5x to 3x slower. See the language shootout, left side of the graph: http://shootout.alioth.debian.org/u64q/java.php

That being said, Java will *never* take the place of video games. Mainstream video games will always use technology extremely close to the metal, at least for the rendering and physics engines (which realistically is most of the code), for the simple reason that they need to to remain competitive. If they don't do it someone else will. Mainstream video games also use much higher level languages for game logic (such as Lua) for the simple reason that Java is an incredible pain in the ass to program in.

More important than speed, though, is memory overhead. Java memory overhead is *massive*. Look at the middle part of that graph. Applications like Photoshop and video editing software already use massive amounts of memory, and they are written in C++. Games have always pushed memory capacity to the limit and always will; more memory has a very obvious effect on texture quality. These things will never be written in a managed language.

>>33
All VM languages have "rediculously good garbarge collection" because they dont have to map to hardware, all memory is in bytecode
No. A hundred times no. CPython for example has *incredibly awful* garbage collection. Reference counting with cycle detection (and by consequence the GIL) is an utter nightmare, and it's no longer possible to transition away from it due to the massive body of C code with CPython bindings. Even Google can't fix this (they have tried.)

For some languages like Go or Objective-C, it's not possible to have garbage collection anywhere near as good as Java, simply because they allow raw pointers (Objective-C because it includes C, and Go because of its 'unsafe' package.) You need purely managed pointers to make a copying collector.

As much as I loathe Java, this is one point on which it is truly excellent. You have to give it that much at least. Please don't confuse it with shitty GCs, because I really want high-level languages to get good garbage collectors, and that isn't going to happen with people spewing bullshit like this.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List