Testing Mono's compatibility

Joseph Sinclair plug-discussion at stcaz.net
Thu Sep 14 10:18:06 MST 2006


Jeff Garland wrote:
> Joseph Sinclair wrote:
>> der.hans wrote:
>>> Am 13. Sep, 2006 schw�tzte Josh Coffman so:
>>>
>> <<snip>>
>>>
>> Just to clarify, all of the Java platform standards(J2SE, J2EE, J2ME,
>> and all their components) are based on JSR's (Java Specification
>> Request).  All of which are vetted by the Java Community Process (JCP)
>> which is an independent(although Sun provides program management and
>> some legal support) organization that controls and manages the Java
>> platform specifications (www.jcp.org). JCP Executive Committee members
>> include, among others, HP, Google, Oracle, Apache, Intel, Sony,
>> Samsung, and IBM, some of whom have pledged to ensure that the JSR's
>> remain available for all compatible implementations.  With that much
>> corporate muscle behind the JCP, it's highly unlikely that Sun could
>> ever successfully pack up Java and carry it away, even if they wanted to.
>> All "standard" elements of the Java platform are controlled by the
>> JCP.  The only thing Sun still owns in total is the Java trademark
>> (which they have pledged to use only to maintain the "write once run
>> anywhere(r)" promise, much as Linus pledges to use the Linux trademark
>> only to promote GNU/Linux).
>>
>> With Sun promising to open-source their JVM, GNU classpath rapidly
>> approaching a complete implementation at least through version 1.4
>> under LGPL with a special exemption, and Harmony and other independent
>> Free/Open JVM implementations now on par with the Sun implementation,
>> worries about Java being "non-free" should be largely assuaged.
>>
>> BTW, Sun never could "yank the rug out from under" a free software
>> group implementing a JVM, the original Java specification was released
>> with a license that was very similar to the Adobe PDF license (i.e.
>> you can create anything you want, but if you want to call it Java, it
>> has to implement the spec correctly).  The big sticking point, until
>> 2002, was that the compatibility test(TCK) required to call something
>> "Java" was(still is) incredibly expensive.  In 2002 the JCP changed
>> their member agreements and policies to ensure that only commercial
>> implementors had to pay full price for the TCK, and adding language to
>> ensure that ALL JSR's were licensed in a manner that would be amenable
>> to Free/Open software implementations.
>>
>> I won't say that it's completely impossible for Sun to make a mess of
>> the Java Platform at this point (they could probably force a rename
>> and fork if they wanted to), but they've proven themselves a good
>> member of the Free/Open community over the past 8 years (OpenSolaris,
>> OpenOffice, Tomcat, OpenDocument, now Open Source Java), and have
>> earned, IMO, a bit of trust.
> 
> 
> Well I'm going to have to disagree with these conclusions.  Sun's in the
> driver seat with Java and will use it however it best suits their
> commercial interests. At one point they said they would submit to an
> international standards body, but they went back on that pledge when
> they realized they would lose control. JCP was the compromise which, in
> reality, gives them the final say. Yes, there's lots of other industry
> in there with them so it makes it less likely from a practical point of
> view that they can do anything they want, but no telling what a
> desperate company (and Sun qualifies here) might do -- maybe sell the
> rights to someone else.  Say someone that wants to enforce some patent
> that Sun has related to Java.  Someone that has other ideas....like
> maybe MS -- just to pick one (my real guess is that it will be IBM --
> and yes, I think it will happen).
> 
> As for MS stuff not being 'standard', well that isn't true either.  C#
> has been turned over to ECMA for standardization:
> 
> http://www.ecma-international.org/publications/standards/Ecma-334.htm
> 
> Now, one can debate about why MS did this and whether ECMA is a good
> enough standards body.  And it's debatable whether anyone pays attention
> (take JavaScript which is an ECMA standard, but hardly any vendor really
> implements the standard).  But then again it took MS years to come close
> to the C++ standard as well.
> 
> Here's the bottom line for me.  There are 2 open, ISO standard languages
> - C and C++ (ok, I lie -- I think Fortran and Cobol are as well :). 
> Stick with those and you know for certain that you have access to
> several vendor implementations (plus FOSS implementations) on almost all
> platforms that are unencumbered by the business concerns of a single
> company.  The downside is that you can't find a single vendor that
> supports them the way these other platforms are supported -- and they
> aren't 'sexy' like these newer languages.
> 
> Jeff

I wasn't starting a "religious war" on which technology is "best".  After over 20 years writing software, I am firmly convinced there is no such beast; every platform has it's own strengths and weaknesses.  I only contend that Java has a legitimate place in the toolkit of FLOSS development, and the specifications are, as of this writing, open enough to satisfy the criteria for software freedom.  RMS and GNU seem to agree, given that RMS has stated that he has no problem with Java provided the GNU JVM (or any other GPL'd JVM) is used(at least in testing) to ensure that people can successfully run your Java-based system without using non-free software (with the latest release of GNU classpath the majority of Java software can be made to work on GIJ, BTW).

You may disagree on how "open" Java is, that's certainly open to reasonable debate.  I contend, however that Sun doesn't have ownership of the current Java specifications, and the covenants I've seen for the JCP members(including Sun) do a pretty good job of ensuring, legally, that Sun(or anyone else) cannot do what you envision.  BTW, Sun absolutely does not have the "final" say in the JCP; they gave up their veto power with JCP 2.0 in 2002 and now only have one vote on each EC, just like any other EC member.  Sun's recent public statements and official corporate actions certainly support my view that they won't do anything harmful in the foreseeable future.

ECMA is well known as the "rubberstamp" standards body, C# is encumbered by enough patents that MS can do anything they want with it (including barring it's implementation in free software), that's why MS uses ECMA for all of the "standards" they push (note the "open" XML document "standard" they're currently trying to push through), ECMA allows companies to give their horribly encumbered and completely proprietary designs the imprimatur of a "standard" without any real openness.

As for C and C++, I've used both for a couple decades now, and while they work well for many systems, trying to write modern web-based systems in either language is an exercise in futility.  Using either is appropriate in the relatively few areas where they are best suited to the task (embedded systems, O/S code, core infrastructure systems, etc...), but for a wide array of business software, and especially for web-based systems, various combinations of other platforms(i.e. Java, Ruby, Python, Perl, PHP, XSLT, etc...) provide better results.  As with any technology decision the choice of which languages and/or platforms to use should be driven by the needs of the specific project, not personal preference.

==Joseph++


More information about the PLUG-discuss mailing list