An interesting summary of the JavaLanguage by JamieZawinski: (HaHaOnlySerious)
I think Java is the best language going today, which is to say, it's the marginally acceptable one among the set of complete bagbiting loser languages that we have to work with out here in the real world.
http://www.jwz.org/doc/java.html
This sums up my feelings about the language too: in a world where C++ and VisualBasic are the competition, it's pretty good. -- MartinPool
And this from the inventor of the CeePlusPlus StandardTemplateLibrary:
I have the greatest respect for Stepanov and his work on the STL, but it seems very possible that someone who never uses inheritance or virtuals might have a different opinion about an ObjectOrientedLanguage than people who do. (No wonder he wrote the STL; it's a great way to avoid using inheritance!)
Also, I am not sure that judging a language by the coding of demos and libraries is fair either; V1 of most things is pretty bad when judged by the standards of a mature product. At least they had the sense to replace (for the most part) the pretty much irredeemable JavaAwt. Complaining about a language because it is successful/profitable seems content-free. -- AnonymousDonor
Sam, I have to agree [with AnonymousDonor]. If you read all of that article (and many other Stepanov articles), you will see that it is not JavaLanguage he is against but any ObjectOrientedLanguages. He simply doesn't like ObjectOrientation - plain and simple. He is working towards something else. Just like any true originator, he has a very narrow point of view. It would be a mistake for a developer to adopt the same point of view as a purist attempting to achieve their vision of programming.
And, as you know, there are just as many articles by engineering luminaries that slam CeePlusPlus. Pages like this and JavaIsDead will only encourage those to start being posted and waste time in stupid and boring language wars. My philosophy? Concentrate on the languages you like. If someone doesn't like JavaLanguage, fine, don't use it. Start pages about what you do use, not what you don't.
I especially agree with the point about how intermixing "Java the language" and "Java the bytecode spec" was a bad idea. Well, perhaps not from a marketing perspective, but certainly from a technical perspective. JavaLanguage could easily be compiled to hard, cold MachineCode. Why not instead of building a ByteCode interpreter for each platform, building a compiler BackEnd? -- StephanHouben
JavaIsCompiledToMachineCode. Often at run time, sometimes before.
And people think MicrosoftCorporation wants to control the world. This is from Forbes magazine:
-- sg
Although the above is a direct quote of the opening paragraphs of the article, it is a little misleading, as it is clear from the body of the article that the other companies are able to use the code, but not the "Java 2 Enterprise Edition" brand that Sun has placed on it. They would have had pretty stupid lawyers (not that such don't exist) not to have the right to use the code.
Maybe Java is not the best language, but you got to give SunMicrosystems credit for making it the way it is now.
-- CuongTran?
"I'm a competitive man, Kryten, it's what made me what I am." "We're all perfectly aware of what you are, sir." (Rimmer and Kryten, Red Dwarf)
"No wonder open source is so popular." - Charging royalties for use doesn't sound like OpenSource. Read the definition: http://www.opensource.org/docs/definition.php
Well, I've never posted on this site yet, but now is the time to start, I guess. For a year, I've been in a project which uses 100% Java/XML and OO (some might know the STRUTZ of SUN). Previously, I was the totally Script-oriented Programmer, using ColdFusion, PerlLanguage, etc. ... The new OO World really made me abandon all my old programming patterns and restart from scratch it seemed. I had a hard time not just encapsulating scripts in Objects, but really doing it in the OO way. To be honest, I haven't seen the light yet there. If you wanna program a 100% pure OO Solution, wouldn't it be necessary to model the World in objects, starting from the periodic table of elements? -- DOM
Only if you want to model the world. In most cases, we only need a small subset of the world (Bank accounts, for example), and can limit our scope to that. The principal benefit of the OO view is that you gain proximity - the code and the data are clustered together, so you can find them easily, and corral them easily. -- PeteHardie
Moved from JavaIsDead
I don't expect any language to be perfect, and I don't expect it to do exactly what I want it to do. I do resent it, however, when the language gets in the way of me patching it up.
So the fact that some libraries are broken, or some pieces of code are inefficient, doesn't get on my nerves. If a library's broken, I can do it myself if I have to. If code is too slow, (maybe) I can rewrite some if it in CeePlusPlus and then call it from JavaLanguage somehow. (Maybe. I don't actually write a lot of speed-sensitive code.)
But! When I work in JavaLanguage, I resent the fact that the StrongTyping and lack of generics make all Collections a bloody pain to deal with, and the only workaround I can think of would really be to write some huge code generation module that created classes like IntList, StringList, etc. I find it aggravating that not only does Java give you almost no good SyntacticSugar for string manipulation, but you have so little control over that little of the syntax that you can't add your own. And as somebody who's pushed really hard against the very arbitrary limits of JavaReflection?, I can tell you that that's a wall you simply cannot cross. So today, if I have a choice, I don't use Java at all ...
I believe generics are coming. In developing business applications, as we always do, this has never been a notable problem to us. BTW: Have you tried using Proxy for this? -- AngsumanChakraborty
See JavaGenerics now, folks.
Think positive, JavaUtilDate have solved one recurring problem?