The Programmer Hierarchy
mgccl.com
mgccl.com
Another interesting blog on languages : http://www.sysprog.net/quotjava.html My favorite : "our development cycle is much faster because Java is interpreted. The compile-link-load-test-crash-debug cycle is obsolete. (James Gosling)"
I hope he was intentionally trying to mislead someone... you'd think he'd know better! :)
I see Java as a good C++ replacement. I refuse to write anything in Java that I wouldn't want to write in C++ (for example I've refused to do web programming in Java).
Your approach to it seems reasonable, although I find myself writing extension modules (for R, PHP, Python, Perl even) in regular old C... not because I particularly dislike C++ or Java, but because if I can get away with just C, it's less likely that I'll step in a template-error or uncaught-exception shitstorm with a 10-page backtrace.
I should have stated this in my comment, but I don't like C++ much (which is why I'd rather use Java over C++). But I absolutely love regular old C. It's a beautiful, simple programming language. I think C is a perfect language for implementing programming languages, libraries and operating system.
The real danger of the java language is that it's hostile to lean/agile development. If you're in a market that iterates quickly, that can be a real problem. If you work for a bank... less so.
Just to make it clear, I will never use Java (or PHP for that matter) to develop web applications.
It a cup of coffee in which damp cigarette butts bobbed about.
God I miss TPJ. Say what you like about the language, there has never been a significantly more interesting programming journal (to my knowledge) than TPJ.
The dumbest, least-motivated, non-reading bunch of individuals with engineering titles I've ever known were all Java or VB programmers. The kind who never heard of slashdot let alone reddit or joelonsoftare and use "wizards" to generate SQL queries. Heck, these dudes even call DELL or HP customer support (!) when their home computers stop booting.
Moreover, even smarter Java programmers have their issues. Nobody believes in design patters as much as Java people do. They never call new() on anything, they MUST have a factory that creates objects. They produce myriads of code that DOES NOTHING, but encapsulates some other junk that in return also does very little. These dudes can get quite aggressive if you try to point out to them that they never actually do anything but most of their time is spent DESIGNING (oh! they LOVE this word, in fact they don't like to be called programmers, they like to be called architects).
I absorbed Java like most of us in college, but I will never go to work in Java shop because the danger of being surrounded by these morons is a lot greater there than anywhere else.
But I do agree, especially with the design pattern part. I have a co-worker that loves to boast about his "knowledge" about design patterns, and he is the kind of dev. you described on the second part of your comment.
http://www.google.com/codesearch?q=%22I+hate+java%22&hl=...
Only 20 entries, I am surprised.
I use java every day and honestly, I wish I could throw it down the well. It's a shame that GUI building in python is not trivial, neither consistent nor relatively bug free.
I don't think you know many java programmers, and it's clear you haven't done any real world java development. Sure, the language has problems, and there are astronaut architects that do silly things, but neither I nor my coworkers rely on "wizards," or are obsessed with factories. Most of us use macs or linux. You might have read a rant that described all java developers that way, but it's unfair. There are VB and C# developers that fall into the same traps you describe.
In any case, if java is such an obviously terrible choice, why does a company like Google use it extensively internally? Either you assume the dangers of being surrounded by morons at Google is high, or perhaps you add nuance to your assertions.
1. HTTP
2. How to add query parameters to a URL
3. How to write an Ant script (they rely on Eclipse's compilation)
4. How to configure and deploy a .war file by hand (they export a .war file using Eclipse and run it in an embedded tomcat instance)
5. Why using System.out.println() in a servlet won't show anything in the server logs.
...
The list goes on and on. The worst thing about Java is that it is deliberately dumbed-down so that enterprises can easily make their programmers replaceable. Except of course, it never really works out that way.
The effect it actually has is that it makes people who shouldn't be programmers think they can be programmers, and they look for a company where they can make a decent salary while not being required to actually do anything or improve their skill set.
Don't blame it on the language. Blame it on the students who only wants to learn the basics so that they can get a degree and a comfortable job.
http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom...
I'd guess that those who do say "I love Java" probably don't know any other languages. Maybe if the only choices were Visual Basic 5 and Java...?
I don't hate Java though. I can't complain because I do all my Java programming in Scheme.
That chart needs a thorough s/Ruby/Rails/g