Open Source

Poll: Does it matter if Microsoft open sources .NET technologies?

Let us know whether you think Microsoft open sourcing .NET technologies is fantastic, nice but not very useful, or insignificant.

Microsoft has been slowly and steadily increasing the .NET technologies that are open source; most recently it has been Web API and Razor. Even better in my opinion is that Microsoft typically open sources these technologies under "copyfree" licenses like MS-PL as opposed to "copyleft" licenses like GPL.

While the benefits of open source are not to be denied, I wonder if the .NET community cares much about open source. In addition, it often feels like Microsoft may be happy to open source things, but all of the work is still done internally, so the concept of open source as collaboration with the community isn't there. All the same, I applaud Microsoft for at least putting the code out there.

J.Ja

Keep your engineering skills up to date by signing up for TechRepublic's free Software Engineer newsletter, delivered each Tuesday.

About

Justin James is the Lead Architect for Conigent.

23 comments
mohammadsj
mohammadsj

Opening the source to community is good, but in my belief, open source projects are not reliable and have no future. As a developer how I can trust and rely on a technology when there is no stable company  behind it ?!

HGunter
HGunter

Making the source available to the developer community must surely mean that porting to other OS environments is easier, thus making new .NET features easier to spread and widening the market for .NET applications. Cross-platform standardisation seems to me to be a good thing.

d_baron
d_baron

It is called "Mono."

blerafael
blerafael

What killed MS development tools for me was lack of cross-platform compatibility. The day I can program on .NET and deploy that on any (IIS-less) platform I might consider going back to MS. Regards everyone!

TWLAAAS
TWLAAAS

I don't care what Microsoft does they are too late and the expense will surely follow anything Microsoft does. They take from others and call it their own they always have and always will. How long will people be blinded by Microsoft's name. I am surely not impressed at all. Want to impress me follow the footsteps of open source as free as in beer!

jkameleon
jkameleon

There already IS an open source .net . It's called Mono. De Icaza even wrote some apps for Gnome, which enraged Stallman and the old guard. They said, that Gnome should not be polluted with Microsoft or something. Like if it's OK if it's polluted with Java & Oracle. Well, whatever. I use LINQ to SQL professionally a lot. As a matter of fact, I can't imagine life without it anymore. Naturally, the very 1st thing I've done after I switched to Linux was to explore the situation with LINQ and Monodevelop. I found out, that - The last time anybody touched LINQ to MySql on Mono was somewhere around 2008 or 2009. - In principle it works, after some googling, cursing, and tweaking. Alas, when you include LINQ to MySql generated file in MonoDevelop, it crashes every time you try to open any source file. In all, it's useless. After some research I found out, that Microsoft considers LINQ to database a strategic technology. Justifiably so, because it's far better than any ORM I've came across so far. Judging from the above, the probable Microsoft's goal is to popularize .net, while retaining key technologies. Not a bad move.

Sterling chip Camden
Sterling chip Camden

I'm always for releasing stuff under copyfree licenses. It would be great if they could also move in the direction of more collaborative development -- but at least this is a start.

aaronjsmith21
aaronjsmith21

I see a lot of open source enthusiast jumping on the .NET to make it cross-platform as soon as it is opened to the public. Although I don't see M$ doing this any time soon till they have some new technology to release to replace .NET. But who would not love to see those programs once proprietary to M$ to be used on any OS. Who knows, but M$ will do as they always have done, BE SLOW!

Justin James
Justin James

It's an attempt to copy an extremely large system by a small group of people with limited resources... and in a big cleaning last year, Novell stopped supporting the project to boot. Mono is usually at *least* one version behind .NET, too. J.Ja

Justin James
Justin James

I learn something new everyday, thanks for the update! I knew MS-PL was copyfree, and I thought Apache 2.0 was too, but I was wrong. I'll have Mary update the text. J.Ja

apotheon
apotheon

You beat me to it. I was going to point out the same thing. I suspect Microsoft's aim with the Apache 2.0 license is to use a license with a patent clause that the general open source community accepts as one of its own, but it's still a pretty misguided license choice. Better than the GPL or keeping it closed source, though! I commend Microsoft on its permissive licensing initiatives, especially those that are copyfree.

blerafael
blerafael

Interesting. Then again, something I loathed as a programmer was how we had to refactor our whole code base every couple of years. From ASP to .NET 1 to .NET 2 to .NET 3... We soon ended up with a tangle of languages and frameworks. Some apps we spent hundreds of hours building didn't make the jump and had to be shut down. When deciding for the platform I would build a commercial, cross-platform app on, I decided for simple PHP with Javascript. A beauty of compatibility and sustainability.

Tony Hopkinson
Tony Hopkinson

success, Mono was doomed from day one. Any time for whatever reason, they could negate huge amounts of effort by the mono contributors. If it had been a commercially driven effort, it would have been dead in the water within a year.

jkameleon
jkameleon

... they would use C# a bit more, and the said group wouldn't be so small. C# is my language of choice, but I had to give up on Mono. I found it useless even for quick programs for one time use. Programming with Qt is far easier and hassle free, despite of C++. Because of the usual scruples against C++, Qt was the last thing I've tried after my transition to Linux, but once I've tried it, choosing it was a no brainer. The way I see it, Microsoft is trying to gain wider acceptance for .net. The only way of getting stuff on different hardware platforms is to open it. Porting closed source on different hardware platforms is next to impossible. It's hard even with sources available. Nobody will tackle it just to wrestle with patents and licenses once it's done.

Justin James
Justin James

