Subject: Re: authentication systems (.NET, .GNU): Its the desktop, dummy.
From: Tom Lord <>
Date: Thu, 13 Sep 2001 15:22:38 -0700 (PDT)

       nb writes:

       I think that the best possible avenue of attack
       against Microsoft's desktop monopoly is the DotGNU project.

Is it fair to evaluate the project against that goal?  I'll do so
below.  Most of my criticisms apply equally well to Mono.  But first...

It seems to me that the reason some FSBs support projects to implement
.NET have nothing positive to do with attacking Microsoft's desktop
monopoly.  Rather, it's a delaying tactic and an effort to help
preserve a process of meaningful peer review in designing significant
new Internet and Internet-related standards.  This is, as I said, a
battle where merely showing up to fight (which may, in some sense be
necessary) nevertheless tips the balance of the larger war in favor of
MS.  Suppose that Mono or .GNU succeed; that .NET accomodates with
some minor changes.  MS is then well positioned to deploy the tweaked
.NET fully and decisively throughout its products.  Open source
projects are not so well positioned -- by a long shot.  MS research
thanks the open source community for the free R&D, and takes the day.

Now, about DotGNU helping to win desktops: lists the following projects
and priorities as part of .GNU:

	* DotGNU Portable.NET			high priority
	* Support for Java bytecode		high prioirty
	* Another bytecode language		low priority
	* DotGNU Secure Execution Environment	high priority
	* DotGNU Distributed Execution Env.	high priority
	* Distributed Filesystem		undecided
	* DotGNU Virtual Identities		not prioritized

Let's look more closely at some of those projects and the reasons
offered for them:

	[quotes from]

	* DotGNU Portable.NET

	For strategic reasons, the DotGNU Platform must be "downward
	compatible" to Microsoft's .NET, in the sense that programs
	("Portable Executables") that have been created for .NET must
	run on the DotGNU platform.


	This is a high-priority project.

What are the "strategic reasons"?  It seems to me that several
FSB-backed open source projects aimed at Java compatability have had
serious trouble keeping up with Sun's standards and with the quality
of implementation of proprietary implementations.  Sun has enough
resources to keep them permanently behind the curve.  Moreover, there
is the constant spectre of Sun creating legal hassles for any open
source Java implementation. 

Consequently, open source Java projects haven't gotten much leverage
from apps that port freely between proprietary Java environments and
open source environments.  When people write good Java code for open
source implementations, I wonder if their strategic contribution isn't
ultimately to raise the value of proprietary Java implementations to
which that code might be ported.

Why will an effort to superset MS' .NET fare any better?

	* Support for Java bytecode

	The invention of the new language C# is a strategic move of
	Microsoft against the successful Java language.

I doubt it.  The research that led to C# pre-dates widespread adoption
of Java.

	DotGNU wants to support Java and the various languages that
	can be compiled to Java bytecode, so we need a JVM
	implementation for the DotGNU Platform.


	This is a high-priority project.

How does supporting Java and the various language implementations on
JVM help to attack Microsoft's desktop monopoly?  How will those
implementations be used to win desktops, in a way that existing open
source JVM implementations can't already be used?  I expect that
the answer is something like "the .GNU JVM will be integrated with
other .GNU components" but to my eye, that's starting to look like
a Rube Goldberg blueprint.

	* DotGNU Secure Execution Environment	high priority
	* DotGNU Distributed Execution Env.	high priority

In the abstract, these would be fine things to have.  Is building 
them right now, before there are very specific applications in mind,
really the "best possible avenue of attack against Microsoft's desktop
monopoly"?  It sure is good marketing for MS.

	* Distributed Filesystem		undecided

Why isn't this orthogonal to everything else?  There are several
mature DFS implementations already, not tied to any particular
application framework.

	* DotGNU Virtual Identities		not prioritized

Why isn't this orthogonal to everything else?  Web wallets have
existed for years using old technology.  MS wants this feature 
for key management in support of proprietary software business 
models -- why do open source projects want it?

Overall, .GNU does not seem to directly be concerned with productivity
apps.  It relies on projects like GNOME.  The best bet for GNOME at
this point is to stop chasing MS feature-wise, and to concentrate on
getting the core productivity apps into a highly polished state --
which suggests that deep .GNU integration should not be a priority.

Supposing that .GNU reaches some state of stable functionality.
How will that win desktops?