The Java Seige Mentality

February 5, 2004 10:03 PM

Gavin King

In fact, what most amazes me about IT communities is the sheer ubiquity of argumentum ad hominem. I've always associated computing with the pursuit of understanding via scientifically inclined methodology. Yet most of the debate that occurs in the Java community consists of name-calling.

Alan Green is listed in a few public aggregators, Javablogs and pyblagg being the main ones. I must admit to finding the childish behaviour of some Javablogs denizens frustrating. Maybe I’m just an old fart. Or maybe I’m just not macho enough to program in Java.

pyblagg, on the other hand, is a delight. In general, the Python blogging community is full of interesting people, who are capable of expressing themselves clearly, who are polite and who can respect alternative points of view. Does the language rub off on the people or do the people rub off on the language?

Glenn Vanderburg

Also from RubyConf, one more answer to where we went wrong with J2EE, and Java in general. Matz -- the inventor of Ruby -- titled his keynote address How Ruby Sucks. Java folk have always taken the language too seriously. It's too late now -- it would incite an irrational panic among Java developers -- but we might be in a much better place today if, about five or six years ago, James Gosling had been able to deliver a talk about Java in that same spirit.

I think, to some extent, Java programmers suffer a seige mentality.

We're surrounded on all sides, you see. To C programmers, we're children who can't handle real complexity. To Smalltalkers and Lispers, we're misguided souls groping towards a better way, but trapped in the wicked grasp of Sun's marketing. To Perl and PHP nerds, we're too busy over-complicating things to ever get anything done. To Ruby and Python hackers, we're already dinosaurs. And to everyone, we're apparently the COBOL of the 21st Century.

Pretty much every other language has its niche. You can point at it and say that it's useful for this, or it pioneered that, or you'd use it in this circumstance. The only people who say anything like that about Java are, well, already Java programmers. C# programmers might look on Java as a slightly embarrassing parent, except we're the competition, and it's better to just not mention us at all.

I think that's what you get when your language was designed as a compromise between competing points of view, rather than striking out on its own path.

And like pretty much everyone who has nobody else to bully, we turn on each other. On a regular basis.

I'd be among the first to admit that Java has its flaws. Its design is a compromise, and it is thus compromised. But it still has a lot going for it: not the least of which being the quality of tool support and available libraries. And it is a language in which talented people can produce worthwhile software.

1 TrackBacks

Listed below are links to blogs that reference this entry: The Java Seige Mentality.

TrackBack URL for this entry:

Charles Miller talks about why the Java community is so nasty: "Java programmers suffer a seige mentality." ... "WeÂ’re surrounded on all sides" ... "And like pretty much everyone who has nobody else to bully, we turn on each other. On a regular basis... Read More


Good words.

Maybe you haven't been around long enough with your eyes open but
it has been an uphill battle for J2EE and a huge amount of other technologies against Microsoft.

To hint the java community is NOT open minded is misleading..Take a look at all the languages/concepts supported under Java. It's truly amazing.

"it has been an uphill battle for J2EE and a huge amount of other technologies against Microsoft."

This is all in your head. What better example of the Java seige mentality that this very comment. C# is Good, Java is Good, Sun is Good, Microsoft is Good. Get over it.

What is "Seige"?

It's quite possibly a misspelling of "siege". :)

Basically, it's when your army is in a good defensive position but surrounded on all sides. There's no chance of winning if you go on the offensive, so you dig in and hope that you can out-last your attackers, or at least cause the biggest possible damage to them before you are overrun.

A "siege mentality" means to constantly be on the defensive, and feel you are surrounded by hostile forces.

How dare you diss Java! You funny looking fish person, you've got no idea, Java is Good, all other languages are bad (except those with closures and method pointers, and maybe stronger/weaker typing).

Oh and BTW. we're saying goodbye to Lloyd today, we'll probably be at the VC all afternoon, all welcome. Be good to catch up soon...

- jed.

I think the siege mentality is no more evident than in the term "Java programmer".

In my experience, no other language (although perhaps C comes close) has a higher percentage of people who develop in it classifying themselves as a "(X) programmer".

Many other languages have a large amount of people using them who take the attitude "programmer who uses (X) when appropriate". Unfortunately, Java doesn't seem to be like that, which is probably why you get the name calling and siege mentality. Java people seem to be too close to the problem, and seem to take any criticism (about what is after all just a language) too personally.

It's probably also true that the Java guys digging in with this attitude that causes some "outsiders" to be so antagonistic towards them. Kind of like how the fanatical love of the Mac by some of its users causes them to be such a popular target.

