Digital Edition


All week The Great Java Debate has been raging, as a direct result of the technical points raised this month by Java Developer's Journal editor-in-chief Alan Williamson, in his April editorial, about Microsoft's rival language to Java, C#.

Everyone had been talking about C#, Williamson felt, and in true Microsoft "Chinese whispers" style, the spread has been rapid. "So we felt it was time for JDJ to find out the real truth behind this new language and present the facts as we found them," he says.

But there is always going to be particularly virulent controversy whenever an industry commentator mentions Java and Microsoft Corp. in the same breath. Comments posted to Java Developer's Journal Web site ( from fulsome praise such as this from business consultant David Bolsover ( who writes "I have to agree with much of what Alan wrote in his editorial - the level of ignorance and misunderstanding amongst so called IT professionals is astounding" to dramatic criticism such as this from Canadian software developer Christian Ouellet (, who strongly believes that such an editorial "is not what the Java community needs" to the extent that, as he says: "that's why I will burn all JDJ issues I have..."

Well, Java always did evoke strong emotions!

"Java Developer's Journal is proud to take the lead in peering over the horizon, that's what readers (developers) expect from us," says editor-in-chief Williamson. "That makes me kinda Chief Scout on behalf of the readership, heading up the gullies and reporting back on what I find."

"The Java community is one of the most passionate and open set of people I have seen in my life," he says, "and it is this strength that will ensure Java will be a formidable force against the alternatives that come up on the radar such as Microsoft's C#."

The feedback generated falls into two camps, those who feel the writing is on the wall for Java, and those whose view is that Java has never been stronger and that never before have we seen so many applications and general forward movement in the Java space than we see today.

