Red Hat Acquires MetaMatrix
(Via InfoQ.)
Red Hat: Red Hat has signed a definitive agreement to acquire the business of MetaMatrix, including rights to all MetaMatrix products as well as the talented team of people developing, testing, supporting, and selling MetaMatrix solutions. The transaction is subject to the satisfaction of certain conditions to closing set forth in the acquisition agreement. Through this acquisition, Red Hat will supplement its service-oriented architecture (SOA) offerings by adding powerful enterprise data management capabilities to its open source architecture.
MetaMatrix's St. Louis engineers have been active participants of the St. Louis Java Users Group in the past. I got a taste of their product in this presentation 1201 days ago.
Good luck with the joining of the Red Hat family, amd the integration into the JBoss SOA ecosystem.
Brian Coyner: Throwing Null
Brian Coyner: Did you know that you can throw null?
Go read Brian's post now.
Done? Good.
When I ran Brian's example on a three-year-old WinXP Pro SP2 Pentium 4 3.2GHz, 2.5 GB RAM, Java 6, I get the following results:
[weiqi@gao]$ java NullExceptionTest # throwNull Average Time (nano): 18022 Average Time (nano): 17965 Average Time (nano): 19184 Average Time (nano): 17377 Average Time (nano): 16760 Average Time (nano): 16423 [weiqi@gao]$ java NullExceptionTest # throwNullPointerException Average Time (nano): 3884 Average Time (nano): 3327 Average Time (nano): 2980 Average Time (nano): 2669 Average Time (nano): 3024 Average Time (nano): 2724
Throwing null is still more expensive than throwing a new NullPointerException, however the ratio is 5.68 rather than the 45 on Brian's machine.
Now I'm curious how the numbers will respond to arch/os/runtime variations.
[Update] Brian has an update on the numbers with the -server switch turned on:
Brian Coyner: WOW! I was not expecting the tables to be turned.
Mono's Response To XPF/XAML, Flash and XPF/E
Miguel de Icaza: Today we are announcing the response to Microsoft's WPF/XAML, a response to Flash and WPF/E. A cross-platform GUI toolkit (supports Windows, MacOS and Linux and is easily ported to new platforms) written entirely in managed code and 100% open source.
Java: The Third Fork From Sun
History is repeating itself right in front of our eyes. Of course I'm talking about the open letter that Gier Magnusson Jr. of Apache Software Foundation sent to Jonathan Schwartz of Sun two days ago regarding the condition under which Sun will license to Apache the Java SE 5 Technology Compatibility Kit (TCK).
Geir Magnusson Jr.: Our objections to the offered license are clear and valid. The situation we are facing is grossly in conflict with the basic IP philosophy of the JCP, the concept of Java as an open standards-based ecosystem, Sun's public promises to the free and open source communities, and Sun's contractual obligations as a specification lead under the JSPA. The JCP was clearly designed to prevent any single actor from being able to exhibit this sort of market control. Additionally, it is contrary to both the spirit and letter of open source, the respect of which is a key element in Sun's stated business strategy.
To which Sun replied:
Sun: Huh?
The immediate reactions on the web are overwhelmingly pro-Apache: [1] [2] [3] [4] [5]. The lone Sun defender were quickly outed as a Sun Technical Director.
The best analysis of the situation I've found is from Steve Loughran:
Steve Loughran: But Apache cannot release Harmony as a "Java" implementation until they pass the TCK. Without that, no grant of the class bytecode validation patents or anything else you need, no use of the word "Java" in the title.
But before you make up your mind and decide this is an Apache vs. Sun issue, or even Open Source vs. Sun issue, think again. Here's a list of events that will jolt your memory:
- 2005/05/07: Who Are These People
- 2005/08/08: Contributions Start To Flow Into Project Harmony
- 2005/11/08: IBM Contributes To Open Source Java Project
- 2005/11/18: Intel Contributes To Apache Harmony
- 2006/11/14: Sun Frees Its JDK
So clearly Apache Harmony is not your stereotypical open source project that's done by a few kids in their spare times. It is a play by IBM, Intel, and other Java vendors to wrestle control of Java from Sun, and Apache Harmony is a bucket that they can pour their code it. In this fight the "free software is not the same as open source" people are aligned with the non-Sun vendors early on. But they backed out as soon as they found out that Apache is not interested in their code base, citing license incompatibilities.
The battle is half won when Sun released (or threatened to release, they haven't done it completely yet) their JDK under the GPL. Allegedly the reason Sun chose the GPL is so that "nobody can say we are not really open source" by doubting the licensing terms.
One bit of information revealed in the Apache open letter is the date when they started the negotiation with Sun regarding the TCK—August 2006. That's two months after the famous "Will you open source Java?" question asked on the JavaOne stage but three months before the official announcement of the open sourcing of the Sun JDK. I'm not sure the events are related but it's not hard to imagine earlier events prompted later ones.
The next move is Sun's. Given that they haven't relented in seven months of behind the scenes negotiations with Apache, and given that an Apache licensed JDK will eat into the proprietary licensing portion of Sun's dual license strategy, I just don't see this dispute being resolved in a timely fashion. That will prevent Apache from releasing Harmony under an certified "Java" name for sometime. But it won't prevent Apache from releasing Harmony under a different name.
The end result: a alternative JDK with license terms that are much more friendlier to commercial software vendors than Sun's JDK. And this will be the third "fork" of Java from Sun. Well, not technically a fork of the code base, but a fork of the "Sun JDK is the One True JDK" concept. [The first two "forks" are .NET (because Sun didn't want Microsoft to add Delegates to Java) and Eclipse (because Sun won't/couldn't evolve Swing fast enough).]
Why Hasn't XUL Taken Off?
There is an interesting write up over there on InfoQ about Mozilla's XUL:
Jonathan Allen: Last week we ran a short piece on the future of rich client frameworks. At the time we over-looked XUL as a proprietary language for Mozilla add-ons. It seems that was a mistake.
XML User Interface Language (XUL) shares many of the features with the other frameworks we covered last week, including an XML based presentation and JavaScript on the back end. But it also has a few key features that set it apart.
With the focus on tools like Adobe Flex 2 and Adobe Apollo, the elite thinkers are exploring ways to go beyond mere Web applications and bring the rest of the developer world into the Rich Internet Applications era.
I think it is very telling that when InfoQ did a round up of Rich Client Frameworks they forgot about XUL. There is virtually no marketing or promotions behind XUL. It's true people who work on the XUL Explorer are talking about it in a few articles here and there, and from time to time the O'Reilly Network would feature an article that mentions XUL. However the impression I'm getting from the rest of the internet is that nobody cared about XUL. And that's just sad.
For XUL is a truly capably GUI toolkit. If you have any doubts about its capabilities, just think about this—the Firefox browser and Thinderbird email client are themselves XUL applications.
But those are GUI client applications, not web applications, you will point out. True. But with the proper permission and packaging, a XUL application can be delivered over the web. As the Amazon thingy demonstrates.
But that demo only runs inside Mozilla and Firefox but not IE, you will point out again. True again. And this time I have no excuses for XUL. XUL is a cross-platform GUI toolkit and application development framework that is capable of being delivered over the web. But it runs only from within two browsers (Mozilla and Firefox).
The XULRunner environment makes XUL runnable as standalone applications. But it does not make it run inside IE. That's where it falls down. If you want a "web" application, XUL is out.
So if XUL is competing as a cross-platform GUI toolkit, that's capable of being delivered over the web, then it ought be compared with other such things, such as Java. And I would develop a Java GUI over a XUL GUI any day. Because XUL development is simply too different.
That practically left XUL nowhere to go.
P.S. A search for XUL on this blog reveals that I first mentioned XUL in this post 1306 days ago as thing to look into. And my finding back then was I liked the idea of writing a web app that has tree controls and table controls. But do Mozilla XUL apps count as web apps?
Just When I Thought I Was Safe, ...
... I was blog tagged by Dean Wette and Brian Gilstrap. So here's my five things that you probably don't know:
- I was born and raised in a big city of 4,000,000 people (current population 10,000,000). Wikipedia has this to say about my home town:
People from Tianjin are stereotyped to be eloquent, humorous, open, and unfettered. There is a term for the stereotype of the always-eloquent and sometimes-humorous Tianjin native: wèizuǐzi (S: 卫嘴子 / T: 衛嘴子), which translates roughly as "the Tianjin mouth".
I had my one year of fame when I was 17. I won the first prize in the Chinese National High School Mathematics Competition (which later turned into the Chinese Mathematics Olympiad.) I was written up in the People's Daily (a very big deal). My name was a household name in Tianjin.
Years later, when I saw another Chinese couple moving in to the St. Louis apartment complex I lived in, and greeted them, the conversation went like this: "Hi, Are you from China?" "Yes. We just moved to St. Louis. My name is so-and-so." When I told them my name, the husband went "Aren't you the winner of the math competition?"
People who know me first through my blog, or my USENET postings before the internet, are surprised when they meet me in person. I'm not at all like my online persona.
My first computer had 8MB of memory and runs at 33MHz. I paid extra for a model that had a math coprocessor.
Unlike most of the people in my generation, who like pop music and movies and modern plays, and like people in an earlier generation, I am a fan of Peking Opera. Here's a six-minute excerpt from my favorite play. Enjoy (or endure):
GPLv3 vs. Apache License 2.0: Irreconcilable Differences?
Allison Randal: In the early days of the GPLv3 revision process, compatibility with the Apache License 2.0 was given as one of many motivations for the update. At the 5th GPLv3 conference, Richard Stallman was recorded saying:
GPL version 3 is designed to be compatible with two important licenses: the Apache license and the Eclipse license. It will be possible to merge code under those licenses into GPL3 covered software once the GPL version 3 is really out.I was suprised and disappointed to find that goal abandoned in the rationale document for the third draft (page 33):
We regret that we will not achieve compatibility of the Apache License, Version 2.0, with GPLv3, despite what we had previously promised.
I've watched many failed attempts at merging GPL and Apache licensed code. They all ended up giving up their negotiations, giving rise to the phrase "clean room reimplementation of GPL-ed code."
With GPLv3 still incompatible with Apache License 2.0, I guess we'll see more of these kinds of debates in the next few years.
Java News Brief (JNB): JRuby
This month's Java News Brief (JNB) features Mark Volkmann introducing JRuby the up-and-coming dynamic language for the JVM.
Mark Volkmann: Ahh Ruby... If you didn't already have at least a small interest in Ruby you probably wouldn't be reading this article. What's so interesting about Ruby? Well the people in the know tell us that Ruby is special because ...
- it's object-oriented
- it's dynamically typed, supporting "duck typing"
- it has a compact, yet easy to read syntax
- it features blocks that are closures
- classes and objects are open, which means that methods can be added
- it's the language of the Rails web app. framework
Past Mark Volkmann JNB articles include
- Simplified Wrapper and Interface Generator (SWIG)
- Groovy - Scripting for Java (during the original Groovy boom)
- REST Architectural Style
JDK 1.6.0_01 Is Here. Are You Still Stuck In Java 4?
Sun just released jdk1.6.0_01. See the Release Notes.
I will update my personal development boxes to it. But for my current project, I'll continue using Java 4.
Are you on one of those projects where you are using Java 4 and see no sign that it will be upgraded soon? (By soon, I mean within the next 18 months.)
For a while earlier in the year, I heard something like "Java 5 will be allowed." And then reality hit with "Yeah, you can use the Java 5 JVM but you should not use any of the Java 5 language features."
Oh, well.