There is a world in which glasnost has never happened. The iron curtain is still in place. The so-called free part of the world — in all its inconsistent chaotic beauty — stands against the firmly organized part where some kind of party decides upon the future development and people more or less follow those directions. There is the occasional traitor and spy games are not unusual. But the average citizen in each block does not care about the other side and does not know very much about it. If asked however, he would testify to the worst about the people on the other side. Sometimes those bad asumptions are even actually true which is regularly used by some group in the own camp to propagate FUD and to cement a stable political system.
Let’s just hope “The Day After” does not happen anytime soon….
Sounds like a description of the cold war in the ’80s? Well, actually I am refering to the IT world today, the opposing blocks being the Java and .NET communities. You think that’s exaggerated and ask why I have that impression? Well, there’s proof after proof after proof…
❗ Have a look at the comments in major IT newstickers (german readers have a look at www.heise.de) and the onging flame wars. (Those may be just proxy wars.)
❗ Have you ever talked to people form the other camp? (If not, why not?) Have you been confronted with the usual arrogances and prejudices?
- “One cannot build software on that plattform; developers working on that plattform are simply too stupid to realize the truth; …”
- “Monstrous, inperformant, over-engineered, software molochs; arrogant oo-fanatics; …”
Sounds familliar? Any problem placing the “Java” or “.NET” tag on those lines?
❗ So far my favourite is a java guy who stood in an office (team office for a .NET project) and announced (allegedly to a collegue but loud enough to be heard on the next floor) “one cannot build software with Microsoft!”. He did that after talking to his collegue and in the process stating that he did not have a clue about (ASP).NET. Single-minded, arrogant idiot.
❗ The final experience that led to this post was that little research I did for the last post. Although a little less religious, I realized that the level of ignorance of the other side is daunting. Some examples:
Java minded people:
- “The complexity of JEE is minimal when compared to .Net “. Nonsense. Just compare “Java EE Technologies” with “.NET Technology Overview“. The complexity of the plattform is all in all comparable, the complexity of the various specifications of Java EE is considerably higher than the respective .NET documentation.
(I didn’t include WinFX parts in the equation because there is no counterpart on the Java side; see “.NET Framework 3.0: Clearing the Confusion” for infos on that topic.)
- “I see by far more Java services than .Net.”. Well, I see more .NET services. Perhaps that’s because I work mainly in .NET and you in Java dominated environments? Actually I see more none-service based integration (database imports, ftp file exchange, …) …
- “Microsoft environments are typically more homogenous, which requires less integration thereby reducing the benefits of SOA.”. Nonsense. In enterprise environments (where else would I need a notable degree of integration and SOA?), Java usually has the bigger installation base on servers, i.e. more integration demand.
.NET minded people:
- “… the core of J2EE (EJB) was never really designed for the web, and the whole async ethos. “. Nonsense. EJB is as much designed and suited for the web as COM+ is. Both are component management systems that gained momentum with the success of the internet. The were the very means to enable the development of scalable web applications. Asynchronicity is in addition a core part both systems (message driven beans in EJB and queued components in COM+).
- “Java EE turned out to be about as rigid as CORBA.”. Yes, sure. Ever heard of the “Java Community Process”? Was it possible to use just certain parts of CORBA and replace others?
- “Really, compared to .Net J2EE development is pain.”. It is? Did you ever use J2EE with a decent IDE, say Eclipse? Did you ever try to write a .NET application without Visual Studio? Why did Microsoft change the build system to MS-Ant, sorry, MSBuild?
- “So far .Net has avoided becoming rigid – it is still an open platform as to allowing many different approaches to achieve a solution.” An open plattform? Don’t you confuse implementation with usage? Who decides on how to evolve the .NET Framework and Visual Studio?
So much for the people living in both blocks. But there is another thing which is again just like in the cold war: Despite public appearance and various cold and hot proxy wars, there is considerable cooperation between the opposing camps. Politically each contributes to the welfare of the other and draws bennefits as well as self-affirmation from it. And talking about “the powers that rule”, IBM and Microsoft work very well together if it suites their needs, see http://ws-i.org/ for example.
So, how far can the similarities be stessed? What would “the fall of the wall” in IT look like and who would be the winners and loosers? Would we have to face similar problems as we had in the 1990s, i.e. the struggle betweeen Sun and IBM? Given these potential problems and the political situation today, do we really want the wall to come down? (Metaphorically speaking, I’m glad the real wall came down!)
Of course there are positive examples as well. During one Java project I worked with two Java guys who did not have a clue about .NET. But they were open minded and just hadn’t had the opportunity to look into the stuff yet. Actually they were surprised that the .NET Framework and some Visual Studios versions are free. They gave it a try, they saw the pros and cons, they were even impressed by some aspects. They never seriously considered switching to .NET but we had some interesting discussions about different technical and “cutural” aspects.
PS: This is my last excursion into Java related areas. I’m going to focus on .NET again, it’s less political there.