Microsoft To Open Source .NET and Take It Cross-Platform
An anonymous reader writes: Microsoft today announced plans to open source .NET, the company's software framework that primarily runs on Windows, and release it on GitHub. Furthermore, Microsoft also unveiled plans to take .NET cross-platform by targeting both Mac OS X and Linux. In the next release, Microsoft plans to open source the entire .NET server stack, from ASP.NET 5 down to the Common Language Runtime and Base Class Libraries. The company will let developers build .NET cloud applications on multiple platforms; it is promising future support of the .NET Core server runtime and framework for Mac and Linux. Microsoft is also making Visual Studio free for small teams.
Too little too late, Billy Bob Gates
This is actually a pretty smart idea, but it sounds like what Sun did with Java and parts of Solaris. .NET was designed to be a Windows-only application platform, requiring Windows clients for fat applications and at least Windows servers for web applications. Now Microsoft is seeing Windows become less relevant, but they do want people to be using their software stack regardless of platform.
Same thing with Visual Studio being made free...kind of like XCode being free for MacOS, and the open source IDEs being free. It's a bold move because now the .NET ecosystem needs to stand on its own, and I guarantee they're going to try to tie this in with Azure somehow (like making you run the free VS in Azure VMs you pay for or something...)
One scary thing from my side of the house (systems engineering/integration) is the number of new security flaws and the sheer volume of patches that are going to be released once .NET gets more scrutiny. A good thing, yes, but patching .NET is already a pain in the butt.
Oh no, two versions of an open source technology. Thank god Linux still only has that one distribution.
Really, though, I can see no downsides to this change.
Yeah, without one of the most important parts... WinForms
"When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
I've got only one question: What license will they use?
Mono is impressive, but doesn't have the development resources to really compete with the CLR or JVM for a lot of workloads. The garbage collector in particular is not as good. That's one reason you see languages that want to build on top of an open-source VM, like Clojure or Scala, targeting the JVM rather than Mono.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I really hope systemd is rewritten using .NET!
I fully expect post-Ballmer Microsoft will continue to surprise all of us.
bit fuckin' early for April Fools isn't it?
Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
Can you explain? what part of the .net collections would be lacking? .net and java, it's usually that the past 10 years .net has evolved and java sometimes catches up a tiny bit. .net even an array is also still a collection, they have collections for just about anything you need, and with LINQ you've got an incredibly powerful way of manipulating/creating/accessing collections.
If you see comparisons between
I always thought that java collections were weaker since in
As much as I don't care for Microsoft, if this brings about an end to all the headaches I run in to trying to use mono then I will welcome it. I love all the applications that I need to run that have 30 pages worth of crowd-sourced (and nearly unreadable) documentation for how to run them in wine with mono. It's time to be done with this bullshit and get back to work. I understand the goals of mono and they were admirable but they just never really worked out. Hopefully those guys can help the development of the open-sourced .NET.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
"We are Microsoft. Unix is irrelevant. Openness is futile. Prepare to be assimilated."
Microsoft still has dominance (monopoly) of desktop OS and office software. They still have incompatible office formats. They still corrupt international standards organizations. They still have the mindset of "Microsoft way or the highway". They still bundle their OS with most computers and vendors that want to sell computers without Windows still get in trouble. They still screw up their mobile phone partners.
They are still as evil as they used to be. They missed the boat with search/internet services and mobile- so they have a weeker position now. And now we have other evil companies like Apple and Google, and other evil organizations like NSA and GCHQ that affect the internet and computing world. But given emergence of new evils and reduction of power of Microsoft does not make them less evil.
--Coder
In concept making the .NET framework open source sounds cool. But, does making it open source mean that I can make a change to the framework, recompile it, distribute the binary framework along with my dependent application, and expect that someone else can just install my version of the framework and be good? Or does it mean that if I want to distribute a modified framework, I have to go through some sort of code signing process in order to allow it to run on someone else's computer? What would this signing process look like? In addition the assembly loader in .NET makes certain assumptions about version numbers of assemblies. It will be interesting to see how it works when due to multiple development paths, core assembly version numbers are not necessarily sequential / increasing over time.
I'm sure this will usher in a new era for Linux desktops!
Does this mean that the client-side stuff (WPF) will be missing? .NET is a lot less useful if the GUI components are still missing.
the growth in cynicism and rebellion has not been without cause
To make it cross-platform for real is hard. Lots of programmers don't try to avoid platform-specific and write code such as:
...instead of:
Another mistake is using explicitly hardcoded paths that only exist in Windows. And another challenge would be case-sensitivity of the filesystem on Linux; this can break programs that were developed and tested on Windows only.
The framework must provide for platform-independent ways to do things so that it is easier/shorter to do it the right way than using a naive but non-portable approach. Or programmers not really thinking things through will simply keep writing non-portable code anyway. The example above illustrates that; it is way more conventient to combine pathnames with such a non-portable string concatenation than it is with the right approach.
I am not really here right now.
Do you seriously believe .NET ever really had a chance of crushing Java? By the time .NET really came online, Java was already heavily embedded in the enterprise. This guarantees that Java will be a development platform of significant entrenchment for years, probably decades to come.
People seem to believe that because Java has retreated to some degree from the desktop that it is a failed platform. But its penetration in many enterprise and financial organizations is huge, and I can't imagine that changing any time in the near future. Maybe in the long run, sure, but then again, the long run for banks, insurance companies and the like is half a century; look at all the COBOL code out there.
The world's burning. Moped Jesus spotted on I50. Details at 11.
.NET applications still need read about 1GB of libraries from the disk (only portions are kept in memory). This is why .NET applications are so brutally slow to load. Will this improve?
.NET Native speeds up startup times considerably. The way it works is it compiles your .NET app into native code, does whole-program optimization, and "shakes out" all the bits of the framework that aren't actually even needed by your code. (.NET Native is still under development, and currently available in preview form for store apps)
disclaimer: I'm on the .NET team (in particular on the VB/C# language team)
Good for them. .NET will probably work better than just shouting "developers, developers, developers!!!"
Open sourcing
If Pandora's box is destined to be opened, *I* want to be the one to open it.
Of course, I saw all the expected arguments, and a lot of "but, Microsoft is the exact same company from 20 years ago, so this must be wrong, evil, etc." Well, companies change. Skepticism is good, but evaluating things as they are is good too.
The .Net ecosystem is a good environment to program in. They have great languages and frameworks. The Python Tools in VS are actually quite nice (they work fine with CPython). It is disappointing that the IronLanguages project has died off, but maybe this will spark some new interest.
And one of the main drawbacks to the platform in terms of target platforms is starting to be addressed in a real way.
It's a pragmatic decision. Microsoft has already benefited from open source projects (ASP .Net MVC, Entity Framework), and this is just an expansion of this. The hardest part will be getting resources to get people to really bang on it on other platforms.
I bet that internally at Microsoft, lots of people are happy about this, as they really do think they did great work and this gives them greater visibility.
I hear it's gettin' cold down there ...
"Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh
I have long ago concluded that on Slashdot success = evil.
Android didn't fork Oracle's Java code, they created it from scratch (they borrowed from Harmony which was from scratch, details, details) with the same API. It is a different set of legal issues entirely. If Google had forked OpenJDK instead, they'd be completely in the clear, but Android would have been GPL licensed instead of Apache2 licensed.
I have long ago concluded that on Slashdot success = evil.
Because more often than not it's true? Market power corrupts, monopoly power corrupts absolutely. Or maybe you should say it's more of a latent behavior in profit-maximizing companies, they simply lack the means to be a market bully until they're successful. Or you're seeing a company in the early phases of an "entice, entrap, exploit" strategy where they act nice and friendly until they got you locked in good and bleed you dry. You might call it good turned evil, they'll call it return on investment and a success. And a tool is a tool, Google used Mozilla to break the IE monopoly and it might have been good for open source and web standards but they were a pawn in a corporate play. And pawns get sacrificed when the goal is in sight, they're not your friends for life.
Of course there are companies that really do stick to making good products and services that the customers like and are happy and willing to pay for, but most sooner or later turn to the dark side. Particularly if they see a downturn in business and is facing cut bonuses and lost jobs, very few businesses go nobly down the drain. And almost anything can be excused with "it's a free market and we're only charging what the market is willing to bear", or at least that's what you say out loud even if you know they had absolutely no real choice in the matter. Particularly in business to business there's absolutely no hesitation or shame in grabbing as much of the other company's money as you can.
Live today, because you never know what tomorrow brings
I thought .NET cached its JIT images. Is this mistaken? If not, what's really new in .NET Native?
JIT has to be done very quickly. Therefore it's purely local (method-by-method) rather than cross-method. Also even within a method it only has time to do simple easy optimizations. NGEN is a way to do JIT ahead of time. But it still only uses the same JIT algorithm, i.e. doesn't do heavy-duty optimization.
Also, .NET Native does build-time generation of interop and serialization code. .NET Native uses the VisualC++ compiler backend, benefitting from its long history of optimizations. All this adds up to massive perf benefits - in some apps, 50% cold startup time improvements, 85% reduction in .NET startup costs.
Wait a second: GP listed reasons why Microsoft was and still is a sociopathic entity, and your one and only counterargument is "I have long ago concluded that on Slashdot success = evil"? Looks like you arrived to the end of your brain, and it was a very short journey indeed.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
This is very good news. ASP.NET is a great web development platform, far superior to the atrocious hack that is PHP. The only reason so far why PHP has predominated is licensing costs: until now, you needed a Windows Server to do ASP.NET properly (or else resort to unsupported hacks like Mono), whereas PHP is free. Now that the playing field is about to become more level, hopefully it will be the beginning of the end for PHP.
You are twisting his words. Ballmer was not talking about Linux, but about the GPL and it's 'viral' nature.
No. You are totally incorrect. Here's the quote, from it source in the Chicago Sun-Times (via the internet archive):
Q: Do you view Linux and the open-source movement as a threat to Microsoft?
A: Yeah. It's good competition. It will force us to be innovative. It will force us to justify the prices and value that we deliver. And that's only healthy. The only thing we have a problem with is when the government funds open-source work. Government funding should be for work that is available to everybody. Open source is not available to commercial companies. The way the license is written, if you use any open-source software, you have to make the rest of your software open source. If the government wants to put something in the public domain, it should. Linux is not in the public domain. Linux is a cancer that attaches itself in an intellectual property sense to everything it touches. That's the way that the license works.
There are shills on slashdot. Apparently, I'm one of them.
Don't trust Microsoft. Never trust Microsoft! Always remember their strategy: Embrace, extend, extinguish!. They are attempting the first step EMBRACE by slipping their tools into Linux like a Trojan horse virus. DON'T USE THIS .NET TROJAN. Get it out of Debian free and place it back in nonfree where it belongs.