I'm sure, if you're at all interested in open source, that you'll be aware of Novell's and Microsoft's recent announcement
. I will not attempt to summarize their agreement here, but I am a little concerned about one aspect of it in particular.
There has been some speculation that the agreement signals an acknowledgment by Novell that they are in violation of one or more Microsoft patents. Rather than put up their dukes and defend their position, they have capitulated. Their decision, I guess, but one that is bound to alienate many of their SuSE Linux customers.
The prominent featuring of the Mono project in all of this leads me to suspect that any non-Novell customers who make use of Mono may be inviting a patent lawsuit from Microsoft. (As I have an old copy of SuSE Linux - that dates from before their takeover by Novell - do I qualify as a Novell customer? Am I immune from the Microsoft legal team?)
I have long been curious about Microsoft's standardization of C# and the .NET run-time - particularly since the Mono project appeared to offer an opportunity for Windows .NET-implemented applications to run on Linux without modification (not even a rebuild!). That seemed very out of character for Microsoft. They seem to prefer securing their interfaces with non-disclosure agreements and have always regarded standardization efforts as not applying to them. So how could this notoriously monopolistic company benefit from pushing an open standard? It now appears that they try to get people like Novell to develop their own standards-compliant flavor of C#/.NET - and then threaten to sue them for violating the software patents necessary to implement it!
There are many aspects to C# and .NET that I find appealing, but I also dislike many of their shortcomings too. In particular, I keep fighting C#'s lack of multiple inheritance (I don't care what you might claim - there's is no convenient way of mimicking multiple inheritance in C#!). I've also found Mono's C# compiler to be a little flaky.
As I haven't proceeded too far down the coding road with Facsimile as yet, I think it might be a good time to reconsider whether Facsimile remains a C# and .NET/Mono project. I've always found Java a hideously ugly programming language and C++ is showing its age (no standard implementation for garbage collection, no portable GUI framework, a now mis-placed desire to remain compatible with C, etc.). If you have any views on this, I'd be glad to entertain them!