I know not everyone inside Microsoft is happy with the pace of "corporate" coming around to open source (it's one reason why IronRuby only has one developer left inside Microsoft), but the fact is, we're seeing a major company slowing shifting to open source, a company that was previously founded on closed source. What's even more important, is that this isn't like IBM embracing Linux, or Oracle and Java, where they are glomming onto a tech developed outside their walls, primarily with someone else's labor, and saying, "we will monetize this and support it too!" This is a company turning their own products into open source. And it's different from, say, Netscape or other "hail Mary passes" that we've seen in the past, where a sinking ship says, "hey, here's our code, let's start a community!" The stuff that Microsoft is opening up are things that are doing just fine on their own. And the "not developed here" open source techs (like jQuery) that Microsoft is adopting are being done with a lot of support and contribution back, as well as deep integration into the general ecosystem. Five years ago, if someone told me that most of the technologies for Web development sitting on top of .NET from Microsoft were open source, I would have laughed. Today, it is a reality. Even the .NET Framework itself is mostly open source (though it still has a true copyright license... you can see the source, akin to a proprietary *NIX) so you can step a debugger through it and figure out what's going on under the hood. That's progress. Not perfect, of course, but it's a huge, reluctant step forwards. J.Ja

apotheon
apotheon

The whole thing looked a bit quixotic from the beginning.

apotheon
apotheon

Tk is less encumbering than Qt, and in many ways easier to use, but it is not quite as comprehensive in some respects and it often results in software that looks a little "dated". In addition to be less encumbering, it offers a bit more flexibility in terms of how it is used -- though I suppose one could call that a "less encumbering" benefit as well. I don't know what you mean about availability. Tk is available all over the damned place. QUOTE: GTK+ ? Good enough, I guess, but since I use KDE desktop, the 1st choice for me is obviously Qt GTK+ is everywhere. It's almost certainly already on your system, whether you use KDE or GNOME for your primary GUI environment. GTK itself did not start out as GNOME, by the way -- the G stands for GIMP (the image editor). I find GTK marginally less offensive than KDE because its implementation is a touch less "beefy" (that is: big and heavy), and it's a lot harder to avoid GTK than KDE so unless I'm running a GUI-less system I almost certainly have GTK on it and almost certainly don't have any Qt stuff on it anyway. QUOTE: Mono? Yeah . . . I'm not using Mono, either. QUOTE: Java? Don't get me started on Java. The simple point is that I'm not a fan. Java is not at all portable: it only really runs on one "machine" (the JVM), and is thus only as portable as that -- and the JVM is a heinous pain in the neck to install and maintain on many systems, to say nothing of startup slowness and other annoyances. About the only place Java really makes sense these days is long-running heavy processes on servers, where the user has no clue what's happening on the back end and the optimizing capabilities of the runtime start coming into play. QUOTE: Vala? Give me a break! Yeah . . . I wasn't aware anyone took it seriously. (Okay, I kid -- slightly.) QUOTE: The problem I was going to solve (natural language processing) seemed computationally intensive from the very beginning, which excluded interpreted languages. Wait -- what? The GUI framework you use should have pretty much nothing to do with computationally intensive back-end code. Hell, given what you just said, I'd think you'd want to write the heavy-lifting code as a library, then just slap a thin GUI veneer over it for end-user operation.

jkameleon
jkameleon

Tk? OK, I'm still a rookie in Linux, I'll take your word for it, it's better than Qt. But if it's not available, it's not available. I need to get the job done now, and as fast as possible. GTK+ ? Good enough, I guess, but since I use KDE desktop, the 1st choice for me is obviously Qt Mono? C# certanly is nice, but alas, Monodevelop is too unstable for now. Without LINQ to database, new features doesn't make sense. Java? Older and far less elegant than C#. Stallman's anti Microsoft anti C# rant applies to Oracle & Java as well. It's therefore not worth learning. It's better to use the bad ol' C++. Vala? Give me a break! Anything else? The problem I was going to solve (natural language processing) seemed computationally intensive from the very beginning, which excluded interpreted languages. In the later stages, this assumption proved to be pretty much correct. Thanks to QtConcurrent and QFutureWatcher classes, though, I could easily utilize all the processor cores my box has to offer. That saved me a LOT of time.

apotheon
apotheon

The problem is that the specific path down which some frameworks direct developers is often the wrong direction -- sometimes subtly, sometimes less so, but those who are not as familiar with the wide world of alternatives may not realize there's another way to do things. It becomes one's hammer, and every problem becomes a nail, even if it's shaped more like double-sided tape or a Faberge egg. Basically the only thing for which Qt is actually suited is KDE desktop applications.

jkameleon
jkameleon

... if it leads to the job being done. I'd much prefer someone improve upon C#, LINQ to MySql, UNO bridge to LibreOffice, and fancy stuff like this, but alas, for one reason or another, nobody does. And so, I use whatever is available, and whatever works.

apotheon
apotheon

For GUI native development, I'd much prefer someone improve upon Tk than use Qt. The Qt ecosystem really channels developers down specific paths in various ways, hauls far too much external code into most applications built with it, and uses licensing I find notably suboptimal.

apotheon
apotheon

Agreed. Things are changing at Microsoft, as I figured they must at some point. You can't just ignore something like open source software forever, and refusing to do anything with it other than treat it as The Enemy is such an obviously losing strategy in the long run that even a publicly traded multinational corporation cannot help but notice after a while. The question is whether Microsoft's involvement going forward will do more harm than good. Oddly enough, it shows good signs (e.g. the favor Microsoft shows to copyfree licenses, and permissive licenses in general), alongside the bad signs (e.g. the obvious use of stuff coming out of Microsoft's open source labs as research for more attacks on competing open source projects). I'm of the opinion that if Microsoft does more good than harm in the long run, it's going to be in a self-destructive manner. Time will tell.

Editor's Picks