Picture of admin

How XML Killed Java (A Contrarian Perspective)

  • Posted By admin on December 10, 2005

In the early 21st century, computer programmers often used statically typed languages, especially Java. While these languages were suitable for small-scale projects, they were not as well suited for enterprise class systems, where flexibility and adaptability were (and are) primary concerns.

Early attempts to help these languages communicate in distributed systems (CORBA, DCOM, etc.) were not wildly successful. Partially as a result, XML was developed as a connective tissue between systems. Where earlier approaches had failed, XML succeeded beyond expectations. XML became the standard communication language between systems. Surprisingly, XML also became a configuration language within individual systems. (It turned out that even very small applications needed more flexibility than Java alone provided. While programmers still said ‘Java’ what they really did was ‘Java+XML’).

But while XML was a great boon to Java in the short run, it was fatal in the long run. XML decoupled systems enough that enterprises could experiment with a variety of different approaches in different subsystems. Released from the monopoly effects of tightly coupled systems, niche programming languages had room to grow. And grow they did. Older languages such as Smalltalk and Lisp enjoyed a resurgence, along with their newer cousins Python and Ruby. The transition was slow at first, but its momentum was irresistable—thanks to XML.

Comments
  1. Alan LittleDecember 12, 2005 @ 05:00 AM
    You're right, but here's just a small niggle: python may be newer than LISP, and a bit newer than Smalltalk, but it's older than Java
  2. Curt HibbsDecember 12, 2005 @ 12:36 PM
    Ruby is also older than Java. But that's technically speaking. Its probably better to think about it in terms mindshare. From that perspective, Python and Ruby would be newer. Anyway... I loved this post!
  3. Oliver DohmenDecember 12, 2005 @ 03:03 PM
    I don`t think it was XML that killed Java. It`s killed by bad programmers building slow programms and ugly GUIs. There are so many people programming in java because it wont crash that heavy than c++/c. And by the way XML is a good think to decouple Systems. Every language has its place. Java will not be killed for years. It´s more suitable for many systems than weak-typed languages (ruby, python,...). The only thing that`s anoying are the damned DOM API. But that`s another story.
  4. Mats HenricsonDecember 12, 2005 @ 04:23 PM
    Interesting theory, but can you back it up with anything but reasonable reasoning? I mean, just because it is vaguely possible doesn't mean it is true! Mats
  5. Yakov FainDecember 13, 2005 @ 07:27 AM
    Comparing apples and oranges here... 1. These two languages serve different purposes 2. Neither XML not any other of the newer languages have killed (or even hurt Java), unless you are talking about simple two-tree-pages applications 3. The approach itself is wrong. Languages do not kiil each other, they compliment each other
  6. trollDecember 13, 2005 @ 08:44 AM
    XML is for coniguration, customization or process modeler, but is not for Arquitecture process or "black box" process. XML move the bussines programmer, but Java or NET move Arquitect. I see BPEL, I like but It is today only a old procedural language, I expect for the BPEL object oriented or similar.
  7. ShaiDecember 13, 2005 @ 09:21 AM
    I have to strongly disagree... XML communications are a failure and while SOAP/Web Services were "the thing" 3 years ago very few people still speak of them at least in public. SOA is the current buzzword that no one understands and no one really uses. XML is slow unreadable, hard to debug, configure and document. People use it (hell I still use it, its better than a text file) but mostly to solve small problems or provide a large yet simple services (such as Amazon or Google where the service is usually free, insecure and doesn't require transactions or anything really compelx). The few big web services projects I know of that tried to tie together .Net and Java were huge failures with the "integration" portion. It seems that CORBA went in the right direction by abstracting the protocol but SOAP did the exact oposite and exposed the protocol... Why is that stupid? Because in the days of CORBA if something didn't work you tried really hard to fix your API usage, ORB deployment and eventually contacted support who made sure to fix the product. That is why IIOP in its final incarnations was pretty good when it came to interoperability. OTOH with SOAP every two bit hacker thinks he knows better than the author of the XML ORB (frankly its possible that every two bit hacker knows better) and when something doesn't work rather than look at their own code they blaim the ORB authors and start rewriting that code... This is a recipe for disaster and people are doing it left and right. So SOAP is reducing our communications layer abstraction which is a very bad thing indeed and I don't see Java as being threatend by something as limited and bugy as an XML communication protocol.
  8. ShaiDecember 13, 2005 @ 09:26 AM
    Oh and another thing... Perl/Python & Ruby are no competition to Java. They are scripting languages with out the maturity and API offered by Java, with all due respect Java has a huge compatibility test suit (TCK) that goes in depth into the VM and API and is something you can rely on. People in the open sorce comunity often compare OSS tools to propriatery tools, which is a load of crap... These tools have some great features but basic things like "testing" is not performed since the developers rarely understand how to run all these tests... This is even true for groups such as Apache and JBoss who just don't invest enough in testing. And that whole thousand eyeball myth... come on, who reads the entire source code of an application server? Have you ever read some of the code for OSS such as Jasper Reports? Its just a terrible unusable mess most of the time.
  9. dmdDecember 13, 2005 @ 01:59 PM
    Great post. I agree, there is a certain desillusion that Java might not be the answer to everything (see the comments from Peter Yared all over the web). XML allowed for an easier integration of legacy and/or alternative technologies (that's the foundation of most SOA's after all) and that killed the move to mammoth app server (thanks God). I would add the following factors to the loss of popularity of Java: - UI issues coupled with a revival of the web frontend. If Java had ever produced a GUI toolkit as easy to use as .NET, things might have been different. Why suffer with AWT, Swing, SVT? Build a web page! - Economy downturn resulting in increased pragmatism: companies don't aim for the pie in the sky and the perfect multi-platform app. They just want it cheap and "good enough" - forget about the grand plan to rewrite that COBOL app in Java. Eventually adds a minimalistic SOAP or REST interface and get on with your life.
  10. Zsolt SzaszDecember 14, 2005 @ 03:41 AM
    Shai: I agree that XML, if used for remote method invocation scenarios, most of the times is not appropriate. On the other hand, if you switch your thinking from remote method calling to a document centric approach, you will find that XML brings a lot of value to the table. Look at the success of (X)HTML, which is a document format based on XML. Or RSS, Atom, etc. SOAP has long switched it's focus from the method invocation paradigm to the document model. Although, if you need it, the old way of doing SOAP still lives on in SOAP RPC. XML is not going to go away any time soon. The latest ECMAScript even supports native XML datatypes.
  11. twifkakDecember 17, 2005 @ 09:04 PM
    Heh. Funny, when I read the title, I couldn't help but think of: - Ant - Spring's and Hibernate's config files - xdoclet (before java 1.5 annotations) - OGML - Beanshell - JSP 2.0's EL - log4j.properties All "typeless" languages on which we Java programmers depend on to do our job. (By "typeless," I mean dynamically typed, i.e. lacking static analysis.)
  12. KelvinDecember 19, 2005 @ 12:49 PM
    XML is not a language its a specification that compliments other languages. Left alone its jsut that a specification that has basiclly gone haywire that all the big coprs or fighting to dominate.
  13. anonymousDecember 20, 2005 @ 12:54 AM
    "XML killed java ..." is pretty much a misplaced notion.....They compliment each other and not the reverse.....each of them enjoys a different place in the heirarchy of application building
  14. JeffDecember 29, 2005 @ 04:36 PM
    I would like to hear (read :) a follow up from Stuart addressing Shai's points. How about it stewey?
  15. Justin GehtlandDecember 29, 2005 @ 05:37 PM
    Stu's not in right now, but I'll take a crack at it. First and foremost, in Stu's analysis (and mine), XML isn't replacing Java. It is enabling other players to cannabalize the monopoly on enterprise development that Java has won over the last ten years. Being an open standard for communicating structured, self-describing data, it enables communication between disparate systems in ways that were not feasible 15,10 or even 5 years ago. That means that developers can choose to implement pieces of their infrastructure in something OTHER than Java, but plug it in to the landscape through this open bridge. This means that cracks form in the monopoly, and the foundation weakens. As to the SOAP argument, sure, SOAP 1.0 was a disaster. As others here have pointed out, SOAP has long since moved on from being an ORB to being a document distribution framework. Just because it is backwards-compatible to that outdated way of doing things, doesn't mean you have to do it that way. Besides, who wants to use SOAP anyway? Straight XML over HTTP! Where's my POX/REST people? Rise up! Secondly, XML lays the lie to the "Java is about developing in a statically typed language" since greater than half of all Java "development" is now done in XML. I'm a big Spring guy, and developing in Spring is entirely about developing in XML. The Java has been abstracted away to almost invisibility sometimes. Lastly, I have to strongly disagree with Shai's sweeping sentiments regarding the Open Source community and testing; without the OSS crowd, there wouldn't BE an industry-wide push towards automated unit and functional testing, and if you think for a second that most of these commercial vendors are running Clean Room tests every night, well, you've seen a different sector of the Fortune 500 than I have. Testing is an art, a dedication and a passion, and some teams have it, and others don't, and being open source or closed source doesn't have much, if anything, to do with whether you test your code. OSS has given us: the dominant web application frameworks (Struts, Tapestry, Rails), the dominant testing tools (JUnit, NUnit, mbUnit, TestNG), the dominant ORM layer (Hibernate),, and three languages all older than Java: Ruby, Python and Perl. It may have warts, but there's no need to dismiss the entire community out of hand like that, it seems to me.
  16. wellsbrJanuary 04, 2006 @ 08:54 AM
    From some article on the much missed Byte Magazine in the early nineties, when OO was being invented (yes, call me grandpa): THERE IS NO SILVER BULLET. That was about the newly invented language C++ regarding its old rival Pascal. People in America is obsessed in finding THE silver bullet. Java is pretty good and I will stick to it for some yet, once I'm far too old to think on changing again (just left COBOL and FORTRAN behind me). Funny is that: - PL/1 (yes, there was a language called Programing Language 1!) was to replace Fortran. - C killed ASM. - C++ killed all of it, from Pascal, C, COBOL, FORTRAN to LISP - AI boom, and then PROLOG was the new prototyping THING - Then the visual hype came into, and Visual Basic was THE THING - And then came Delphy, new life to Pascal with objects. - Java was to kill everyone again. - And now XML will kill Java. Give it or take it, it's the history of the late 20th century depicted above. C'mon, there still are MILLIONS of COBOL and Fortran programmers, and even PL/1 programmers can't cry. C has no replacement for low level programming, as much as Fortran for fast math. Please, has ANY programming language that EVER reached a certain momentum EVER disappeared??? Talk about FORTH programming. Or Prolog. Or MUMPS. Give me a break... Wellington
  17. wellsbrJanuary 04, 2006 @ 09:10 AM
    Just to add, YES, XML added a long waited means of putting two computer systems in diverse platforms to talk in an relatively easy and painless way. I am NOT ruling out CORBA by no means, the ORB idea worked. IIOP ended up pretty much good. But XML was easy to implement, one COULD find the tools at hand. And YES, it IS cool to be able to automate things with XML and I've been doing this for quite some time now, and it IS the pretty, now old, Java behind the scenes. This duo is a terrific thing not because you can experiment with tools outside the box, but because IT WORKS. And, well, back in Brazil we use to say that a "WINNING TEAM better not be changed". Now, if someone can't make things work they way they're supposed to, then they try to CHANGE the implementation of the tool instead of looking at their own code first, well, not all the programming schools really worth your money you know... I also agree with Justin Gehtland about the OSS community, but, despite the undisputable quality of some products, and their usefullness, documentation more than often s*cks, and guessing around is not aways funny. Anyway... once there's no silver bullet, we just live on.
  18. Recurrent Titty CancerApril 30, 2006 @ 01:32 AM
    That is strange!
  19. Chaise LoungeApril 30, 2006 @ 02:24 AM
    Very nice write up...
  20. Financial ForecastingMay 01, 2006 @ 01:35 AM
    Good idea :)
  21. Centrifugal MachineryMay 05, 2006 @ 09:38 PM
    Not really new...
  22. What Is Effexor Secondhand ForMay 06, 2006 @ 06:50 AM
    Not really new.
  23. Expanding StomachMay 06, 2006 @ 08:38 PM
    Thanks for taking the time to do it...
  24. Effexor MedicationMay 07, 2006 @ 12:15 AM
    Gonna have to give it a try :)
  25. Codename Kid Next Door FanartMay 07, 2006 @ 02:11 PM
    Thanks. Updated appropriately.
  26. Cancelled EffexorMay 08, 2006 @ 07:43 AM
    The problem is my browser :)
  27. Free Online SlotsMay 08, 2006 @ 02:57 PM
    Very nice write up :)
  28. Emirates Palace Hotel Abu DhabiMay 09, 2006 @ 04:53 PM
    I'm working :(
  29. Fundamentals Of Financial Management BrighamMay 09, 2006 @ 09:17 PM
    The problem is my browser.
  30. Soap CityMay 11, 2006 @ 10:06 AM
    Very clear.
  31. Free Download BlackjackMay 12, 2006 @ 02:05 PM
    I use Firefox in Ubuntu.
  32. Free No Download Slot GamesMay 12, 2006 @ 08:20 PM
    Thats correct :)
  33. Ibm Laptop Estimator ReviewsMay 12, 2006 @ 10:54 PM
    Thanks for taking the time to do it.
  34. Nabisco Earth Mini GolfMay 13, 2006 @ 10:34 AM
    Thanks!