So let's recycle a usenet post of mine:

> I have been programming professionally on Windows for more than 10 years.
> Widespread use of the Win32 API, or any other proprietary API is generally
> not required. They can be abstracted away. The exception has been GUI
> systems, but now we have portable, rich alternatives like Qt or wxWidgets.

Dan Appleman (and his readers) might beg to differ. ;^)

> Using Wine or Mono is not being portable. It is emulating Windows under
> Linux. It will never be acceptable for anything but relatively small and
> trivial applications, and mostly it will not work at all. And for the small
> and trivial applications that do work, there are typically better native
> alternatives anyway.

That sounds like it's selling Mono a bit short, and is in one case inaccurate. Mono emulates nothing. It's an implementation of the C# standard [sic].

Though projects like Mono -- Kaffe comes to mind -- that try to implement a standard separate from the group that created it often don't do as well as the "official" version, Mono is doing right well. Check out this list of companies that are using it.

http://www.mono-project.com/Companies_Using_Mono

It's a long list, and Includes Novell and MindTouch, which I recognize. #develop, a pretty good .NET IDE, runs in Mono as well, iirc. (Quick plug: #develop [on .NET, at least] is a neat way to start playing with .NET if you don't feel like shelling out cash to MS [or anyone else, for all that matters[.)

Would I suggest Mono as a target platform for what I consider "stereotypical" [1] shareware? Probably not. As another poster remarked, selling to businesses/corps makes the installation issue (.NET, Mono, or Java runtimes, eg) much less of an issue, making Novell's use of Mono make more sense than, say, mine. If you really want to go xplat, Java still seems the winner to me, all other things equal.

([1] By stereotypical, I mean that I don't typically think of shareware targeting a corp, but that could very well be a failing on my end. As a for-instance, I've worked in more than one corp that never bothered to license WinZip, and when I've done remote installs/tech support, not once has the client's machine had WinZip registered when it was in use. If you want to target a corp, charge *at least* $1500 and have a sales department, even if it's you calling potential customers between days of hacking.)

> What I am saying is that the days of the MS monopoly are largely numbered.
> We can choose to face it now or face it when it is too late to get ahead of
> the competition.

I'd tend to agree the hold is lessening; you're quite on the money there. Still, what's the clear alternative? VB.NET is still a very nice route for VB6 folk, eg, and when Vista finally does get even 50% of the market, I'm switching. C# is a very natural ecosystem for Java programmers who want to know the "runtime" is on their customers' [Vista] machines, and it's easy to wear both of those hats as needed. etc etc