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

4 years after, I still don't understand!

Name: Anonymous 2011-09-03 14:22

Why does everyone hate Java so much?

To me it seems like it's got it's strengths and weakness like any other language.

I'm aware of it's weakness but I don't think that the amount of hatred upon the whole language is justified.

Name: Anonymous 2011-09-04 10:59

Java is probably the most-hyped programming language ever, and deserves almost none of its fame. All of it's promises can be fulfilled by existing languages or moved to standardized protocol design instead of a language. There is nothing really new that Java brings to the table. Sun is much better at marketing than at creating new languages. HP and IBM products are often technically superior or better deals, but those companies have not learned how to market the way Sun and Microsoft have.

Java's Flaws in a Nutshell
- Cross-platform GUI's and networking should be API's or protocols that other languages can use as well. There are plenty of other cross-platform languages already (Lisp, Samlltalk, Factor, Nial, etc.). What is needed most are standard protocols that any language can use, not yet-another-language. Insufficient cross-platform protocols is the current bottleneck, not languages.
- Case-sensitivity Dumb dumb Dumb dumb: Thingy thingy = new Thingy(); Why does the Unix crowd hold on to case-sensitive tokens? It should have gone out with vacuum tubes. CPU speed? Come on! Make the machine be the slave, not the human programmers. How much speed does it buy? A 0.000001 increase?
- OOP: it is clear that Java is not suited for procedural programming. For example, some API's don't work with Static methods, at least not without contortions. Even C++ lets one easily do normal procedural programming if they wish. The designers of Java appear to think that OOP is the silver bullet for every problem. The irony of this is that Java is not even a good OO language. There are languages like Smalltalk and Lisp's CLOS, that object fans find much more object-friendly.
- The static typing model is not ideal for many types of applications, for example, applications that interface with many different systems and protocols. Some JDBC Java applications spend half their code converting types. This is not only a waste of code, making it cluttered and hard-to-read, but databases may change their field types, making a JDBC application fragile. A nice feature would be to make static typing optional. This can be done via optional type specifiers for declarations, like (declare (int X)) in Lisp. Besides, programs are easier to read if the type declaration and other specificers come after variable names, because types are less important than variables.
- The "Break" clause in case statements. Another idiotic hold-over from C.
- High protocol coupling. Using the Java libraries often requires one to know about protocol B even if one wants to use only protocol A features. Further, protocol B may require knowing how protocol C used, etc.
- Lousy reflection. Reflection, the ability to know and/or change information about run-time items or the application itself, was added to Java as an afterthought, and it shows.
- Normal: say "Hello world"; Java-way: System.out.println("Hello world"). Java is the most bureaucratic claptrap thing ever seen since the Chernobyl computer. I've used grid widgets in other tools/languages, and they were far more approachable. For example, if you wanted to turn on scrollbars and change the color of the selected cell, you'd do something like this: myGrid.scrollbars=True; myGrid.selectedColor=#ffff00; However, Java never makes things this easy. You have to embed the grid in a scroll-panel widget; and to change selected color, you have to create a "column model" object, and a couple of other screwy middle-men classes. You can't just drop the food in front of the tiger, you have to guide the food through its intestines via an Intestine Model and an Enzyme Timing Manager on through to some Excretion Model Coordinator Manager objects, one for each glistening log.

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