« Version Independent ProgIDs in the .NET ... | Main | SPAM: Do I really deserve this? »

Via Gordon, I see that Tim Bray pointed to Jeff Dillon's points on cross platform .NET.  Jim Blizzard chimed in as well.

I like Gordon's brief and complete summary:

The point? If you care about cross platform .NET, there are details you need to pay attention to, and you really shouldn't do dumb things like use the registry. As for "the cost of not being able to do native system programming in pure Java" we already know that pure .NET is a myth, too. [The 80/20 Solution]

With due respect, I'm not getting a few of Jeff's views:

The Java API writers have always been very careful not to introduce an API which does not make sense on all platforms.  This makes Java extremely portable at the cost of not being able to do native system programming in pure Java. [Jeff Dillon]

Which sounds just like the Least Common Denominator point I've made before.  However, while the Java API writers may try to support the LCD, the Java Application Server vendors explicitly promote vendor lock-in by introducing APIS that are App Server specific.  As Jeff wisely points out, there is a cost.  I say it's too high for most.

Microsoft is very open about their goals - Vendor lock-in is a good thing.  Exploit the platform.  Jeff says:

With .NET, Microsoft went ahead and wrote all kinds of APIs for accessing the registry, accessing COM objects, changing NTFS file permissions, and other very windows specific tasks. In my mind, this immediately eliminates .NET or Mono from ever being a purely system independent platform. [Jeff Dillon]

No, it really just eliminates the possibility of using a COM API on another platform.  This will lead to the rise of ".NET Code - Pure Enough for Mono" , and that suits me just fine.

If Microsoft were to truly virtualize the machine, they would have marginalized their investment in the Windows platform. [Me]

I'm not trying to promote bad feelings.  I worked at Nike getting Java over RMI on Solarious to talk to DB2 on a Mainframe - I love all religions, remember:

Scott's Rule of Programming 0x303b: Don't Player-Hate, Integrate.

I'm just trying to remind folks that, by definition, write once, run anywhere, means writing to Least Common Denominator APIS (or introducing "if (!IsMacIE)" code - You may have seen that before on a Write Once technology called HTML/ECMAScript?)

The only difference is that Mono has seen fit to raise the level of the Least Common Denominator API to a reasonable level.  That, combined with common sense like there's no Registry on Linux means that apps like dasBlog can happily be ported to Mono.



Friday, June 11, 2004 8:15:59 AM (Pacific Standard Time, UTC-08:00)
I enjoyed reading your .NET purity article. Before I was trapped into the thinking model of "pure .NET implementations", which, you have to admit, are easy to get into with the terms unsafe, unmanaged and so on used all around.
Comments are closed.

Contact

Sponsors

Hosting By

Hot Topics

Tags

Calendar

<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Archives

March, 2010 (10)
February, 2010 (17)
January, 2010 (13)
December, 2009 (13)
November, 2009 (7)
October, 2009 (19)
September, 2009 (11)
August, 2009 (12)
July, 2009 (21)
June, 2009 (26)
May, 2009 (16)
April, 2009 (13)
March, 2009 (17)
February, 2009 (17)
January, 2009 (18)
December, 2008 (32)
November, 2008 (17)
October, 2008 (22)
September, 2008 (16)
August, 2008 (14)
July, 2008 (25)
June, 2008 (19)
May, 2008 (17)
April, 2008 (17)
March, 2008 (26)
February, 2008 (21)
January, 2008 (28)
December, 2007 (19)
November, 2007 (17)
October, 2007 (31)
September, 2007 (39)
August, 2007 (37)
July, 2007 (43)
June, 2007 (37)
May, 2007 (32)
April, 2007 (38)
March, 2007 (29)
February, 2007 (46)
January, 2007 (31)
December, 2006 (27)
November, 2006 (31)
October, 2006 (32)
September, 2006 (39)
August, 2006 (34)
July, 2006 (40)
June, 2006 (18)
May, 2006 (31)
April, 2006 (34)
March, 2006 (30)
February, 2006 (38)
January, 2006 (44)
December, 2005 (19)
November, 2005 (34)
October, 2005 (24)
September, 2005 (37)
August, 2005 (20)
July, 2005 (24)
June, 2005 (33)
May, 2005 (16)
April, 2005 (22)
March, 2005 (34)
February, 2005 (15)
January, 2005 (37)
December, 2004 (28)
November, 2004 (30)
October, 2004 (34)
September, 2004 (22)
August, 2004 (34)
July, 2004 (18)
June, 2004 (64)
May, 2004 (49)
April, 2004 (21)
March, 2004 (29)
February, 2004 (29)
January, 2004 (36)
December, 2003 (25)
November, 2003 (24)
October, 2003 (59)
September, 2003 (42)
August, 2003 (24)
July, 2003 (44)
June, 2003 (29)
May, 2003 (21)
April, 2003 (30)
March, 2003 (27)
February, 2003 (47)
January, 2003 (50)
December, 2002 (31)
November, 2002 (38)
October, 2002 (44)
September, 2002 (15)
May, 2002 (2)
April, 2002 (4)

Google Ads