Microsoft .NET Famework being Open Source

Microsoft has announced the .NET Famework will now be open source so Linx, iOS & potentially anything can be coded in Visual Studio 2015.

What are your views on Microsoft .NET Famework becoming open source code and how do you think this will effect cross platform applications and essentially games?

I'm intrested in Wendell's view on this as he will understand this best. 

If Microsoft Went Full-Blown Open Source there's a SLIGHT chance that it will Put Linux in the Grave. also you spelled Wendell's Name Wrong.

I doubt that some how, Linux has a very well established brand in enterprise and mobile, also its a trusted platform, adding to that Linux is light years ahead in terms of technology, MS could go open source, does not mean it would work, and to be honest I doubt it would at all, its designed around been closed source, so switching the model this late would effectively kill its self

The foundation of Windows becoming open source, thing are going to get interesting soon. I'm curious as to what Nadella's endgame is.

Thanks Kat for the correction.

I don't see why it would kill Linx, more make it a stronger contender as it will run more or less what Windows can and Linx is slowly taking a foot on the ladder as most servers these days are running a variation of Linx.

Not necessarily, they could in theory pull it off by staggering transitional phases to build up support or to allow integration

that's why i said slight chance. But Microsoft Pushing the Open Source Agenda wouldn't hurt them. if anything it will help them in the long run.

This is good news but not earth shaking.  There already is an Open Source version of the .NET Framework, and it has been around for ten years.  

It is called Mono and it can run on Linux, OS X, and Windows.

All this really means is that Mono will become much better, be able to support more recent versions of the .NET Framework, and more importantly they do not have to worry about being sued by Microsoft anymore.

I am actually surprised that Microsoft is doing this.  This is really counter to there past business model, but good for them they actually did something right for a change.

+1

Mono was another de iscaza project, the Mexican guy that tried to get a job at Microsoft for 15 years by trying to impress them, it didn't work out, he left Gnome, he turned his back on open source because he was completely disillusioned of not landing a job at Microsoft, and he now works for Apple...

Mono was never a big hit, so why would .NET be a big hit.

The truth is that linux is much bigger than MS-Windows. MS-Windows may be the most used operating system on x86 PC's and small servers, but that's all it is, and the world of computing is much much bigger than that. Fact is that the field of application for MS-Windows is getting smaller all the time, and that the framework of computing in all markets is changing, and isn't taking MS-Windows into account.

Microsoft is also not a stranger to linux. Microsoft is the largest third party vendor of commercial linux solutions in the world (they sell SLES), and Microsoft uses Linux for major parts of their operation (the entire Skype network runs on linux, Microsoft Azure, etc, etc).

Microsoft knows that they have to move towards open source, for different reasons:

1. Open source development is much more powerful than closed source development, in that it can harness more resources for less money. Closed source development is very expensive, and moves really slow. Microsoft has already fired most of it's MS-Windows developers, and has already fired all of it's security developers. Those have not been replaced. Microsoft is operating MS-Windows right now on a skeleton crew, it's obvious that they have to look forward to what Windows should be after Windows X.

2. What can Microsoft really bring to the table? Is it the great code... hell no... is it the great company aura and customer friendliness... hell no... so what is it... well, they make products that non-IT-minded people want to work with and they make great marketing. The forte of Microsoft is not the development any more, it's just the bringing to market part that makes them strong. They are a software marketing company with cloud support. Maybe they realized that they could just do the same thing Google is doing: you take open source software that runs on linux, put a proprietary GUI shell on it, offer cloud support for it, and bang you've got an instant hit. Apple open sources quite a few things, it has always done that, yet they keep their products (albeit based on open source code originally) proprietary and closed source to the extent of the GUI and the user experience. Microsoft may be shooting for that Google+Apple value, which isn't a bad idea.

3. A lot of countries are banning MS-WIndows for government and educational use. In Germany, we've been able to bring the fight to Microsoft, and the government is deliberating whether or not to ban closed source operating systems. Microsoft obviously spends obscene amounts of money to lobbyists and can run it's own travel agency for fancy travel arrangements in which they wine and dine politicians and civil servants, but they have hit the point where it gets really expensive without real results. In the end, Microsoft knows that it will have to come clean on their source code.

