# Microsoft and C#

**URL:** <https://boards.straightdope.com/t/microsoft-and-c/266505>\
**Category:** The BBQ Pit\
**Created:** [September 28, 2004, 4:19pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505 "2004-09-28T16:19:23Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [October 1, 2004, 8:27am UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/41 "2004-10-01T08:27:21Z")

</div>

> [@davidm](#):
>
> Well, I guess my ignorance is showing here. I’m not really familiar with subclassing. Can you also use it to fix bugs?

Whoops, I guess I was thinking of the data grid when I wrote that. I don’t know enough about InputPanel to say whether you could fix this particular problem by subclassing.

Subclassing lets you replace any virtual method from the base class. If the problem you’re having is caused by one of InputPanel’s virtual methods, then you may be able to solve it, as long as you can rewrite the method without having to access any of InputPanel’s private members.

> [@](#):
>
> It still seems like it’d be better to be able to fix the original problem than to paste over it.

Patching the source code is the best way to fix bugs, yes. But you can’t blame this on OOP; procedural compilers can ship without the source code for their libraries too. If one of the functions in a C library is broken, and you don’t have the source, you have to rewrite that function _and_ every other library function that refers to it.

---

<div class="post-metadata">

**Author:** ![davidm](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/davidm/32/225_2.png) [@davidm](https://boards.straightdope.com/u/davidm)\
**Post date:** [October 1, 2004, 8:40am UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/42 "2004-10-01T08:40:29Z")

</div>

> [@Cerowyn](#):
>
> …Is it impossible that Microsoft shipped a bug in the control that you managed to find with a basic, simple piece of code? No. Is it likely? Not even remotely…

Are you honestly saying that it’s unusual to find a [bug in a Microsoft control?](http://www.google.com/search?hl=en&lr=&ie=UTF-8&q=%2Bcontrol+%2Bbug+%2Bmicrosoft&btnG=Search) I don’t know if the object is buggy or not. It may be the a bug in the IDE code generator. Or it may be that I did something wrong. I don’t know. But I do know that we’ve had to write around bugs in VBCE and SQL Server CE. So I wouldn’t be at all shocked to discover problems in C# for CE.

---

<div class="post-metadata">

**Author:** ![wolf\_meister](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/wolf_meister/32/15202_2.png) [@wolf\_meister](https://boards.straightdope.com/u/wolf_meister)\
**Post date:** [October 1, 2004, 6:07pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/43 "2004-10-01T18:07:42Z")

</div>

**Cerowyn**  
Thanks for your unsolicited testimonial Mr Gates. 😃

---

<div class="post-metadata">

**Author:** ![Cerowyn](https://avatars.discourse-cdn.com/v4/letter/c/82dd89/32.png) [@Cerowyn](https://boards.straightdope.com/u/Cerowyn)\
**Post date:** [October 1, 2004, 6:23pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/44 "2004-10-01T18:23:58Z")

</div>

> [@davidm](#):
>
> Are you honestly saying that it’s unusual to find a [bug in a Microsoft control?](http://www.google.com/search?hl=en&lr=&ie=UTF-8&q=%2Bcontrol+%2Bbug+%2Bmicrosoft&btnG=Search) I don’t know if the object is buggy or not. It may be the a bug in the IDE code generator. Or it may be that I did something wrong. I don’t know. But I do know that we’ve had to write around bugs in VBCE and SQL Server CE. So I wouldn’t be at all shocked to discover problems in C# for CE.

Try reading what I wrote again.

---

<div class="post-metadata">

**Author:** ![Cerowyn](https://avatars.discourse-cdn.com/v4/letter/c/82dd89/32.png) [@Cerowyn](https://boards.straightdope.com/u/Cerowyn)\
**Post date:** [October 1, 2004, 6:38pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/45 "2004-10-01T18:38:43Z")

</div>

> [@wolf\_meister](#):
>
> **Cerowyn**  
> Thanks for your unsolicited testimonial Mr Gates. 😃

Sorry if it upsets you that I don’t mindlessly bleat the ignorant anti-Microsoft bullshit that seeps out of so many knuckle-draggers these days. Unlike most, my opinions are objective. Here’s what those notorious Microsoft synchophants at Novell have to say (via the Mono [.NET for Linux] project site) about .NET:

> [@](#):
>
> The .NET development platform is a very rich, powerful, and well designed platform that would help improve the free software development platform. Just like the GNU project began to clone UNIX sixteen years ago, we will be cloning the .NET development platform because it is a great platform to build on.

At my company, I have Macs, BSD boxes and Windows. I choose the tools and environments best suited to the needs of my users and the costs involved… not based on knee-jerk prejudices and misguided agendas.

---

<div class="post-metadata">

**Author:** ![Athena](https://avatars.discourse-cdn.com/v4/letter/a/35a633/32.png) [@Athena](https://boards.straightdope.com/u/Athena)\
**Post date:** [October 1, 2004, 7:30pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/46 "2004-10-01T19:30:38Z")

</div>

> [@Cerowyn](#):
>
> I have managed literally hundreds of developers over the last two decades, and when one of them suggests to me that he or she has discovered a fundamental bug with a well used piece of code/object/utility, I’m disinclined to take them at their word. And, sure enough, upon examination, it is almost always a lack of understanding or willingness to read the documentation that’s at fault, not the code.
> 
> Is it impossible that Microsoft shipped a bug in the control that you managed to find with a basic, simple piece of code? No. Is it likely? Not even remotely.

Er, excuse me…?

I’ve found DOZENS of bugs in MS products. And I’m not talking “this didn’t work the way I think it should.” I’m talking weirdo bugs that cause all sorts of bad things to happen. Bugs that are certified by Microsoft AS BUGS.

Background: I worked for years at a very large company that had a working relationship with Microsoft, and previous to that at a company that had a contract with Microsoft to develop code that eventually found its way into Win2K. In both cases, we had very close relations with Microsoft. When we found bugs that appeared to be in MS’s code, we called up our contact and worked it through with Microsoft itself. Sure, not everything we found turned out to be MS’s bug, but we found plenty of real bugs in MS’s code.

Aside from that, Microsoft has a HUGE knowledge base out there, with thousands of known bugs documented there. Why is it so nutty that a coder might run across one of these?

For what it’s worth, I’m no MS basher, either. I more or less like most MS products. However, to say the development tools are not buggy is not at all true.

---

<div class="post-metadata">

**Author:** ![wolf\_meister](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/wolf_meister/32/15202_2.png) [@wolf\_meister](https://boards.straightdope.com/u/wolf_meister)\
**Post date:** [October 1, 2004, 7:33pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/47 "2004-10-01T19:33:33Z")

</div>

**Cerowyn**  
\*Sorry if it upsets you that I don’t mindlessly bleat the ignorant anti-Microsoft bullshit that seeps out of so many knuckle-draggers these days. \*

Well I gues I am one of those “knuckle-draggers” to whom you refer and so forgive me for failing to see the brilliance of the corporate entity known as MicroSoft™. Actually my remark was meant in good-natured fun. However this is “the Pit” and so recieving a less than courteous reply is to be expected.

---

<div class="post-metadata">

**Author:** ![davidm](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/davidm/32/225_2.png) [@davidm](https://boards.straightdope.com/u/davidm)\
**Post date:** [October 1, 2004, 8:40pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/48 "2004-10-01T20:40:43Z")

</div>

> [@Cerowyn](#):
>
> Try reading what I wrote again.

Okay, it was kind of late when I wrote that and I admit that I did skim over the part about “a basic, simple piece of code”. So I did end up inadvertently attacking a strawman. You didn’t say that bugs in general were unusual. But I have to disagree with even your more limited claim. I’ve run across any number of problems in Microsoft code that seemed like obvious things that should have been found in QA. I’m not necessarily blaming Microsoft, I’ve seen the same thing in non-Microsoft products. Don’t get me started complaining about Cognos’ scripting language, for example. Bugs happen and, IMHO, the more complex things get, the more likely bugs become. And the more likely bugs become, the more likely it becomes that something stupid will slip past QA. To me this seems to be almost a mathematical certainty.[sup]\*[/sup] So I wasn’t specifically slamming your precious Microsoft.

One more point, neither I nor anyone else here is a “knuckle-dragger”, if that’s what you were implying.

[sup]\*[/sup]This raises an interesting question that might be worthy of it’s own thread. Is there some “critical mass” of complexity beyond which you get nothing but diminishing returns?

---

<div class="post-metadata">

**Author:** ![Cerowyn](https://avatars.discourse-cdn.com/v4/letter/c/82dd89/32.png) [@Cerowyn](https://boards.straightdope.com/u/Cerowyn)\
**Post date:** [October 1, 2004, 9:28pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/49 "2004-10-01T21:28:24Z")

</div>

**Athena** , first of all, please re-read what I posted. I have no doubt that Microsoft products are full of bugs – it is a truism that no non-trivial piece of code is ever bug-free. What I pointed out was that on balance, when a programmer suggests to me that a trivial piece of straight-forward code exposes that a shipped component does not work, chances are that the problem does not in fact lie with that component. And that has nothing to do with Microsoft in particular, it applies to all commercial software.

**wolf\_meister** , if you’re not spouting mindlessly uninformed opinions, I wasn’t accusing you of being knuckle-dragger. Given that I hold Gates in pretty low regard, I guess I didn’t see the humour in your attempt. I apologize if I misconstrued your attempt, but I suspect that you wouldn’t be thrilled if I addressed you as Mr. McNealy, either.

---

<div class="post-metadata">

**Author:** ![ouisey](https://avatars.discourse-cdn.com/v4/letter/o/9fc29f/32.png) [@ouisey](https://boards.straightdope.com/u/ouisey)\
**Post date:** [October 1, 2004, 11:40pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/50 "2004-10-01T23:40:09Z")

</div>

> [@Athena](#):
>
> I’m fairly certain it wouldn’t have been easier to code my own data grid, given that it was showing data directly from a dataset (and that, btw, worked wonderfully. Just tell the datagrid “here’s yer data!” by handing it a dataset and voilia!). But overall I can’t imagine a more complex and difficult object. It’s like MS was so busy making it all data-knowledgable that they never thought to think that maybe it would be nice to make the damn thing not only show data directly from a database, but make the fookin’ stuff readable by the use of formatting and color.

I dunno…the datagrid is a powerful object but faced with coding 500 lines to get the damn column color to change dynamically or just writing out a table and populating its rows with data…I might choose creating the table. I have chosen this method many times. Of course it all depends on the situation, yours of which I have no idea.

But you’re right. Microsoft made a really cool, powerful object, but then made it freaking difficult to work with. I wish it had more types of attributes, with more control over what those attributes are. I wish for god’s sake, they put some kind of aggregation capability in it.

---

<div class="post-metadata">

**Author:** ![wolf\_meister](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/wolf_meister/32/15202_2.png) [@wolf\_meister](https://boards.straightdope.com/u/wolf_meister)\
**Post date:** [October 2, 2004, 6:23am UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/51 "2004-10-02T06:23:34Z")

</div>

**Cerowyn**  
Geez I did not think that I was _spouting mindlessly uninformed opinions_, to use your vernacular.

Basically, my ape’s brain has come to 2 conclusions about MicroSoft:

1. They release their products LONG before they have been properly debugged.
2. Their alleged “help” files are bloated, disorganized, incomprehensible paragraphs of “tech-speak” written by people who either want to sound self-important or don’t really care if anyone understands their “help” or not.

Heck, I can cite a great example. A few years ago, I wanted to set up a home network. So, I went to the Windows 2000 Help section. I wanted to learn some fundamental concepts so I thought I’d look up router. Here, without changing 1 word, is their definition “In a Windows 2000 environment, helps LAN’s and WAN’s achieve interoperability and connectivity and can link LAN’s that have different network topologies (such as Ethernet and Token Ring). Routers match packet headers to a LAN segment and choose the best path for the packet, optimizing network performance”.

Well with help like that, a home network practically builds itself doesn’t it? :rolleyes:  
I was glad I could get the 2 computers to share the modem connection.

And **davidm** thanks for defending all the people who posted on this thread. I don’t think they are knuckle-draggers either.

---

<div class="post-metadata">

**Author:** ![Cerowyn](https://avatars.discourse-cdn.com/v4/letter/c/82dd89/32.png) [@Cerowyn](https://boards.straightdope.com/u/Cerowyn)\
**Post date:** [October 2, 2004, 5:31pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/52 "2004-10-02T17:31:03Z")

</div>

> [@wolf\_meister](#):
>
> **Cerowyn**  
> Geez I did not think that I was _spouting mindlessly uninformed opinions_, to use your vernacular.

I’m curious as to why you seem to keep identifying with the target of my scorn, when nowhere did I even hint that I considered you to be included. Had I thought that you were, I definitely would not have bothered posting to the thread; there are dozens of threads every day on this board that don’t merit responding to because they _are_ mindless spoutings.

Microsoft are no better and no worse than most of the other big software vendors. There are certainly examples of much better ways of producing and packaging software than Microsoft seems capable of, but there are also much worse. My company has recently been doing integration with another company’s technology, and we spent weeks banging our heads against their documentation (which includes numerous examples, _not one_ of which worked with their latest release). It took numerous emails back and forth with their engineers before we finally worried the missing details out of them to get things to work.

---

<div class="post-metadata">

**Author:** ![Gary\_Robson](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/gary_robson/32/3448_2.png) [@Gary\_Robson](https://boards.straightdope.com/u/Gary_Robson)\
**Post date:** [October 2, 2004, 7:34pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/53 "2004-10-02T19:34:56Z")

</div>

> [@Cerowyn](#):
>
> C# is everything that Java should have been.

Except that the whole point of Java was to be platform-independent, and the whole point of C# is to lock you into Microsoft. Aside from that, I guess I could see your point.

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [October 2, 2004, 7:50pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/54 "2004-10-02T19:50:36Z")

</div>

> [@InvisibleWombat](#):
>
> Except that the whole point of Java was to be platform-independent, and the whole point of C# is to lock you into Microsoft.

That simply isn’t true. C# and the CLI are ECMA standards, and there’s already more than one implementation for Linux ([Mono](http://www.mono-project.com) and [Portable.NET](http://www.dotgnu.org/pnet.html)).

Sure, some of the .NET libraries are only available on Windows (for now), but the same is true of many C++ libraries, and there are portable, open source replacements (e.g. Gtk# instead of Windows Forms).

---

<div class="post-metadata">

**Author:** ![Shalmanese](https://avatars.discourse-cdn.com/v4/letter/s/45deac/32.png) [@Shalmanese](https://boards.straightdope.com/u/Shalmanese)\
**Post date:** [October 3, 2004, 5:26am UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/55 "2004-10-03T05:26:43Z")

</div>

> [@wolf\_meister](#):
>
> **Cerowyn**  
> Geez I did not think that I was _spouting mindlessly uninformed opinions_, to use your vernacular.
> 
> Basically, my ape’s brain has come to 2 conclusions about MicroSoft:
> 
> 1. They release their products LONG before they have been properly debugged.
> 2. Their alleged “help” files are bloated, disorganized, incomprehensible paragraphs of “tech-speak” written by people who either want to sound self-important or don’t really care if anyone understands their “help” or not.
> 
> Heck, I can cite a great example. A few years ago, I wanted to set up a home network. So, I went to the Windows 2000 Help section. I wanted to learn some fundamental concepts so I thought I’d look up router. Here, without changing 1 word, is their definition “In a Windows 2000 environment, helps LAN’s and WAN’s achieve interoperability and connectivity and can link LAN’s that have different network topologies (such as Ethernet and Token Ring). Routers match packet headers to a LAN segment and choose the best path for the packet, optimizing network performance”.
> 
> Well with help like that, a home network practically builds itself doesn’t it? :rolleyes:  
> I was glad I could get the 2 computers to share the modem connection.
> 
> And **davidm** thanks for defending all the people who posted on this thread. I don’t think they are knuckle-draggers either.

The MSDN is not a “Learn C++ in 21 days”. It’s a reference manual which assumes the user already has a mastery of the basic concepts of the language and is just looking for particulars to fill in the blanks. It sounds like your asking MS docs to be what they aren’t.

And I still don’t think you get Cerowyn’s point, he/she’s not denying that MS bugs exist, he/she is pointing out the overwhelmingly human tendancy to instantly attribute blame to foriegn code when you hit a bug and then spend hours looking in that specific region when the real answer might be several dozens of lines away and would have popped out at you if you took a step back for a moment.

Sure, its POSSIBLE that you may have found a bug in windows form code and it’s POSSIBLE that it may be a bug that a simple google search would not bring up but the chances of that are vanishingly small. MS library code is not much more or less buggy than code by other vendors of a similar nature and has generally been checked over by thousands of previous users using that same control trying to do exactly what you are doing. If there was a bug, chances are it’s been reported and probably fixed. Your code has been looked over by 1 pair or sleep-deprived, not too careful eyes. If I had to bet money on it, I would say the error lies in your code and not theirs.

---

<div class="post-metadata">

**Author:** ![praxim](https://avatars.discourse-cdn.com/v4/letter/p/53a042/32.png) [@praxim](https://boards.straightdope.com/u/praxim)\
**Post date:** [October 3, 2004, 2:05pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/56 "2004-10-03T14:05:58Z")

</div>

> [@Mr2001](#):
>
> That simply isn’t true. C# and the CLI are ECMA standards, and there’s already more than one implementation for Linux ([Mono](http://www.mono-project.com) and [Portable.NET](http://www.dotgnu.org/pnet.html)).

Interestingly, one of the primary reasons the GNOME project is staving off using Mono in its desktop is because the legal ramifications of doing so are unclear. They’re waiting to get some kind of guarantee from Microsoft that any patents they might have on the .NET framework won’t be used against them.

It freaks me out to see files with names like “blam.exe” on a Linux box.

---

<div class="post-metadata">

**Author:** ![wolf\_meister](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/wolf_meister/32/15202_2.png) [@wolf\_meister](https://boards.straightdope.com/u/wolf_meister)\
**Post date:** [October 3, 2004, 8:38pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/57 "2004-10-03T20:38:15Z")

</div>

**Shalmanese**  
I know it is _very rare_ for code to generate errors because of bugs in a utility or compiler. I was merely stating that MS releases products that have not have a sufficient QA review and it seems everyone in this posting is in agreement.

_The MSDN is not a “Learn C++ in 21 days”. It’s a reference manual which assumes the user already has a mastery of the basic concepts of the language and is just looking for particulars to fill in the blanks. It sounds like your asking MS docs to be what they aren’t._

You mean something that is only 2 keyclicks away (click START then HELP) is something that is intended for advanced users of Windows 2000 ?  
Wow, maybe I should try and find a “Help” section that is only a tenth of a keyclick away. :rolleyes:  
As I said, I was only looking up a definition of “router”. Sorry Doctor Morbius.  
“The fool, the meddling idiot. As though his ape’s brain could contain the secrets of the Krell.”

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [October 3, 2004, 8:55pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/58 "2004-10-03T20:55:17Z")

</div>

> [@praxim](#):
>
> Interestingly, one of the primary reasons the GNOME project is staving off using Mono in its desktop is because the legal ramifications of doing so are unclear. They’re waiting to get some kind of guarantee from Microsoft that any patents they might have on the .NET framework won’t be used against them.

According to the Mono project, only [ASP.NET](http://ASP.NET), [ADO.NET](http://ADO.NET), and Windows Forms are questionable in that respect. Any patents on the core parts of .NET are licensed under [royalty free, reasonable, and non-discriminatory](http://web.archive.org/web/20030609164123/http://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html) terms, according to Jim Miller of MS:

> [@](#):
>
> The ECMA process requires that all patents held by member companies that  
> are essential for implementing its standards are available under  
> “reasonable and non-discriminatory (RAND) terms” for the purpose of  
> implementing those Standards. This is the normal condition used in all  
> International Standards organizations, including both ECMA and ISO.
> 
> But Microsoft (and our co-sponsors, Intel and Hewlett-Packard) went  
> further and have agreed that our patents essential to implementing C#  
> and CLI will be available on a “royalty-free and otherwise RAND” basis  
> for this purpose.

---

<div class="post-metadata">

**Author:** ![Armilla](https://avatars.discourse-cdn.com/v4/letter/a/e19b73/32.png) [@Armilla](https://boards.straightdope.com/u/Armilla)\
**Post date:** [October 4, 2004, 12:54am UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/59 "2004-10-04T00:54:01Z")

</div>

As a .Net developer my take on the Framework 1.1 is that it remains somewhat immature. Not buggy, or bad as such, but rather something that should be taken as a good start instead of the ultimate end of the system.

What’s there is, by and large, good, though I do agree wholeheartedly with the criticisms levelled at the DataGrid control. I’ve been there with the DataGridStyle subclasses and it’s a lot of effort to return something that should have been there in the first place. The Framework should have shipped with more options than “Simple text box” and “Simple check box”. I can see why it happened; the control itself is flexible to the nth degree, but ships with too few Style subclasses, quite possibly due to time or resource constraints.

In my work with .Net so far I’ve found that I have often to resort to calling unmanaged APIs, with all the associated danger of memory leakage and buffer overflows you expose yourself to when using the Runtime.Interop library. Version two of the Framework takes up some, but not all, of this slack.

The Framework will continue to develop over time and the controls and libraries will mature as MS receives feedback on their performance.

As regards the more open nature of C# and the core Framework, I think MS is, for a change, following the right path and appears to have genuine intentions. The ingrained mistrust of MS by the open source community will take some overcoming, of course, but hopefully time will enable people to set aside their ideological differences. The core Framework needs to grow to encompass portable forms and data access systems as part of the standard in order to become truly useful, but hopefully this will come with time.

I sometimes suspect that MS exporting C# as an ECMA standard is a tactic to show up Sun and some of the hypocrisy in the open source community. Java remains a proprietary system owned and managed by a single company who have, in the past at least, aggressively defended that ownership in court (against MS, among others). It invites those who condemn MS software for its proprietary nature to put their money where their mouth is and embrace the open C# standard over proprietary Java.

It is a tool to expose those who condemn MS simply because they are MS (a group that has quite a few members - though, given MS’s behaviour in the past, it’s not hard to see how this became the case). Genuine believers in the pursuit of open standards should be happy to see C#, while those who condemn it are forced to come up with genuine criticisms that can drive the improvement of the language or admit that they do not like it simply because of its association with MS - a position unworthy of dispassionate consideration in the marketplace.

I’d like to think this move has the potential to let things progress beyond the endless throwing of FUD from all sides in the software community, but I fear that it will take a long time and many more good-faith moves from MS to see this happen.

Still, it’s a beginning and, I hope, a step on the road to a community ruled less by ideology and prejudice and more by the genuine and pragmatic kind of evaluations it needs.

---

<div class="post-metadata">

**Author:** ![praxim](https://avatars.discourse-cdn.com/v4/letter/p/53a042/32.png) [@praxim](https://boards.straightdope.com/u/praxim)\
**Post date:** [October 5, 2004, 1:13pm UTC](https://boards.straightdope.com/t/microsoft-and-c/266505/60 "2004-10-05T13:13:43Z")

</div>

> [@Mr2001](#):
>
> According to the Mono project, only [ASP.NET](http://ASP.NET), [ADO.NET](http://ADO.NET), and Windows Forms are questionable in that respect. Any patents on the core parts of .NET are licensed under [royalty free, reasonable, and non-discriminatory](http://web.archive.org/web/20030609164123/http://mailserver.di.unipi.it/pipermail/dotnet-sscli/msg00218.html) terms, according to Jim Miller of MS:

Unfortunately, that’s not quite good enough for them. Here’s a melodramatic explanation of the opposing viewpoint:

[http://www.gnome.org/~seth/blog/mono](http://www.gnome.org/~seth/blog/mono)

[Previous page](https://boards.straightdope.com/t/microsoft-and-c/266505.md?page=2)

[Next page](https://boards.straightdope.com/t/microsoft-and-c/266505.md?page=4)
