Re: C#, .Net, and Mono

[prev] [thread] [next] [lurker] [Date index for 2006/12/29]

From: Peter da Silva
Subject: Re: C#, .Net, and Mono
Date: 15:05 on 29 Dec 2006
On Dec 29, 2006, at 7:21 AM, Yossi Kreinin wrote:
> I didn't know trees run on top of UNIX.

Don't be obtuse. X11 runs on top of UNIX. "all of the above" systems 
that I mentioned are UNIX applications, they're not UNIX, any more than 
Photoshop or Excel is Windows.

> * When .NET is "theoretically" portable, but a useful port does not 
> exist yet, it's .NET's fault.
> * When UNIX can "theoretically" run a good system doing GUI, but most 
> systems run X, it's not UNIX's fault.

This isn't about "fault", this is about "reality".

UNIX is not a GUI based OS. If you just need a non-GUI-based OS, then 
UNIX may be for you. If you want a GUI based OS, then you need to look 
beyond UNIX.

(You might end up with something that runs on top of UNIX, but it's not 
UNIX, it's something that runs on top of UNIX)

.NET is not an open system. If you don't need an open system, then .NET 
may be for you. If you want an open system, then you need to look 
beyond .NET.

> considering the fact that you can avoid implementing a filesystem 
> using the same reasoning ("SHIT-OS doesn't do filesystems - they run 
> on top of SHIT-OS")?

There are many operating systems with no file systems. I use one every 
day.

>> Since different UNIX systems have radically different kernels, that's 
>> a
>> remarkable assertion. Are you thinking of the Minix, Linux, BSD, 
>> TUNIS,
>> System V, Lites, or Hurd kernels?
>
> All these look pretty similar to me, because they implement those 
> protocols you are talking about.

Some of those protocols are in the kernel. Some are in applications. 
Different kernels implement different amounts of the protocols, and 
defer others to applications.

You seem to have some really confused ideas about what a kernel is, 
what it does, and where it fits in an OS. Oh, and "I'm just a user" is 
a hateful attitude.

> For example, if you delete a file, it's gone. So running programs 
> which delete or (more frequently) overwrite should be done pretty 
> carefully.

Um, UNIX software works just fine on systems where deleting a file 
doesn't delete it permanently, like VMS. The difference between .NET 
and UNIX here is that .NET *forces* a set of file system semantics on 
you. To implement .NET and run .NET programs, you have to implement 
Windows file system semantics. UNIX programs do not require nearly as 
many of the same file system semantics, and run fine on systems with 
different semantics.

> For example, there's the aspect of the filesystem semantics which says 
> when files can be deleted, and when they are locked. Windows won't let 
> me delete a file someone is using. Linux will.

But UNIX *software* can't depend on that behavior, because it may be 
running on systems that don't provide that level of UNIX file system 
semantics.

> Software relying on defined behaviour in these cases will misbehave.

That's why portable software doesn't rely on things like this.

That's why .NET is hateful. It makes guarantees to the software that 
are not provided by all the platforms that .NET runs on.

> Can I ask you again - why did Windows 3.11, which had a totally 
> dysfunctional parody on the concept of "kernel", won the desktop 
> market, and Unix, which was 2 decades ahead in it's development, lost 
> that market, despite it's amazingly well thought-out semantics?

Microsoft already *owned* the market. Windows didn't *win* the market, 
it simply failed to *lose* it.

There's stuff above here

Generated at 03:02 on 01 Jan 2007 by mariachi 0.52