Ten Reasons to Love Java

In no particular order…

  1. Fantastic IDE code completion and context-sensitive help, like JavaDoc snippets in tooltips. This “information at your fingertips” greatly reduces the need to context switch between your IDE and external documentation.
  2. Powerful profiling tools, like NetBeans, YourKit, and many others, that let you pinpoint memory leaks and performance bottlenecks.
  3. Sun provides the JDK source code, making it much easier to learn how libraries work.
  4. java.util.concurrent
  5. Huge selection of libraries makes nearly anything possible.
  6. Jobs, jobs, jobs.
  7. Runtime performance.
  8. A culture of open source, where nearly any developer tool and API is available under an open source license.
  9. Portability.
  10. Java is one of the few officially supported languages within Google, in case you ever want to work there.

14 Responses to “Ten Reasons to Love Java”

dario the boring Says:

1) seen 10 years ago in characters IDE
2) great, you can solve problems that do not occur in others enviroments (of course, they happen, but tools to solve that already exists… since 20 years?)
3) great. No, really, that’s great, seriously. That’s the way it should be.
4) concurrency.was.not.a.problem.since.it.used.to.be.managed.by.the.database
5) Wow. That is new! Now we can solve this old thing that was never ever solved with computers.
6) Of course… but I’ve seen 23 years old programmers calling himselves SENIOR PROGRAMMERS. Well… old system administrators used to be “GOD HIMSELF!!!”… you got me in this one too.
7) Is it better than native performance?
8) great… you are talking about perl, don’t you?
9) COBOL/PERL/PYTHON/etc programmers say the same thing about their languages.
10) Well it depends on the decade… It used to be IBM, then DEC, then Microsoft, then Novell, then SUN/RedHat, then SAP… let’s see… yeah, right now is google… let’s see again, just in case… Yes, google…

Your blog is great. Now, we all do java, is an awesome frontend, and this blog is a very useful source of information.

Clinton Begin Says:

1. Fair enough.
2. Nothing to do with the language - JVM/JPDA
3. Nothing to do with the language - standard libraries
4. Nothing to do with the language - a library
5. Nothing to do with the language - again with the libraries
6. Fair enough.
7. Nothing to do with the language - JVM
8. Nothing to do with the language - libraries
9. Nothing to do with the language - JVM/bytecode
10. Along with C, Python and probably a bit of everything in a company that size.

If you’re going to discuss the LANGUAGE you need to discuss the elements of the language itself that makes it unique and desirable. Much of your list is a side effect of billions of dollars thrown into the Java platform during the dot-com bubble. The language had nothing to do with it. Now that the bubble is gone, along with the money, Java is running on fumes.

Clinton

Michael B Says:

not sure where he said he was referencing to the Language java and not the platform.

I think python, ruby are cool. but you guys just sound bitter. Also if you think everything was there 10 years ago then you haven’t been outside your office or you should stop the euphoric nostalgia trip.

‘When I was still a lad people used to use one hand to write a compiler while using the other to write a kernel’

or something. :/

My goodness, Clinton, I’m afraid you have an issue :-)

There was never any claim the post was discussing Java the language, so assuming this is not correct. If you or anyone else sits down to write Java code (using Java the language), then the points made in the blog post will be beneficial to you, the Java coder. To say that we should discount these features because they are the result of billions of dollars of investment quite frankly confuses me. The investment of money into a ecosystem is a good thing, regardless of whether it has dried up or not (which it hasn’t considering Java is still the number 1 sought after programming talent).

Java.util.concurrent is part of the standard libraries as of Java 5 (which is actually rather old now - so to say that Java is running on fumes is incorrect - Java 6 was a huge leap forward, and Java 7 has an exciting future, not to mention Open JDK).

I would love to know what your actual motive is. Java is still the number one programming language,
it is bloody powerful and does what millions of developers want to do.

I guess I’ve done my humanitarian thing for the day, having fed an obviously lonely and starved troll. Have a nice day, and smile once in a while :-)

dario the boring Says:

I didn’t want to behave like a troll, even when the list was an easy target. I would like to add something as caveat emptor: I’m a dba. I like things on the database (like = think this issue should be solved this way, because of my previous experience, not seen somewhere, but experienced, and proved with numbers and managers turning blue when performance goes down). So, regarding 4), I deeply support my thoughts… Others… can be gone with the wind. It will change, it’s allways changing. Regarding money and investing on a language, I could think on money invested on cobol and hardware back then as huge mountains of money. And Java, is jvm, and language, and eclipse, and ant, since I do not use eclipse if I’m not doing Java… I’m an outsider. And regarding java being a “frontend”… well, that was “tongue in cheek”… But I can prove it ;-)

