Archive for October, 2007

Ms-PL and Ms-RL licenses are OSI approved

Thursday, October 18th, 2007

After much debate, the OSI has given the stamp approval on both the Microsoft Public License (formerly the Microsoft Permissive License) and the Microsoft Reciprocal License (formerly the Microsoft Community License) as both Open Source licenses.

Friday, 12 October 2007

Acting on the advice of the License Approval Chair, the OSI Board today approved the Microsoft Public License (Ms-PL) and the Microsoft Reciprocal License (Ms-RL). The decision to approve was informed by the overwhelming (though not unanimous) consensus from the open source community that these licenses satisfied the 10 criteria of the Open Source definition, and should therefore be approved.

The formal evaluation of these licenses began in August and the discussion of these licenses was vigourous and thorough. The community raised questions that Microsoft (and others) answered; they raised issues that, when germane to the licenses in question, Microsoft addressed. Microsoft came to the OSI and submitted their licenses according to the published policies and procedures that dozens of other parties have followed over the years. Microsoft didn’t ask for special treatment, and didn’t receive any. In spite of recent negative interactions between Microsoft and the open source community, the spirit of the dialog was constructive and we hope that carries forward to a constructive outcome as well.

The Open Source Initiative is best known as the steward of the Open Source Definition and for its license review process. But, an open source license is just the starting point. Open source depends upon code (which can be made better), community (which can be made larger), and ultimately a commitment to the idea that the more free the market is for innovation, the more innovation the market can deliver.

Every approval that OSI issues represents our community’s demand for more open-source code, a larger and more vital open-source community, and all the benefits open source brings to innovation in a free market. The new Ms-PL and Ms-RL are no exceptions.

(source http://opensource.org/node/207)

Including Java in standards

Monday, October 8th, 2007

There a lot of new standards and formats coming out out there that require an implementation of Java to be compliant I’ve noticed lately, and its seems to be growing. I just can’t figure it out. Is there nothing better for what they are trying to achieve?

For example, Blu-ray requires an implementation of Java on all Blu-ray players to run the interactive menus on those systems. The Blu-ray menus are stored in Java byte code and the player’s embedded Java runtime runs this content. I think this is partly might be why Microsoft is so adamant with pushing HD-DVD over Blu-ray (HD-DVD’s menu system is stored in a standardized document format). If Microsoft ever wanted to support Blu-ray in the XBox 360 or in Windows Media Player it would probably require embedding some form of Java (which would happen the next time there is a cold day in hell) or by converting Java code to .NET like IKVM.NET or their Java to J# class converter. It pretty much isn’t going to happen which is a bad thing because I believe Blu-ray is better then HD-DVD in almost everyway (except for requiring Java).

Java is also a requirement on the new OpenCable based Cable Card system (this is CableCard 2.0 basically) as part of the new OpenCable Application Platform (OCAP). It requires anyone that has a OCAP compatible TV or PVR to host an implementation of Java to display the content. This is so your cable provider can send down their own menu system in Java byte code to display on your TiVOs and new CableCard ready TVs (not something I’m looking forward to since right now they show banner ads on 1/4 of the screen with their on screen menu guide on my current cable box) and how to change the channel and send back data in their own protocols to order things like on demand services and PPV since all the cable providers can’t seem to decide on a common two way protocol for these services. What sucks is that cable providers need something that lets them control how you request and change the channel if they want to add any more channels, convert more to HD, or have more on demand content (google for switched cable service) and I hope they don’t require OCAP to do that and the FCC steps in to prevent it.

What annoys me is that our government, specifically the FCC, looks to CableLabs (the company who came up with this OCAP standard) for the standards that they want to enforce the all the cable companies and television manufactures to use. The FCC enforced the first CableCard standard, and if they enforce this one, the FCC will be enforcing Java on everyone. It would be good to mention that Microsoft is working in this same field as well with the partnerships with Comcast for their television delivery platform, and also AT&T and Verizon (FiOS) to work with them on their IP based TV services on their own proprietary system.

Java is also the only development platform on a good number of cell phones out there also (which probably isn’t news to anyone). J2ME’s dominance isn’t that big of a deal I guess since Symbian, Windows Mobile, BREW, Palm, Blackberry, and others provide us with various alternatives which are usually a lot better then using Java. Java probably will continue to rule as the platform of choice on all the cheap-o phones.

Java is now even influencing the design of all the new ARM chips out there. Jazelle extensions are pretty much required to be ARM compliant now which is great for speeding up those slow J2ME apps by running Java byte code (with some slight assistance) at almost an instruction level. It was created out of need since J2ME is horribly slow on most cell phones and usually requires long compile times when first loaded. Jazelle makes me cringe because we can’t get the docs on how these new op codes work to use for anything else except for Java, which could possibly help someone speed up something like .NET, Mono, LLVM, or any other JITed platform when running on ARM.

This all has to make Sun so happy. Heck, they even renamed their stock symbol to “JAVA”. But still why Java?

For Blu-ray and OCAP, the companies designing the content want something that has lots of flexibility (a programming language and platform provide them that but a good standard would probably be better in the long run). The companies building the hardware for the players, cable boxes, and TVs want a format that is secure and can run in a protected environment like a VM that they can be tightly controlled, and is portable between any current or future hardware.

For TV and Video services, Java fits the requirements I guess, but it seems like there are so many other and possibly better alternatives. If you want a platform that you can control, that runs in a VM, just off the top of my head, you’ve got Python, LLVM (for all the GCC languages), Mono/.NET, and bunch of others (not to mention you could roll your own basic scripting like language or custom binary format as part of the standard). It seems to make sense more then trying to provide a development platform, to create set of non propitiatory standards (possibly based on XML to keep it simple) to handle these types of services and handle almost every situation that you need. On top of that, you could possibly provide your own development platform that uses that data but it’s use remain strictly optional for the end user. For the current uses of JavaTV and JMF (Java multimedia framework) in the OCAP and Blu-ray standards, it would probably benefit the consumers so much more in the end if they did that.

Honestly, I believe Java has a lot of inherit issues that pretty much can’t get fixed without breaking most backward compatibility (to many things to cite here), which is why I contribute to and support Mono and .NET. For the record though, I don’t hate Java though, and I spend a good amount of time at work developing in it. It just seems like there are so many better alternatives.

One of the only things good about it all is that at least Java isn’t entirely proprietary anymore (although good many of the common libraries, frameworks, and implementations remain that way).

Not to shaby, Microsoft

Friday, October 5th, 2007

I’ve been trolling and occasionally commenting in the on going discussions on the OSI license approval process since the beginning with the approval of the Microsoft Permissive License and Microsoft Community License still on going. Microsoft submitted for both licenses to become OSI “Open Source™” approved licenses. Microsoft has done a wonderful job listening to the community, and really has gotten involved in the current discussions over the licenses.

The news of Microsoft doing this making news on Slashdot and Groklaw, it was almost certain to be a prime piece of flame bait. However the anti-Microsoft zealots who have been getting the mailing list info from from Slashdot and Groklaw are all being ignored and usually are silenced and suppressed, while the real honest discussion and debate about the license and not the personal feelings some have about the company who submitted it continues on.

One of the debates was over naming of the licenses. There was confusion by some over the titles of the current licenses. The Microsoft representatives and lawyers quickly offered up alternatives to see what we think and later resubmitted under two new names.

The Microsoft Permissive License will become the Microsoft Open License

The Microsoft Community License will become the Microsoft Reciprocal License.

While I don’t personally think the old names were confusing, I still applaud Microsoft for their effort here.

Cheers to everyone at Microsoft that helped make this possible!