.NET and Linux

So Microsoft is open sourcing .NET. Obviously it's a good thing. But what do you think this means for the future of Linux? What do you see as the most likely scenario in the next, say, 5 years?

That is mostly a good thing. What I expect is more Microsoft apps and Software made with .Net to run natively on Linux (and MAC). That is generally good for Linux to improve in the desktop market.

What I am a bit of worried is that other free alternatives to the  propitiatory microsoft stuff will now have competition on Linux and if they do not step up their game and provide an equally satisfactory alternative, people that do not care about the socio-political significance of free software will use more propitiatory stuff.

This could turn out both ways: Either free projects step up their game and actually really improve their software to compete or infect Linux OSs with more propitiatory stuff were they were not used before. 

Generally speaking, I believe that this is a good thing for developers and end-users. The one thing that has held Linux back as a desktop OS is the lack of familiar professional front end applications, such a MS Office, Adobe Photoshop, etc. I expect the .Net and Visual Studio  is just the start of MS open source campaign, with the whole of the MS Windows software catalogue soon to follow. It would be really nice if VB6 was made open source too, as it's relatively light weight. For older 32bit machines that struggle with .Net applications it is still a useful tool.

They already have free virtual versions of Windows XP, Vista, 7, 8 and 8.1 for Linux, that run in Virtualbox and the pre-release of Windows 10 is available to download for free too. So maybe Windows itself will be open source as well. It may take some time for the likes of Adobe to take this route, but I expect they will.

The consequence for Linux and small open source companies could be serious or it could be a opportunity for them to join the main stream, but many of them will have to up their game to compete.

Reading the comments, you could at first glance think that Microsoft was subversively (and purposely) trying to 'over-run' or take Linux, and other 'open-source' platforms out of the market permanently.

 

In other words, there is a desire (commercial business decision) to promote the 'Microsoft Monoculture' as the one-and-only open-source 'global entity'.

It will mean nothing for the fuure of Linux, but it might save Microsoft. Microsoft wants to move towards a cloud services company, and that requires some kind of market penetration of the software that connects to that cloud. For the moment, that's very poor, Microsoft only has MS-Windows PC's, and a handful of Windows Phones. To compare, in the first QUARTER of this year, Microsoft has sold about as much Surface tablets and Microsoft phones combined, as there are Android devices sold PER DAY. That is a 90+:1 ratio lol, and for that, Microsoft already has to invest obscene amounts of money on marketing and patent wars to even get that market penetration. Obviously this means that Microsoft has to offer it's cloud software on Android, but that's not the case right now, because Microsoft doesn't want to offer anything for Linux, which is rightfully perceived by them as the instrument of their destruction. Thing is, they don't have a choice any more, and they've made the huge mistake of not following the open source development tools, in the past, because they wanted to sell the development tools. Now however, nobody wants to pay for lesser quality expensive proprietary development tools any more, when there is higher quality stuff available from opens ource for free, and those open source tools offer compatibility with the largest platform, Linux.

So Microsoft has NO CHOICE but to open source .NET, because it's their last hope to even stay relevant. They really need to get essential tools popular in the enterprise world on Linux, because Android is just there and not going away, and people are actually moving away from Microsoft products if those products are not available on their favorite Linux distro (i.e. Android), not from Linux.

In terms of number of installs, there has never in the history of mankind been such a popular operating system as Linux, and never such a popular Linux distro as Android. Everyone has to just accept that, even Microsoft. Microsoft is quite frankly with it's back against the wall, they have to bend of break.

       ..."But what do you think this will mean for the future of Linux?"

Hopefully it means we won't see ASP.NET on linux boxes :P

The M$ open sourced code for .NET is already available in Mono, So no big news there.

.NET Core (2015) is the new cross-platform framework which M$ is hopeful open source developers will support.

However, this is highly unlikely considering Xamarin works well enough in the mobile space and Java/JVM/Scala/Groovy etc still dominate the back-end.

java is going to be there biggest hurdle. it has years of being on multiple platforms and a pretty large install base already. not to mention it was open sourced (for the most part) quite some time ago. so microsoft is again late to the game

There's no way .Net will compete head to head with Java. You needs a lot more processing power and memory to get it to perform.

Netbeans still need some work on it as regards ease of use, when compared to C# or VB, but I'm sure Oracle knows that.

Yup, that's also a valid argument.