4. Major contracts about software, like crime prevention software, tactical software, etc... are only developed for Linux for the moment. In Germany, there is a hugely successful crime prevention program that only runs on Linux, and that everybody wants, well... not everybody, because it puts a lot of responsibility onto the shoulders of law enforcement, because if they fail to follow up on the predictions of the software, they obviously fail at their job, and they'd rather have their results foggy and indeterminable. For instance, there is a police force in Germany that has been on Linux for more than 10 years now, and they have stated that they want to go back to MS-Windows, and hold on to your seats, because this is the only reason they've given: they have to watch a lot of surveillance videos, and because they have no root rights as individual users, they can't install the necessary codecs immediately, but have to request that they be installed, and that takes too much time. The real reason is that Bavaria for instance has now implemented the crime prediction software everywhere, and that they're going for it, but that takes a lot of work and responsibility, and in the Berlin region, the police would rather not have to handle that, and would rather watch YouTube movies all day. I'm exaggerating this a bit, but the general thought is exactly that. Anyway, big contract (big bucks) governmental software applications right now exist ONLY for Linux. Microsoft definitely wants in on that action, because it's very lucrative. In order to do that, they need the tools. In order to be able to hop along where the train has already left the station ten years ago without them, they need to make tools open source, so that they can connect to the dominant ecosystem they want in on, and that's Linux.

5. Microsoft and their applications partners want to develop even closed source software on the cheap. They don't want to continue developing in the US, they want to develop where it's cheaper and where there are more skilled developers around, that means China and India. Problem is, that China has quite a large operation going on to move against Microsoft for the moment. Several razzias were held in Microsoft settlements in China, PC and servers were impounded, and earlier on Microsoft products in general were prohibited for use in Governmental and educational networks. China is also the largest market in the world, and Microsoft just can't afford to lose China. The only way to fend off the Chinese authorities, is to go open source, not entirely, but just enough so that the Chinese are happy with it, pretty much in exactly the same way Apple does it. They've learned from Google that customer data trade might just not be the ultimate business plan, as Google is pretty much dead in the water in China, but if Microsoft splits up the way they treat data in the US and the rest of the world (like Google is trying to do right now by building the huge data center in the Netherlands), they can continue to sell US customer data, and more importantly keep their Patriot Act obligations intact and continue to get fat contracts from the US government, and at the same time provide more data protection in the rest of the world, complying with human rights and consumer rights there, and still stay in business. This might actually work, because Microsoft already has the data centers needed for exactly that. IBM has figured this out 25 years ago, and they implemented it, but soon they were too early to the party, and instead of conquering a larger market, they actually had to slow down because of the impact of the intelligence community on the whole thing (like an IBM director being found murdered in his Volvo in France under suspicious circumstances, very Olson-like, for those that remember that).

Just seems MS wants to bake in .NET support in into the Suse Linux Enterprise Server's Kernel. That will make it easier for Visual Studio users to deploy Linux software.

It is just about have two products working better together.

On the PC side this may help improve the Wine emulator.

SLES uses the Linux kernel, owned by Linus Thorvalds and the Linux Foundation. Microsoft has nothing to want there, neither does SuSE.

Microsoft has no power over SLES, they only have a contract with SLES that benefits both Microsoft and SuSE, and provides a decent budget for OpenSuSE, of which the Factory maintainer is also one of the main kernel maintainers.

