What Mono Can Do For .NET Dudes

I’m still trying to catch up on blog postings around the world. This morning I read one from the Mono crew (Paco Martinez) that’s now two weeks old. Here is the post. The post is about presenting Mono in .NET User Groups and even mentions a Mono developer who lives here in North Texas like myself. He says this about presenting:

"I have become somewhat discouraged from actively pursuing this because I have perceived a certain discomfort coming from the folks responsible for scheduling and organizing these events."

He then goes on to explain why. As an active attendee of the Plano .NET User’s Group, I would LOVE to see a Mono meeting. Here’s why. Here’s my argument from an avid .NET programmer’s perspective. Just for organization’s sake, I’ll number my points. And I’m sorry, this is going to be a very long post.

1. No Excuse To Leave Platform -- For Microsoft, it is in your best interest to accept and appreciate Mono, because if it is as good as it seems to be, it gives me no excuse to leave .NET behind. I have written Winform programs in .NET and C#. I have written ASP.NET websites with .NET and C#. I have written webservices with .NET and C#. I love the fact that I can do that. There is only one thing that I cannot do that I want to be able to do with .NET: I want to be able to write native GUI programs that are cross-platform. I need to be able to. One area I am very interested in (biblical studies and research) needs cross-platform applications, because there are lots of Mac users in the field. I still have the idea to do this using C# and .NET, and it is not because of Microsoft; it is because of Mono. If Mono did not exists, I would have NO CHOICE except to go to a different programming API, like Java or wxWindows.

Sure, Microsoft probably doesn’t really care if programs run on Mac or Linux. But here’s one thing that I’m quite sure Microsoft believes in: developers. I think they know that the best platform is going to probably be the one that has the most and the best developers. That’s probably why they make VS.NET as awesome as it is. That’s why they give conferences, support user groups, and give away free training (I went to one such class at the Irving campus a few weeks ago). If Mono is a success, it gives me no reason to learn some other programming platform. It gives me no reason to jump ship. It keeps at least one more person among the happy ranks of .NET programmers, me.

That’s one reason why I think it would be great, for all involved, if Mono was given time at .NET User Groups.

2. Makes MS Look Good to Non-MS People -- If Mono succeeds and MS doesn’t do something stupid like sue them or anything, this is going to do two good things for MS.

First, it is going to make MS look better as far as techie morals are concerned. I’ve met a number of developers who don’t like using MS technology at all because they think MS is evil. So, they go open source. If Mono, an open-source project, succeeds and is not looked on by MS as a wicked step-child, this will help (to some degree, though it won’t solve the problem) MS reputation with programmers. MS would have lots more programmers if the ethical issues didn’t exist. How about trying to get rid of those issues? Here’s one thing that will help.

Secondly, I think Mono’s existence is just about the biggest compliment MS could get from the open-source community. If it thrives, .NET has a thriving, living, developer community in the open-source world that is constantly saying ".NET doesn’t suck." Wouldn’t that be good for Microsoft?

Yet one more reason to have more Mono-centered .NET User Group meetings.

3. Makes MS Developers More Accepting of Open-Source -- Mono helps soften the conflict between Pro-MS-Technology people versus all things open-source. This is similar to the last point, except the reverse.

I know some MS technology programmers who look down on open-source technologies. I’ve seen a number of bad open-source projects (mostly smaller ones), so I understand where the feeling comes from. But I think there are also some really good open-source projects (obviously...this is a post about Mono). Anyway, Mono helps remove, or at least soften, a bias there in the minds of Pro-MS-Technology people. And this is good for the .NET community, because more and more open-source .NET projects are being started.

This is more of a side-benefit than a reason for having Mono-centered .NET User Group meetings, but I think it needs to be said anyway.

4. .NET User Are Truly Interested in Mono -- No doubt. I’ve met developers who are skeptical, but once I explained Mono to them I’ve never heard anyone say "That’s the stupidest thing I’ve ever heard of." I guess some people will, but I would argue that they would be a minority.

What is it that so many .NET programmers find interesting about Mono? Part of it is the general curiosity that 99% of all good programmers naturally have. Part of it is the dream of having a good cross-platform programming stack. Lots of .NET programmers use Linux and Mac at times, so they find this kind of project very interesting.

So, I think another reason to have Mono-centered .NET User Group meetings would be good because it gives MS developer’s what they want. I bet that if you give them what they want, they’ll appreciate your User Group meetings even more. I bet they’ll think more highly of you because of your openness and because of your desire to give them information that they really need and want.

So, that’s why I think Mono should be featured in User Groups. How do we make this happen? I’m unsure. But I’ll do whatever I can. Plano .NET User Group leaders, I have thoroughly enjoyed going to the meetings. I expect them to continue to be great. Having a Mono meeting would make it even better.

I actually think that it is in the best interest of MS do do more than just tolerate Mono. They get so much out of its existence, and could get a lot more, if they praised it more. Who knows? What would happen if they ever donated money for development, no strings attached? Will we ever find out?