It's so funny seeing Microsoft implement a package manager for Windows X, and seeing Microsoft do all kinds of crazy things in order to create a functional command shell, or implement multiple virtual desktops. Those are things that were available on Linux since the 90's. The first Linux package manager was from '93, RPM was actually implemented in 1995, apt in 1997. Microsoft will have the first version of it in 2015, that's a full twenty years later lol. Same for a functional command shell. Powershell is like the biggest crap in comparison to the linux terminal with bash. So Microsoft wants to solve that... so they create Powershell ISE, a command line terminal that actually takes more RAM than an ENTIRE LINUX SYSTEM INCLUDING 3D DESKTOP ENVIRONMENT, LMAO... it's just crazy how Microsoft just can't keep things straight-forward. Want to run a CLI system in Linux with full functionality, yeah, you need a system with 64 KB of RAM and an small ARM processor running at 100 MHz,... want to run a basic Powershell system of Windows X, yeah, you need a system with 4 GB of RAM and an Intel Core i7, but please don't expect the same performance as the Linux 64 KB RAM 100 MHz ARM system... LMAO

I don't think comparing PowerShell with Bash is valid, how they work and function is quite different. Bash is far superior to the DOS derived CMD shell; but PowerShell isn't DOS and interacts with the OS brilliantly exposing .Net and WMI objects for manipulation.

Whilst Bash is more intuitive from 'a working with files perspective' and in many respects more efficient than PowerShell I wouldn't be able to do half the things I can use PowerShell for if MS did implement a more Bash like version of the CMD on Windows.

If you really want to run Windows in a minimal way (a good practice for some servers) there is now Server Core. Granted, the minimum requirements are way higher than for a stripped out Linux install but you can now at least have a server without all the pointless user oriented GUI etc.

I've now got quite a few VM's running windows server with a single vCPU and 512Mb Ram e.g. my DC or FTP server etc. so no, you don't have to have 4GB and a whole Core i7 CPU dedicated to a single windows box.

Linux is great and as you say many things were available in it way before Windows but I seem to remember having multiple desktops on Amiga Workbench v1.3 in the late 1980's and having grep like commands in AmigaDOS. Does that make every AmigaOS since better than any release of Linux or Windows; I doubt it!

Getting back on topic I think its great that .Net will be available and supported for other platforms. More choice is usually a good thing in my opinion.

Yeah, that's just it with Powershell, it's overshooting to a point where just not that many people feel that it's helpful, and it is bloody inefficient, especially if Microsoft wants to move further towards Powershell ISE, which is quite the clickfest.

I get that there is technical evolution, and like I said before in another thread, at the time, for instance C# was pretty decent in comparison to what it was cloned from, but just like Windows itself didn't quite evolve much, C# doesn't quite evolve much, and there is a limited user base in comparison to java, which has not been standing still, and has evolved quite a bit. The same goes for Linux. The kind of package manager that Microsoft is now implementing, resembles an older version of RPM in my opinion. RedHat has moved on two entire generations of package managers beyond that. And that's the sad thing, Microsoft implemented C# and actually brought a few improvements over what Java could do at that time, but the things that Microsoft is introducing now, are nowhere near an improvement, as in Powershell failing to be the efficient all encompassing terminal it is in Linux, and as in the Microsoft package manager being more than a decade old technology compared to the package managers in Linux.

I agree that .NET should have been open sourced a long time ago, developer tools should be open source, always. Microsoft hurt itself pretty bad by not trusting developers. So I'm glad it's open sourced now. However, .NET is open sourced under an MIT license, not under a GPL license, so what probably will happen, is that mono will benefit more than .NET in my opinion.

I don't see a huge issue with it being MIT since it is GPL compatible X11 and Wayland are MIT. Microsoft just wants the wiggle room to use it in their pre-existing  software.

I've found the learning curve on PowerShell tough, to the point where I rarely try and write anything from scratch but my background is administration not development. I found Bash and other Shells far easier to pick up if I need to use them (its been a while though) so I get what you are saying there.

I agree that MS don't drive software innovation in the same way open source does, IMO they don't really need to as far as software is concerned - much of their business comes from clients who bitch the moment anything is changed and begrudge having to upgrade from Operating Systems they have been sweating the licences on for years.

In the past MS has been able to watch what catches on elsewhere and then implement their own version to drag their customer base onto later. Also don't dismiss how quickly MS will kill something that isn't earning them cash, the Open Source world has thousands of independents and niche players nurturing new ideas for years before they make real money or fall away discarded.

The thing is in another 10 years I am not sure MS will care so much about the OS market. I'm sure Windows will still be around but MS are betting on Azure IaaS and PaaS in a big way. They will be happy for you to run Linux, provided it's in Azure and not AWS!  Gartner noted that in less than two years Azure IaaS is now right behind AWS  in terms of vision and ability to execute (which isn't surprising given the vast sums MS are investing). I see opening up .Net as a move to help support that vision - running .Net apps on a Linux VM hosted on Hyper-V in Azure or in your on premise Azure appliance.  

http://www.informationweek.com/cloud/infrastructure-as-a-service/amazon-microsoft-star-in-gartner-cloud-magic-quadrant/d/d-id/1269267?itc=edit_in_body_cross