sorry for my english

Dennis S Says:

@dario, boring is apropos… @Clinton get over it… 10-1 or 1-10 good thought (as usual) I just angst for applications and custom frameworks in Java to have good JavaDocs, so that I can trust/use them rather than having to drill down to the source. My 11… a cornucopia of support, tutorials and development to keep it interesting. Of course that’s just my opinion, I could be wrong. (Sorry Dennis Miller)

afisna Says:

dario: Business logic in databases is doomed. And should be avoided like a plague unless there is a really good reason (most of the time i don’t see that reason).

dario the boring Says:

afisna: business logic in application is a trend. And of course, it will serve well some cases. Tiny objects, with little time-to-live. Web alike aplications. Great. Large sets of data, large processes… performance doom. Managers fired.

Use any language. C#, Java, Perl, basic. Build great data - frontends (I do not mean “windows” or “gui”). Transform data to generate xml files, SOA, “any colour you like, as long as” it just invoke a stored procedure.

I do not use jboss to do large analytics of finantials. And I wouldn’t use an AS/400 to serve web request.

And if you say “hardware will evolve and limits will dissapear”, I’will say “banks still use mainframes and won’t go to relational database in 20 years, people will still download data from tables and sort it with cobol. And then, they will store dna of clients, and hardware will not be enough”.

(this comment could be invalidated when first object oriented “terabyte real world performance” database appears… Or until proved wrong or drunked)

Dennis S: headlines are fun. Explanations, bored. Proud boring, then.

Do not take this personally. Comments usually are cold and looks like an attack. I could be drinking coffee and talking with any of you, and let’s agree that you are wrong (said by any of us).

I will be working with java the following next 5 years, and same thing will happen to you with databases.

Good thing. It will not be bored. Except for fortram programmers… Mmm… now fortram programmers will post comments also telling me “apropos” :-)

sys64738

afsina Says:

dario: it is not a trend. the domain you are talking about is shrinking very fast. The applications requiring big amount of data calculations (like Data warehouses) are very rare. Now not even banks needs database driven applications anymore (i mean stored procedures with application facade). i saw the perils of stored procedure driven data ware houses, or other applications. failing miserably when incoming data was not as clean as expected and required real intelligence to clean it up. stupid soundex tricks does not work, or basic text indexing starts not cutting it. You are also tied to a propriety language with flimsy tool support. Licensing costs are higher than Hardware costs.. Have you watched a person debugging a complex stored procedure? DB driven development is dying. and i am not sad about it.

dario the boring Says:

I have probably seen different things.

Yes, I have seen debugging of stored procedures. I’t can be a nightmare, if you do not know how to do it (not saying you can’t). I bet I can have one if I debug java…
Regarding propietary language, you can do stored procedures on java on Oracle (big vendor) and postgresql (bsd license). You can build external procedures on C for both platforms… “any colour”
And advanced text indexing exists and it’s well done. It can be transactional or not… but I can not stand that since I do not know your business case.

Regarding data not clean… I ask somebody to clean it on jboss, and then will feed it to the database.

Again, that’s what I know. And I’m not saying “do not use java”… It’s a swiss knife. Yes. But it will not replace an axe. But it could change. Something could make me change my point of view. An object database, a jboss cluster (trying to read about it).

It didn’t change to me yet…

dario the boring Says:

may be the people I work suck in java…
:-)

afsina Says:

very possible dario. you should see the steaming pile of code i have to deal with nowadays.

Smitty Says:

@afsina and dario: We’re all code monkeys! We just live in different jungles. Way to keep your ping-pong positive and up-beat. I love different opinions and sides of the story. Especially when it’s kept professional.

I’ve always had a persistence layer to write data to using Java. Usually it’s an Oracle back-end. I’ve seen performance soar, and I’ve seen it crash to smithereens. I’ve watched DBA’s cry as they upgraded from Oracle 7,8,9, and 10g. In every case they loathed the recompiling and troubleshooting stored procedures and PL-SQL. I’ve seen them throw parties for Java developers when they wrote code to replace those cursed SP’s. I’ve seen them threaten to slash the same developers throats when the database grew to the terrabytes level and choked on genetic sequence data.

It’s not that DBA’s are fickle, they’re just like Java developers. Under extreme pressure to perform, but not given full control of the problem domain.

Still, in most organizations, we still have to work with each other. Besides, without a DBA, who’d add that extra table column I need 8^).

dario the boring Says:

(a year later… I know.)
The same guy who will tell you how fix that stupid module using hibernate that retrieves 1000000 rows one by one.

Leave a Reply