Okay, okay. You know what it’s like with writing headlines: Short and catchy. Accuracy counts as a distant third.
This is my attempt at catchy headline writing. But the truth isn’t far off. It really should have said: Microsoft applies for patent for core BlueJ functionality.
And that’s really true. After blatantly copying BlueJ (without reference or attribution), Microsoft have now filed for patent for the functionality they knowingly copied from us.
Why? To sue us out of the market? To make us pay? Who knows. Sad fact is that this could destroy BlueJ.
BlueJ is an educational IDE for teaching object-oriented programming and Java to beginners. It is being developed at the University of Kent and Deakin University with support from Sun Microsystems. BlueJ is an academic project, started in 1998, and the software is, and always has been, free.
BlueJ competes with Microsoft’s Visual Studio in the education market. Not ‘compete’ in a commercial sense from our point of view, since we do not run a business, and do not make money from the distribution of BlueJ, but ‘compete’ in a business sense for Microsoft, since BlueJ adoption can theoretically mean lost sales for Redmond.
What’s worse (from the point of view of the Seattle giant): BlueJ is cross platform, and uses Sun’s Java Programming Language. This means that tomorrows developers might grow up working in an ecosystem where they are not locked into the Windows platform, and consequently have the choice to consider alternatives.
Java as a teaching language at schools and universities has been immensly successful, and BlueJ plays a part in this, with many hundreds of institutions adopting it as their teaching platform. Microsoft have struggled to counter this (with C# having entered the market considerably later than Java, and offering no compelling features that enticed departments to switch to it from Java). Their strongest push comes in form of the “MSDN Academic Alliance“, an initiative to get their Visual Studio environment adopted in schools by offering it free (or very cheaply) and offering free training to teachers.
Visual Studio then locks students into developing for the Windows platform, mostly in Visual Basic or C# (though other languages are possible).
So far, this is all the usual competing-for-marketshare game, and there is nothing really exciting about this. For us, the interesting story started in May 2005, when we came across the BlueJ feature copies in Visual Studio.
In May 2005, somebody pointed me towards a blog of Dan Fernandez, at the time “Visual C# Product Manager” at Microsoft (now “Lead Product Manager – Visual Studio Express”).
In his blog post, Mr Fernandez talked about a new Visual Studio feature, the Object Test Bench. This smelled as much like a straight BlueJ copy to us as old cheese smells like – well, old cheese. At the time, I wrote a short article on the BlueJ web site about this. (I won’t repeat the points of the article here – if you want to see whether you agree with us, read the article.)
In short: I didn’t really mind that Microsoft (or anyone else for that matter) copied our ideas, but I was a bit peeved that they claimed it as a new innovation of theirs and proudly presented this “newly developed” feature without attribution.
At the time, I wrote:
“Do I care? I don’t care that they copied BlueJ – good on them, and good luck to them. But I care about attribution.
I work at a university, and I strongly believe in honest attribution of sources. Microsoft does not have a good track record on this. So I decided to post these screenshots here so that people can at least see and make up there own minds.”
My purpose at the time was just to get this statement out into the public domain, and that was that.
Fear of Microsoft
In the days following that article, several people commented on the case (documented at the bottom of the original article). Many remarked about a possible patent attempt by Microsoft:
“If they have or haven’t is no longer an issue. What should concern you is what if Microsoft patents this “innovation”, where would that leave you and the wonderful BlueJ project? Food for thought.” (DH Allingham)
“I echo the fears expressed by others that, lacking patent or copyright protection, you may find yourself overwhelmed by lawsuits from Microsoft, who seem completely willing to patent other people’s inventions and steal them away.” (T N Fields)
At the time, my response was (naïvely?) dismissive:
“Just a short comment on the patent issue: I don’t think we need to be worried about Microsoft possibly taking out a patent on this interaction style. Patent law defines a concept called “prior art”, which invalidates any patent application. Prior art means that if an idea or technique was published before the patent application, then a patent cannot be granted. This is clearly the case here.” (M. Kölling)
Now I may have reason to review my stated opinion.
Microsoft’s Patent Claim
Today, someone (thanks!) pointed me to a patent application by Microsoft for an “Object test bench”. The patent application, filed with the US Patent and Trademark Office, is here.
The patent claims the invention of “a facility” (the object test bench) that “receives an instantiated object, displays the instantiated object visually, receives a command from a developer relating to the instantiated object, and provides a result corresponding to the received command. As an example, the facility invokes a method provided by the instantiated object or retrieves a value of a property of the instantiated object.”
Now, you may or may not be familiar with BlueJ. In case you aren’t let me say this: this is an exact description of the core BlueJ functionality (interactive object instantiation and invocation) that we have implemented, distributed, and described in published work since the mid-90s. (In case you are familiar with BlueJ, read on a bit in the patent. The description gets more and more detailed, and the more you read, the more it resembles BlueJ in every small detail. It’s almost creepy.)
We have developed this functionality originally in 1994 for the original Blue system (the predecessor of BlueJ). Blue (and this functionality) was described in my PhD dissertation and various published papers. We have never explicitly claimed invention of this technique, although it was new to us at the time. But I have never undertaken an exhaustive search for prior art, so it is entirely possible that there are earlier implementations. Key concepts are influenced by a variety of other systems anyway, such as Smalltalk and Self.
So my earlier belief that I “don’t think we need to [be] be worried about Microsoft possibly taking out a patent” was clearly misguided.
When I published my original article about the copying, I wrote: “Is it unethical? – I don’t know. It’s business, and business sometimes is.” I wasn’t too worried.
Dan Fernandez (of Microsoft, see above), whose blog started all this off, wrote a response to my article in his blog (14 June 2005). I was quite impressed: He was replying quite openly, seemed honestly trying to be fair, and even went to the effort to investigate the situation within Microsoft. He quotes an (unnamed) internal Microsoft team member, including these statements:
“Object Test Bench, which evolved as a visualization of this functionality, was influenced by feedback from teachers who were used to working with BlueJ. “
“[feature tweaking] …borrows from several teaching concepts these teachers already enjoy with BlueJ.”
(You can read the full quote on Fernandez’ blog.)
He goes on to state:
“*My* interpretation of the above statement is basically that our academic customers wanted this because of the success of this BlueJ feature.” (D Fernandez)
It was already pretty clear that the actual implementors had taken BlueJ as a design template (since the interaction was copied so precisely step-by-step that those who would argue coincidence would also believe that Dali’s painting “The Persistence of Memory” was created by a coincidental splattering of paint on an empty canvas).
With Fernandez’ statement it was clear that Microsoft management (at least from then on) were also aware of this.
Now let’s look at the patent application. It is shown as “Filed: October 20, 2005”. That’s several months after Fernandez’ blog entry.
Let’s get that clear: four months after management were clearly aware of our prior work (and with developers being aware from the start), Microsoft knowingly filed a patent application claiming original invention of this mechanism.
To my nose, it doesn’t get much smellier than that. That stinks.
In the discussion in 2005, there was some quibbling about “invention” versus “innovation”, and whether Microsoft had really claimed that they invented (or innovated?) this feature. (Fernandez stated that MS had made no such claim.)
Now, with the patent filing, the situation is clear. Filing for patent is claiming original invention. Microsoft managers know it’s not true. They are lying. It stinks.
What Does It Mean?
So why are they doing this, and what does it mean for us?
What it means if this application goes through is quite clear: The big Goliath in Redmond can stop us from distributing BlueJ, or demand license payments, and sue us for infringement damages. (A sentence at the end of the patent application reads almost like an ad for applying for a license: They state explicitly that “the facility can integrate into any IDE other than VS”. Now there’s a great new idea. And they immediately make clear that their patent covers all those cases as well.)
We clearly have a claim to “prior art”, but once MS has the patent, it is down to us to challenge it before a court and demonstrate our case.
Carrying through a court case in a foreign country against a company with pockets as deep as Microsoft’s (and enough lawyers to win a tug-of-war against a small country) is not everyone’s idea of a good afternoon. Certainly not where I work – a university.
Why have they done this, when they clearly know that their case is without merit?
Well, I can only guess. Possibly reason might be:
- They hope that people just don’t notice. They file unjust applications on the (quite realistic) chance that in many cases valid objections won’t be filed, because people are not aware of their claim.
- They hope that people who have opposing claims do not have the expertise, time, money, or means to object.
- A Microsoft employee submitted this to his/her (unknowing) supervisor, because of the immense pressure on employees in large software companies to file patents. They might have hoped that the supervisor does not notice, they fulfill their patent quota, and keep their job.
In reality, I don’t know. Your guess is as good as mine.
But the fact of the matter is that the application has been filed, Microsoft are trying to get control of this interaction style, and they do so while being blatantly aware that they have copied the functionality from elsewhere.
As a result, a product like BlueJ, developed for the education community, that has helped thousands of students to learn programming, may be muscled out of existence by corporate greed.
I’m not too happy.