Shane: At least in my experience, most programmers identify with their language of choice. Even polyglots will admit to one language they love above all others, and secretly consider themselves to be a programmer in that language.

See also:

Zoe and Shane, thanx for questioning and answering concerning "seige". As a German it is hard enough to look words up in LEO dictionary, but it seems impossible when misspelled ;-)

To continue questioning, may I ask for the meaning of "argumentum ad hominem" ? My long-running latin course could not help me, mea culpa.

What about the argument of nerd, "Java is like COBOL of the 21st century"? I think, he only wanted to put something on the list to make as many people read this blog as possible. But to make you learn, nerd, I would suggest, in the future you'd compare COBOL with ABAP in terms of "X is like Y of the 21st century". This would get a closer match.


An "argumentum ad hominem" is when the person presenting an argument is attacked instead of the argument itself...

for this and other logical fallacies

Part of it may be less the Java language than the immaturity of the Servlet/J2EE environment, which gave Java programmers just enough functionality to be dangerous. When this environment was introduced, you HAD to add your own infrastructure to accomplish anything of significant proportions so that we all became framework developers overnight. Humble programmers no more, we were "architects." From solving problems, we went to solving the problem of how to solve problems.

Open source may also have something to do with it. Programmers who participate in open source programming aren’t producing products anymore, they’re producing ideas. Hardly a week goes by on TheServerSide that someone doesn't announce a new framework. And it's never with the modest goal of making progress on a particular programming problem. It has to be a paradigm-shifting, outside-the-box revelation that the programming gods have vouchsafed the author alone, who is now generously bestowing it on our benighted community.

Compare this to .Net programmers. They just go along creating products with a page controller architecture backed by datasets. All they can argue about is their business logic. How boring!

In the scientific community, the institution of peer review reinforces the individual's subordination to the group. No matter how brilliant your idea may seem to you, it amounts to little until your peers have weighed in on its merits. This leads to a professional hesitancy in confirming your own genius that we would do well to imitate.

I think it's naturally java community is more argumentive than other languages communities.

Firstly, java it's not a property of any single vendor, consequently, java community is vary large, and very diverse in methodologies.

And secondly, Java has progressed into a series of technologies that cover so many areas, they provide a whole solution to from desktop program through enterprise system ad mobile system. Except for Microsoft techonologies, that has never happend to any other languages.

So Java has already bean not a choice of programming language, it's a choice of framework and many related technologies, that's the situation.

better java than vb, right? =)

Java is NOT just a language, it's a platform. So people do identify themselves as being a "Java developer" because the OS doesn't matter. I use to be a C/UNIX developer, then a C++/UNIX developer and now I'm a "Java developer". Well, "Java/J2EE consultant". ;)

But I must ask what planet some people are on?! In Manhattan where I work and live Java/J2EE rules the middleware land. .Net/C# sounds good but it so new that even the Microsoft faithful haven't rolled out anything on the platform yet. You can't get a job doing Ruby because as the perfect language no one actually uses it, just talks about it!!!! Python being a slow scripting language is only hip and kewl with the people who realize what a hack Perl is.

C is only used by people who still don't get OO and C++. And as for C++, if you didn't get tired from having to wait 10 years for an ANSI version so your code would compile on other platforms, you did from having to write so much libary/middleware code. Maybe it's me but I want more than "strcpy" and "printf". Add core dumps and GPF's (not to mention security buffer overflows) and Java becomes obvious.

If you think your language is perfect than I have news for you, it will NEVER become popular. Just ask the "perfect" language people over in Eiffel newsgroups.


P.S. I also use Ant...

To be pedantic about it, "Java" is not a language, and it is not a platform. It is not "an" anything, because it is not a noun:

"Sun trademarks are adjectives and may not be used as nouns, or alone as a shorthand way of identifying a product or service." --

Technically, it is incorrect to call yourself a "Java programmer" because that makes you a trademarked product of Sun Microsystems. You should call yourself a "Java language programmer" or a "Java platform consultant" or whatever. Now, doesn't that make it all so much clearer?

I always though was more like java than c# was :)
Speaking of, theres a language thats hard up. Its now a full blown language in the same league as c# and java (when used propely, admitedly it can easily be used poorly (eg, using on error resume next instead of try/catch)) but it's lost its niche of being a super-easy language to use (again, when used correctly), yet it still isn't a respectable language amongst other programmers. Not only that, but there's no doubt VB programmers are feeling the [not so] friendly competition of C#.

Previously: A Confluence GUI Client in 200 Lines of Code

Next: The Blogging Habit