| By Joseph Ottinger | Article Rating: |
|
| May 1, 2003 12:00 AM EDT | Reads: |
18,030 |
It's with continued amusement that I constantly read about how Java should be defended from .NET, and how .NET will destroy Java. I understand the invective used by both sides, but the shine is starting to wear off; it's time to stop hurling insults, and examine what the future really holds. In my opinion, Java and .NET don't truly compete on a meaningful technological front - because both include easy hooks that allow for convenient interoperability.
.NET marshals information transfer through the use of formatters, sort of like interceptors that translate data into an internal format. If this sounds easy to do in Java as well, you should get a cookie - it is, and it's something some SOAP providers for Java do already. The concept is very similar to aspect-oriented programming, in which an interceptor sits in front of the method call, accepts the parameters, converts them into a format appropriate for the method, and then when the method has finished execution, translates the method results back into a format appropriate for the caller.
The similarity in the process is a critical factor. .NET may not be the grail - or the dragon - but it's not difficult to see how it's done from a conceptual standpoint. The process of enabling formatters for .NET method calls is fairly simple, only slightly more difficult than The Mind Electric's GLUE product (www.themindelectric.com); when you author your remotable components, you specify the capability to marshal by copy. Then, set up your endpoints with "Channels," at which point you can decide whether or not to expose the service with SOAP. In contrast, with GLUE (in the simplest case) you define an interface, then implement the interface with a concrete class, then tell the GLUE server you wish to publish the implementation as a service. Enterprising minds can see how both approaches can work.
The key for me is that both processes can be used with little knowledge on the caller's part. With GLUE, there's a slight registration process for the caller; it's not quite transparent. With .NET, you do much the same: acquire a handle to a remote service at runtime (including the type of connection), then call the object.
Thus, it's safe to say that there can be a direct equivalency between using a language-neutral remote service API in both Java and .NET. As such, as developers, our horizons are broadened by the existence of both technologies; a service is just a ser- vice, and we no longer really care if it's hosted on .NET or not; all we need to do is establish an endpoint, call the service, and process the result. Competition is a moot point when the technology is roughly equivalent, and interoperability is easily accomplished.
However, there are still differentiators. .NET is still provided by primarily one vendor, which means being subject to the whims of that vendor; I know of a few excellent programmers who have experience in COM, COM+, and DCOMŠshifting focus everytime as Microsoft discovers a "new and better" way to accomplish late binding. Java has had late binding built into its core since its inception, and that's one of its strengths.
Note that not all Java APIs for SOAP are created equal: JAXM does not provide the same clean API that GLUE does, which is a pity; JAXM follows Apache SOAP's model of exposing the underlying transport to the programmer, which is a grand failure in my opinion. The unfortunately named SAAJ (as implemented by Apache Axis) is better than JAXM, in this regard, but still requires a lot of code compared to GLUE. Hopefully, as the JCP matures the XML services for Java, they will follow GLUE's excellent example.
The result of all this is that Java and .NET compete, but primarily in mind share, not in technology. The marketing drive for both continues to escalate, but the interoperability between the two continues to improve; that is a huge win for implementers, as we can now visualize even operating environments as commodities. The goal should not be to dominate the market to the exclusion of other solutions, but to make implementation easier than it is using the available technology. If the implementation is as easy to use as GLUE's is, then the technology will be adopted.
Published May 1, 2003 Reads 18,030
Copyright © 2003 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Joseph Ottinger
Joseph Ottinger, formerly editor-in-chief of JDJ (2003-4), is a consultant with Fusion Alliance in Indianapolis and is one of the contributors to the OpenSymphony project.
![]() |
Raj Singhal 05/30/03 04:57:00 AM EDT | |||
This article compares Java & c# only is webservcies domain. There is much more than webservices in the world. Right Now .Net by no means a threat to Java because of large base already made by Java. |
||||
![]() |
Mark Wilcox 05/12/03 05:33:00 PM EDT | |||
First, neither .NET nor Java are constrained by Web Services. It's just Web Services is where the next generation of Web applications are likely to go. Basically Web Services solve 2 issues that should have been solved a decade or more ago, by CORBA, but that was scuttled by a bunch of ignornant & greedy business managers under the cover of developers. Same thing killed Unix. And darn near killed the 'Net if it wasn't for open-source. .NET potential big win is that it can create nify UI that run on Windows that can talk to any remote system. For most people on the net this may never matter - but for in-house development this may make for a real boon in productivity because HTML just really doesn't cut it for repetive data entry. Java will still maintain a strong server presence & may even gain some ground on the client side by a combination of SWT adoption (the toolkit in Eclipse) and improvements in the JVM. Another win in Web services is back-office integration. Instead of shoving CSV data around over FTP, Web services can provide us with the benefits of XML and HTTP. In terms of other competitors -- there are other options -- you can do Web services in Perl/Python/PHP/Ruby. But open source doesn't have a very active marketing arm with a catchy name for this like MS and Sun/IBM do with Web Services. Plus there are open-source versions of Java and .NET Web Services. This really just makes non-techies head's hurt. Ultimately though who wins is really based on risk assessment. If you view it's riskier to move onto a single vendor (ie. an end-to-end MS solution) than you will likely go a mixed route. Mark |
||||
![]() |
Frank 05/07/03 08:10:00 AM EDT | |||
It's like Boeing and Airbus - at any one time one of them is in the lead but with so much money on the line they are always trying to beat each other. Java and .Net is the same deal as long as Sun/IBM and M$ keep competing the platforms will always be close in terms of functionality and ease of use, cost etc. The true winner is the developer/business. If anything is likely a third or fourth platform competitor will arise. Probably from the Open Source world? My advice - everyone should hedge their bets for maximum employability - first become an SQL/XML expert then learn Java and C# (should be a relatively easy transition from either language). -Frank |
||||
![]() |
Colin 05/07/03 03:47:00 AM EDT | |||
Lets make a decision...well I could right my business software in a platform neutral architecture that will run on an Apple mac or windows machine upto an IBM ZSeries Mainframe or I could write it in .Net and have it only run on Windows... This decision is too hard for me to make!! Please! everyone...wake up! |
||||
![]() |
P. Jones 05/06/03 10:21:00 PM EDT | |||
You seem to be making the author's point. You say that 99% of applications don't use web services and, according to MS's own website's on .Net, .Net is built around webservices. As for the other 1%, the author makes the arguement for Java's support of web services. Therefore, no competition. Is there even a real Java vs .Net debate? And when I speak of "Java", I am refering to the whole collection, not just the language. |
||||
![]() |
W. Anderson 05/06/03 07:56:00 PM EDT | |||
With the great benefit in this case of not being a technologist, I feel there is a more important issue of Java vs .NET, particularly regarding the business cost and flexibility of technology choice between the two offerings Java is now implemented by many large and small solutions providers, while .NET is wholelly under the control of Microsoft. For a sensible and prudent business owner, nothing else needs to be said. |
||||
![]() |
Carlos E. Perez 05/06/03 04:33:00 PM EDT | |||
I can't believe that this was even published. First of all the author talks about the .NET vs Java debate. Then he talks about webservices and that webservices make the debate a moot point. Possibly for webservices, however 99% of all implementations don't use webservices! The title should be "Do Java and .NET compete in Webservices?" |
||||
- Kindle 2 vs Nook
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Performance Tuning Essentials for Java
- Confessions of a Ulitzer Addict
- It's the Java vs. C++ Shootout Revisited!
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Ulitzer Aid Campaign for the Typhoon Ondoy Victims
- Cloud Computing Can Revitalize Your Career as Software Developer
- A Brief History of Cloud Computing
- Oracle & Cloud Computing: Exclusive Q&A with SVP Richard Sarwal
- Kindle 2 vs Nook
- Cloud CEOs, CTOs & SVPs to Speak at 4th International Cloud Computing Expo
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- The Difference Between Web Hosting and Cloud Computing
- Cloud Computing Expo: Exclusive Q&A with Yahoo! SVP Cloud Computing
- Performance Tuning Essentials for Java
- Ajax in RichFaces 3.3, JSF 2 and RichFaces 4
- Confessions of a Ulitzer Addict
- It's the Java vs. C++ Shootout Revisited!
- The End of IT 1.0 As We Know It Has Begun
- My Thoughts on Ulitzer
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate
- What's New in Eclipse?
- Why Do 'Cool Kids' Choose Ruby or PHP to Build Websites Instead of Java?
- i-Technology Predictions for 2007: Where's It All Headed?
