I think that Microsoft is in the first place concerned about C#, the Java clone that doesn't really make it. It bugs Microsoft that C# has no success because it's not useful for the post-PC platforms. Microsoft knows that they mean absolutely nothing on the platforms that matter for the future, and that both Linux and iOS are very strong there, because the developers have jumped on these platforms, and there are a huge amount of apps, whereas there is nothing on Microsoft RT or Mobile or Phone or whatever they want to call it. They also got really scared now that Android apps work in the Chrome browser on x86, and are a huge success, and they are plugging the wrong hole really, because they don't fix their operating system and their own applications to even be usable on modern formfactor devices. Chrome is the only Windows application that is actually usable on a touchscreen x86, it has a Windows 8 touch mode, and people use it like an Android tablet. Microsoft wanted to change Windows to suit touch devices, but because they failed so miserably with the metro interface and the complete lack of touch usability of MS-Office and other applications. Windows 8 turned out to be complete unusable chaos, an operating system made for nobody, and they can't make the transition towards modern UI's, they have to actually turn back the clock and change Windows 8 back to a desktop UI for keyboard and mouse, because that's the only way the applications for Windows are even usable. On Linux, it's completely different. Linux has been the choice operating system for post-PC and touch devices for the longest time. The only way Microsoft sees it can draw people away from linux on post-PC platforms, which form the major money making machine right now, and Microsoft is not part of it, is to try to have their victims, developers that invested in C# and got spit out, write applications in C#, that would also run on Linux, because that's what developers are actually motivated to write apps for. Then when those Android C# apps are written, it would be easy for Microsoft to snag them and also offer them for Microsoft devices, because there is not a sensible soul on this planet that would develop for Microsoft mobile products. However, C# looked good in comparison to Java when it first came out, but Java hasn't been standing still, and C# doesn't quite offer what Java has to offer. But Microsoft is dreaming wild in my opinion, C# will never make it. The number, the choice and the quality of development tools in open source and Linux, are immense, nobody would even think of using the in comparison relatively poor tools to develop anything.

I am not implying .NET is good, but if it is open source they could push to get Kernel support, like python. And still in some enterprise circles Visual Studio is used to develop software. 

I am just saying they may be working on making the lifes easier for people who do Use Visual Studio.

My father writes software for the insurance industry and they use .NET. If they worked on making the code more portable it would make some people's life easier.

I agree that there are possibilities. The first thing that pops to mind is that a lot of games and other applications for Windows are based on .NET. It obviously works in both ways... if it opens the door to more apps being available to Microsoft software consoles (although I doubt it's going to happen the way Microsoft expects it to), it also opens the way to more compatibility of .NET apps to easily run on modern operating systems that matter.

The lInux kernel is not an operating system though, it's just a kernel. It can be compiled with different compilers, that allow for differently licensed modules to be included or not. Linux has never been opposed to integrate Microsoft code in the Linux kernel as long as it is open source, in fact, a large chunk of the kernel (more than 20000 lines) is Microsoft code, that Microsoft submitted to lengthen the relevance of their products in essential markets.

.NET is not really a major player in the Enterprise software development space.  Java is pretty much the lingua franca for Enterprise Server Side development.  The main reason is because .NET was late to the party and locked people into using windows—Mono only really became a viable cross platform option about five or so years ago.  And by that time Java was already entrenched at most companies.

I do both Java and C# development, and I much prefer doing Java development.  Visual Studio is a terrible IDE.  Both NetBeans and Eclipse are far superior to it.  But C# has been good for Java in the sense that it has moved Java forward and made it a better language.  In some senses C# was ahead of Java in what it offered developers—it had lambda expressions and functional capabilities long before Java.  But now with Java 8, Java has added most of what C# had, and has actually leapfrogged it by added map and reduce functionality directly into the language.

Like I said Microsoft making .NET Open Source is a step in the right direction but it may be too little too late.  But hopefully this will mean that NetBeans will offer C# support in the future.

You would be surprised how many companies outside the IT scene use SQLserver and .Net for most of their in house stuff.

How is Visual Studio a bad IDE in any way?

Well let’s see.  Visual Studio’s code completion is not very good.  It is not nearly as context-aware as NetBeans, and does not add parens and autofill parameters.  

While writing code, many times it misses underlining syntax errors and these errors are not reported until you build.  And I am talking about it doing this with C# code NOT with C/C++.  If it were C/C++ I would understand.  It is a lot more difficult to do with C/C++, and even NetBeans and Eclipse have trouble with this.

The debugger is clunky.  Tracking variables is convoluted and mouse hover over variables to examine current values does not work correctly.  When you are debugging, you cannot edit code, who thought that was a good idea.   Attaching to a running server process to debug fails half the time.  I have to stop and restart, sometimes multiple times for it to take effect.

These are just a few of Visual Studio’s deficiencies.