I've noticed in the short time I've been reading this board that there's a lot of java bashing, so I was wondering why people actually think it is so bad. I'm no java fan, but I've used it for some stuff before and it didn't seem terrible to me. An argument used to be that it runs slow as a guro-fied loli, but they've improved a lot in that aspect.
Please give good reasons, rather than stuff like "it's for certified professional consultants" or whatever you guys say.
Name:
Anonymous2006-04-28 7:26
Hm... This needs a list of facts:
1. High level languages are always slower, but that's a very affordable price for software used by companies and system scripts (which make up for a good portion of all the software produced) because hardware costs are much lesser than development costs.
2. Unless you're a low-level freak, higher level languages are more fun to work with because you don't waste your time dealing with strict data structures, "glue", or crap you need to support what you really want to do. Most programmers will thus like modern scripting languages (Python, Ruby, or even Perl, PHP and Lua) and functional languages (Lisp, Ocaml, Haskell, etc.) better than more anal languages like Java or C++.
3. Java's OO and data typing totally sucks, and the API is powerful but it's so overgeneralized, overgeneralized and bloated it's unusable and ugly, and it's made of fail and lose.
4. Therefore, Java is one of these slower VM languages, yet it doesn't allow you to work neither nicely nor faster, therefore it's a waste and a piece of crap.
5. On top of that, Java's garbage collector is terrible. Because of it, some things written in even higher level, duck-typing languages like Python may rival the performance of those written in Java using 5 times more lines of code and being pretty unmaintainable.
6. You can create GUI applications in C, duh. What do you think GDI, GTK, and some others work with? However, you will be more productive using a higher level language. As long as controls aren't terribly slow or fugly, it's usually acceptable, as most GUI applications are almost always waiting for the user to do something, not really running.
7. Managers suck. We already knew this, just restating.
8. UML is mostly manager stuff, they probably saw "ML" and thought it has something to do with XML, or read an overhyped article in some stupid magazine. UML is just a set of tools to represent software concepts. Sometimes you might decide to use part of it, modified or not, to think or document something, but it's not a religion, a best practice, or something so great in an on itself like managers believe.
9. Oh, and finally, save for small or embedded, today's processors are so complex a good C compiler will do a better job than an assembly guru, so unless you need to do something very special like an OS kernel, assembly is probably better left alone.