Sun Needs to Wake Up and Smell the Java
"Alan Williamson in his JDJ editorial is right and many are too blind to see," writes Steven Tower ( "I've been a Java developer for going on 7 years now," he continues. "I was very lucky to have gotten in on the ground floor. However I have discussed lately with other developers that we really are at a crossroads. Sun has been arrogant to the point of insult and has shrugged off real concerns and problems. Sun needs to completely embrace their community, open source and otherwise. They need to wake up and smell the Java so to speak."

Tower explains: "I hope and expect Java to be my language of choice for years to come. But I can't deny a viable alternative. Sun has completely failed on the desktop. Yeah, you can argue oh look at this great app and that one, but truth be told Sun blew it, OS/2 had some great apps too. If C# makes even small inroads on the server and on the desktop Java is in real trouble. Microsoft doesn't need massive wins, once they have their foot in the door on both they will start to squeeze on all sides. Don't hide your heads in the sand or hold them so high in arrogance with a belief that because they haven't already, Microsoft won't find a way."

Developers like to think about the look and feel of an app that they plan to develop, and they like to think about the algorithms that will make it run efficiently. If Java happens to be the best language for the job, then that's what they'll use. But they're not tied to any language, and this is why - as Williamson in his editorial was trying to point out - the potential rise of C# is important for Javaland to consider very carefully.

Java Will Benefit From Some Healthy Competition
"He's right on the money!" says Michael Julson ( "I agree with [Alan Williamson's] suggestions and beliefs of where Java might be in the future. Sun has been busy fracturing the language into so many pieces with the hope that it will be the language for all situations and all needs. Because of this fracturing, it's become a weaker language and has suffered."

"I welcome C#," Julson continues. "With its similarities to Java, it puts some tougher competition to Sun, IBM, et al. and will make the language better off for it. Beyond that, I'll be able to use it for desktop apps that don't crawl at a snail's pace."

David Bolsover, already mentioned above, echoed this theme of the responsibility that Java supporters have to spread the word. "The Java community must make renewed efforts to communicate the merits of Java to the wider community if it is to survive," he says. "Personally, I think that Sun must take the lead in this - a few well placed full page adverts in National daily papers wouldn't go amiss - free CDs on magazine covers - anything that promotes the Java message."

And Aisha Fenton ( too feels that Williamson is sounding a very timely rallying-cry: "C# is set to become the dominate client-side language," she explains. "MS will make it very fast and a natural choice to program in for Windows (even games could be easily written in it, since they'll have good Direct X support). We can't just ignore it and attack anyone that tries to talk about it. We have 5 years to make Java better, let's get going."

Nobody Knows What's Going to Happen
"It's just branding. Get over it," advises Jason Norman (, a health systems software engineer at Vanderbilt University Medical Center in Nashville, Tennessee

"Let's face it," Norman says, "Nobody knows what's going to happen. On one hand, we have MS. They have a pretty strong following in the business world. Their branding is fantastic. They have all sorts of cool commercials (however cryptic and uninformative they may be) and for some strange reason, lots of people believe in them."

"On the other hand," he continues, "we have Java, billions of lines of Java code floating around the Internet. There are lots of enterprise applications and systems in place. Millions and millions of dollars already invested. Who is going to want to basically flush everything they already have away just to jump on MS's latest buzzword?"

"Just calm down," adds Norman. "In five years, neither Java nor .NET (if it is still around) will be anything like they are now. This whole debate will seem silly and pointless."

About Java News Desk
JDJ News Desk monitors the world of Java to present IT professionals with updates on technology advances, business trends, new products and standards in the Java and i-technology space.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Dan rightly said:
>Those of you who are "language >centric" better get a clue. It is not >the language that makes or breaks you >as a developer, but it is your >underlying ability to solve problems >and produce quality designs. If you >are good at these things, you should >be able to migrate across languages >with a few months of experience.

That is true, but I find it is the job market that is the most language specific. I have programmed in countless programming languages, but it seems like the job market is always calling for years and years of experience in whatever language I have not worked on in the last 3 years. Learn Java and they want C#, learn C# and they want VB, refresh your VB and they want COBOL, refresh your COBOL and they want RPG/ILE or FORTRAN V or REXX or Perl or Lisp, etc.

The irony is that if a good developer works in a sufficently large and diverse shop, he/she can make lateral moves to work on new programming languages almost at will, but in the job market, that's not the case. There are employers that will not even hire a Java programmer to work on a J++ project no matter how skilled that programmer is.

Until the job market gets a little more intelligent about hiring techs in general, the situation will not change. Mere syntax knowledge is still what gets you in a company.

MS has shown time and again their only interest is eliminating competition. They'll do anything to accomplish this.

They will drive us to develop applications that can only be run against back end systems they own (Passport, etc.) and that track our every click - so they can analyse our actions looking for the next market niche developing. Again, so they can kill competition in that niche too.

The more development that moves to .NET/C#, the fewer entrepreneurs you'll see attempting to write new applications. Anything that gains success in any non-vertical market app goes on their radar for them to crush.

They're even modifying their licensing now to make it against licensing to even use GNU products (i.e. Samba, et al) on the same network. And threatening to take open source software developers to court if they believe that something an open source developer creates may infringe on some patent they have somewhere (i.e. create fear in the open source and venture capital markets to drive dollars away from non-MS tools).

These people are dangerous. That's why I'm signed -

Java has made nothing short of a revolution in server side software development (in my opinion). Event though plenty of people are ignorant about its merits (the microsoft only crowd for example), it's done me quite well. I have to admit i was a sceptical at microsoft's chances at seriously challenging java with C# and .NET. When the marketing hype kicked in, i had to have a look at it. My response was 'what's the big deal?'. A few hundred million dollars of marketing can do wonders - and they count. C# is a rip-off of java, without a doubt ( and hey - imitation is the sincerest form of flattery ). Microsoft took java, and with the benefit of hindight , overcame some of its shortcomings, as you can when you are a follower not a trailblazer. And to be honest - some of the new features are quite desirable.

They interoperate vary easily. I wrote java to c# and c# to java code that communicate effortlessly over soap in five minutes. But it gave me no great reason to change to .net for server side apps. And i'm not about to turf my portable java code for a microsoft tax.

However, those who have been tracking the ximian mono project will be nothing short of astonished at how quickly they're cloning the runtime and class library - and integrating winforms into GTK (the GTK# interfaces are now in beta). So soon we'll have a free implementation of .NET to work with. This may very well open up linux to be able to run portable .NET apps directly - a software base that, lets face it, has no equal on the planet.

You could develop on visual studio, and run in linux. Even though microsoft could write proprietary extensions and so forth, so what? The clr and language are the most important things. It would be trivial for vendors to customise .net apps to run on linux by bypassing these. Microsoft isn't having an easy time pushing the industry - .net Myservices just got canned because nobody's stupid enough to go for it.

The other thing is the similarity to java is a two-edged sword for microsoft. It allows java porgrammers to easily become productive in c#, but it also makes it trivial to go the other way.

Imagine open projects like netbeans and eclipse gaining c#/.net cabailities - it woudln't be that hard. In which case, developers could bypass microsoft entirely while still writing apps based on technology developed by microsoft - exctly the same thing most of us are doing with java now, with respect to SUN.

So, i won't switch just yet, not until Mono or poratble .NET hits prime time. But all technology has its strengths and weeknesses. I use java not because of religion, but because it's good technology. C# gives me that for client side applications that will be acceptable to end users as well - and which will soon run on platforms other than microsoft. Choice is a good thing.

The whole notion that we all need to band together and hold hands to fight the evil C# threat is silly. I don't use or advocate Java because I'm fighting for a common cause. As a professional, my job is to employ best-fit technology to solve real business problems. So on the occasions that I use Java, I do so because I see Java providing a suitable solution to the problem at hand. But, I'm not married to Java. If tomorrow, C# and .Net provide a better option, I would be a fool-in-love to ignore it. Guys: Java is only a technology. Don't fall in love with it and marry it.

In any case, I feel that someone has hit the panic button too soon. The CLR port for UNIX/LINUX platforms is still in the 'pipeline'. Who knows when it will materialize and how well it will be received.

Finally, the good news is that C# is similar to Java. So, even if the doomsday scenario turns out to be true, it won't be too hard for Java developers to switch to C# (probably even easier than the switch from C++ to Java). So unless your paycheck comes from Sun or some company that is betting it's future on Java, don't sweat over this one.

So true believers, the MS Barbarians are at the gate.

Looking for compelling arguments about Java's survival, instead all I see are:

An explanation that a comparison between Java and .NET is not valid because Ebay was supposed to be using .NET and they are using J2EE.

.NET is no good, because MS has unstable platforms like Windows NT (how old?)

I remember some of the reasons Java became "the next big thing". They include,
1) Write once, run anywhere
-> MONO developing CLR for UNIX

2) Open standard
-> MONO is developing their runtime from open standards, what about Java?

3) It was a cleaner C++ with most of the same functionality (Strongly typed, Garbage collection, etc..)
--> as is C#

Lets stick to the relevant issues, OK?


Thank you Alan, for a needed slap in the face. As developers we like to believe that technology will progress and be adopted based on its merits, but that is not always the case. Many other factors exist which influence technology adoption, some of which are so rediculous that they become topics for watercooler whining, or worse yet the source of bigger-than-life struggles against assimilation of the dark side.

But I do not agree that java has made little inroads into the client software market. Just because every application is not java-based doesn't mean it isn't the best platform for client applications. Java has an extensive set of frameworks that support cross-platform development, and C# is not even attempting to acheive this. I don't think that when C# is available on Linux, it will be able to run .NET solutions as if they were on Windows. The road to effective cross-platform apps isn't without bumps, even for java. But I see many applications (TogetherJ, NetBeans, Forte4J, JBuilder, DBVisualizer, ThinkFree, etc) that are large, functional, feature-rich applications, that enhance productivity.

If we as consumers want to support java in the marketplace, we need to tell software vendors what we want. Send your requests to venders. I'd love to see Quicken and QuickBooks as java apps (QB is the only reason I have a Windows box anymore). Next time you purchase any software product, send them some feedback asking for java support or a java version, that is unless you are satisfied with running apps on Windows. Then just do that.

As pointed out Java, Linux and MacOS X are painting a picture of a world where MS doesn't control the software market. And it includes Windows, mainframes, Solaris, FreeBSD, HPUX, etc as environments for us to choose from. A market of products is always better than a single product.

That's where I want to go.


It is interesting to note that the arguments here I am seeing pretty much echo the arguments about why we should keep COBOL, FORTRAN, C, C++, Pascal, etc. I especially found the lines about all the billions of line of Java code most humorous. But I notice that with all the billions of lines of code no one is advocating COBOL. The industry as a whole is continually evolving and changing. Languages and tools come and go not unlike business management fads.

The biggest culprit for having the fad is Sun. Several years ago I told a reporter of Ziff Davis that Java was going to fracture because HP, IBM, MS, and Sun would all do their own thing. I was wrong about the cause but not the fracturing. Sun has tried to be like the man who wants to be all things to all people and ends up being mediocre. Sun was making good inroads into the Enterprise arena. If they want to continue they need to stop whining and get on board with Web Services. Microsoft and IBM have bet the farm on this and no matter how people feel they have very smart people working at both companies.

The client side is already dominated by MS. Their OS install base makes it easier to justify using VB or C++ for the client app. So why has Microsoft has gone out of their way to make .NET as language independant as possible? Web servces.

Web services are starting to pick up steam on the server side of programming. And when they do, it won't matter in what language they are written. As long as an API and network transport are agreed upon, developers will be more able to program in whatever they want. Right now there is debate between .NET and (everyone else), but that too will be resolved.

From the business perspective the problem is going to be, how can we manage the numerous microservices on the server side? And, do we bring these microservices in house, or do we rely on externally available services?

That is the prize MS if after: the large corporate server.

Look back at the Cobol and Fortran were supposed to be killed by C. C was supposed to be killed by C++. C++ was supposed to be killed by Java. While each new language makes inroads into the domain of its predecessor, history shows us that the older languages survive for 20+ years in niche areas.

Yes, Cobol, Fortran, C, and C++ are all still alive and well; Java will undoubtedly survive any C# onslaught.

My believe is that one of the best things that can happen to a language is standardization. When comparing a standardized language to a non-standardized one, a project time will find much more risk in the latter. I suspect that the industry may be unwilling to standardize on a company-specific language; this alone may prevent C# from invading a whole relm of application software. It is looking like a good choice for one-off internal or commercial applications, but that is only one sector.

Also, I think what most people are worried about is being able to make a living. Those of you who are "language centric" better get a clue. It is not the language that makes or breaks you as a developer, but it is your underlying ability to solve problems and produce quality designs. If you are good at these things, you should be able to migrate across languages with a few months of experience. Yes, different languages have cultural differences and it can take more time to gain a deep understanding of the libraries available. I claim this is all secondary to your value as a problem solver and software designer/developer; these should have deeper meaning that just knowing syntax.


"I'm merely being a realist and looking at it from all angles", Alan writes. Hardly the case. The article's focus is limited to debunking the technical misconceptions about C#, but this is NOT the heart of the issue.

Few people accuse M$ of being technically incompetent. Of course their products are buggy - but that's part of their business model, part of how they make money, as we all suspect or know. In fact Microsoft is known for hiring smart engineers, so it's not surprising that they can write a decent Java-clone.

The REAL issue, IMHO, is Microsoft's motivation. They didn't produce C# to offer the development community a better alternative to Java. We weren't asking for one!!! No, the purpose of C# is to be another weapon in Microsoft's arsenal, just like IE or MSN, to try to wipe away the competition.

Consider this, because it's important -- C# is not so much a technical innovation, as it is pyschological warfare. And as a pyschological weapon, it will not win on technical merits, and will not be defeated by technical arguments. Forget the technical comparisons. The only effective resistance is an equally phsycological one, one which praises the benefits of Java to the development end-user community, and one which restores our damaged confidence in Java.

Dear Sirs,

With regard to the Java/C# debate. The closing remarks in the editorial talked of a need to support Java, albeit in frivolous terms. The notion of 'supporting Java' is a preposterous one. Java is either worth using or it is not. Any contrived notions of 'support' imply that Java is somehow ailing: if it is, tough! As a professional software developer with twenty years of experience, I am not so dumb as to ignore C# but, upon close examination, I found it to be a messy hack (this from someone who spent most of the '80s living and breathing MC68000 assembler). Java remains, for me, for the time being at least, the only game in town.

The main problem with Java is performance, of course. As each new chip design meets silicon, however, that becomes less of an issue. In fact, for most Java developers, it's been a non-issue for quite a while.

If Java survives it will be due to the continued successful work of the Java Community Process, due to continued effort by Sun to improve performance and increase reliability but due, in the main, to developers writing sensational products in Java (something that does happen from time to time).

One thing to be clear about: this isn't a race, despite Microsoft's perpetual obsession with raising levels of fervor. Wonderful products are not created over-night. Not by anyone. Java is the best thing to happen to software development. Period. All the fuss over offerings from Microsoft are due mainly to idiots with executive power who Microsoft have brain-washed with forked words. This worked for them in the '80 when they sold junk and it continues to work. These people are idiots because they don't learn from their mistakes. For a good many years now, Microsoft has sought to maintain revenue levels by reissuing all product lines with new features. New feature that are not fully tested and debugged. The idiots seem to think that software is SUPPOSED to crash. If Microsoft had any integrity, they would cease all innovative development and debug what they have now. On all our equipment we run Windows NT with SP 6. We reject later incarnations as simply costing too much in maintenance. When machines need replacing we will be migrating to Linux. We need stable software environments and so long as Microsoft want to sell us new incarnations of Windows we ain't going to get stable environments from them.

Warmest regards,

Jeff Lawson
Toronto, Canada

This is the typical, genuis, Microsoft marketing model. You take a technology, .NET, that has little track record, and such that it has is nothing to boast about. Then you compare it to Java, a real, proven technology that has a great many complex installations.

No one questions the comparison, which is completely invalid, but instead the new technology gains credibility by the comparison. A more valid comparison would be real installations. EBAY was promoted as an early adopter of the .NET framework, but in fact their major infrastructure is J2EE. What does this tell you? Nothing because no one made the comparison - instead (and JDJ editors are just as guilty) - they tow the Microsoft marketing line and make the comparison Microsoft wants.

The only other thing you need to do is embrace standards, so that you have the cross-platform marketing, then, once you've hooked the users, "enhance" the standard so that it once again becomes proprietary.

It's marketing at its very best and it has always worked in the past and it will this time unless you look behind the curtain..

Oh, despite the denials, you really have opened up a religious war on the scale of Mac V Windows! And I really don't think its a bad thing if people are challenged and made to think what they want from a language and an IDE.

I have and continue to code in C, C++, C# and Java. They all have a place and to say one will replace another is just not being realistic.

I know its changing, but at present C# only runs under .net, and that runs on Windows. So if you want to deploy on Sun, or Linux, etc you need to code in Java. But if you want to code to Windows, then C# is a better language, well thought out, with a faster screen painting methodology and better JIT compiler technology.

But even if C# is ported to every platform under the sun (no pun intended), Java wont be replaced. With IBM and Oracle coding all their end tools in Java, does anyone really think they are going to change overnight? After all, Cobol is still here 30 years on!

Good article, well presented.

Subscribe to the World's Most Powerful Newsletters


Technological progress can be expressed as layers of abstraction - higher layers are built on top of...
When building large, cloud-based applications that operate at a high scale, it’s important to mainta...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, disc...
CloudEXPO | DevOpsSUMMIT | DXWorldEXPO Silicon Valley 2019 will cover all of these tools, with the m...
Big Switch's mission is to disrupt the status quo of networking with order of magnitude improvements...
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism...
Dynatrace is an application performance management software company with products for the informatio...
In his session at 21st Cloud Expo, Michael Burley, a Senior Business Development Executive in IT Ser...
Having been in the web hosting industry since 2002, dhosting has gained a great deal of experience w...
NanoVMs is the only production ready unikernel infrastructure solution on the market today. Unikerne...
All in Mobile is a mobile app agency that helps enterprise companies and next generation startups bu...
SUSE is a German-based, multinational, open-source software company that develops and sells Linux pr...
Yottabyte is a software-defined data center (SDDC) company headquartered in Bloomfield Township, Oak...
Your job is mostly boring. Many of the IT operations tasks you perform on a day-to-day basis are rep...
Serveless Architectures brings the ability to independently scale, deploy and heal based on workload...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it wil...
Every organization is facing their own Digital Transformation as they attempt to stay ahead of the c...
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical ...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (No...
Chris Matthieu is the President & CEO of Computes, inc. He brings 30 years of experience in developm...