Hacker Newsnew | comments | show | ask | jobs | submit login
Microsoft Open Sources C# Compiler (codeplex.com)
1374 points by keithwarren 514 days ago | 446 comments



They also announced as part of this that they are putting a large swatch of their .NET Source code under Apache 2 and accepting pull requests.

Folks, this is a very big deal for Microsoft. Who would have imagined this 10 years ago?

Here is an image that shows what they are putting into the community https://pbs.twimg.com/media/BkT9oBcCQAAHIAV.jpg:large

-----


Well, here we are then. This now officially the standard play for formerly-dominating computer-platform firms who have fallen on hard times: having before been proudly hard-nosed and proprietary, publicly see the light and present a new image as a new, kinder, gentler company which totally gets it about openness. Former famous examples: IBM under Lou Gerstner (we love Linux and open platforms!), Apple after the NeXT acquisition but before the iPhone (look how expandable our new PowerMacs are; on the software side, we're now an open-systems-loving Unix vendor, and we'll even open-source our kernel!), poor old SGI (we love Linux now! Or, wait ... actually WinNT, whatever.). Sun of course used to go back and forth between being chill dudes who totally get it and more nakedly hard-nosed. As always in these cases, the questions are how far the bright new era of glasnost actually goes in substance (IBM legal's patent monster quietly thrived through all the kinder-gentler period) and how long it lasts (these eras tend to end with the company either dwindling into irrelevance, or finding renewed success and going back to its bad old ways).

-----


Having followed a fair number of MS bloggers/podcasts currently in and around their web tools (ASP.NET, MVC, etc) teams... I honestly believe they understand the value of open source.

Visual Studio and their MVC framework continue to impress me (I mostly work in Ruby today, but have to maintain some .NET stuff) and MS takes inspiration from successful open-source tools and frameworks where needed. Many of their recent advancements over the last 3-4 years have clearly been the work of engineers who enjoy and value the best of the open source world.

I'm not trying to tell you that Microsoft is suddenly our warm, fuzzy friend. As even Scott Hanselman would gladly admit, they're ultimately trying to sell you software licenses or Azure services.

But it seems to me that they're using open source the right way in order to achieve that goal, as opposed to the bad old "embrace and extend / embrace and extinguish" days at Microsoft.

Whether or not Microsoft has earned another shot with us or not is definitely up for debate, and with all the cool shit happening in the open source world it's probably even a moot point to an extent.

But they're definitely doing more than cargo-culting in Redmond these days.

-----


I think one would be exceedingly foolish not to exercise the very greatest of caution. This is Microsoft we're talking about - they have a track record of profound fuckery.

But I do indeed think this is better than not having happened.

-----


Yeah, I think that's totally fair to say.

I wouldn't place bets on any strategy that relied on Microsoft not closing the doors again at some point in the future, on future versions of their development stack.

Like you said, though, this is better than not having happened.

-----


I don't see why they would. This has been an obvious move for a long time, keeping it closed never really made any sense to me. They gained nothing from .Net being closed except hate and utter avoidance from people like me (vocal early adopters.)

MS doesn't really make money off C# or .Net directly, they make money off the windows licenses you need to run the resulting code.

Open C#/.Net = stronger, longer lasting community / free improvements = more users = more licenses.

It also has other side effects like fostering [more] open source frameworks/plugins for their platform, which again, strengthens their position.

-----


> MS doesn't really make money off C# or .Net directly, they make money off the windows licenses you need to run the resulting code.

On this page: http://techcrunch.com/2014/04/02/microsoft-updates-visual-st...

There is this quote:

Microsoft also today announced that Visual Studio 2013 has sold over 3.7 million copies since its release less than five months ago. That makes it the fastest-selling release of Visual Studio to date.

Based on those numbers and the fact that Visual Studio prices range from about $1,000.00 for VS Professional up to $13,000.00 for VS Ultimate, I'd say they make quite a bit of money of C#, .Net (and of course C++ as well).

-----


I payed $99 for VS2013 Professional, as did many others. Which is probably a key factor in why it is the fastest selling release.

-----


At $100.00 a pop those sales numbers would still indicate VS generated sales revenue of $370.00 million.

My guess is the actual revenue figures are probably in the $1B to $2B (B = billion) range, which isn't too bad for a product that I'm sure Microsoft doesn't consider one of their big money makers and a product line that I'm sure they also subsidise with income from sales of their other products.

I too suspect Microsoft looks at VS as an essential, break even product, but with sales numbers like that I can't believe they aren't also making a nice little profit from VS.

-----


How did you get it so cheap? Is it an educational one that has restrictions on releasing applications produced with it?

-----


Looks like there was an MSDN deal for upgrades from VS 2012 (expired on Jan 31, 2014 though).

http://channel9.msdn.com/Forums/Coffeehouse/The-99-VS2012-Pr...

-----


$499 is pretty good value over a year as well I found!

-----


VS has been around a lot longer than C# and although anecdotal I would hazard a guess to say the majority of those sales were at massive discount to schools and universities not to mention there is no way they would get 13k a pop in other countries.

Like I said they dont make money off the language or the framework directly it being open source will certainly not hinder or hurt their vs sales. It will most likely increase them.

-----


Well, that's not making money off C# and .NET directly - it's IDE sales. Btw, I worked on VS Express (in a commercial environment) for a long time.

-----


Those sales also include MSDN You can buy VS 2013 right now, without MSDN for around $400.00. Still pricey IMHO. But no where near the 1k price-point you referenced.

-----


Impressive numbers.

VS2012 was shockingly bad. VS2010 users who dodged it were now 2 releases behind.

-----


Curious, what was so bad about 2012? I could barely even tell the difference when upgrading to 2013, aside from the addition of the nifty Peek Definition feature.

-----


I wouldn't call 2012 terrible, but 2013 seemed a marked improvement to me. Little features and enhancements were sprinkled all over the place. Better Blend functionality is one enhancement I've noticed.

-----


I am still using VS2010 at work. What was bad about VS2012?

VS2010 does keep me from using C++11 features, but that isn't a massive problem.

-----


We are using VS2012 at work and it works like a wonder. Am I missing something?

-----


Releasing .NET sources could help Mono development and ultimately lead to .NET world not being locked to Windows (at least on servers, you'd still want Windows for Visual Studio when doing development)

-----


A Mono developer should avoid looking at the .NET code at all costs. That would only set them up for patent law suits.

-----


Unlike GPL2, the Apache license has an explicit patent grant. When I first saw this announcement, I didn't realize what effect it will have on the patents used to bring up any chance they got: they join the patents already available under various approaches (due to C# standardization or the Communit Promise). And I believe you can now avoid the goofiness of all end users explicitly needing to accept the Community Promise.

-----


The .NET reference source is licensed in a way that Mono developers can look at it without scratching their eyes out afterwards.

-----


And IBM were saints in the 60's and 70's.

I know a lot of people who went to work for MS after the .com crash in the 2000's. All of them went in with the attitude that MS needed to get religion on standards and open source. Seems to me that some of this is paying dividends now.

-----


> This is Microsoft we're talking about - they have a track record of profound fuckery.

They have a bad track-record, but not in terms of "this team" (known as Devdiv). They might have gotten all uppity about IE, Windows or what-have-you - but the .Net team had a relatively quick epiphany about open source. Look at Mono.

Java is always touted as a "more open" platform, Microsoft-haters have no issue spewing falsity that the Microsoft encumbrance is a big risk - however, so far as the framework track-record goes, Microsoft has a "community promise", an ECMA spec and has given Mono unit tests for Moonlight; Sun/Oracle has a track record of aggressively pursuing copyright (the recent spat with Google/AOSP).

I'm not saying that Java sucks, or that people shouldn't use it. I'm just saying that a lot of people need to have a hard look at how much time they spend trying to mud the name of a company trying to make a turn. These opinions are antique.

It may change in the future given new governance in those corporates (just as the e.g. Java, NodeJS situation may change), but as of now and as far as .Net FX goes: Microsoft is likely one of the best living examples of how things should be done.

-----


>This is Microsoft we're talking about - they have a track record of profound fuckery.

Any examples? Besides "bundling IE with the OS and pressuring some OEM vendors back in the nineties"?

-----


1. Internet Explorer standard compliance : Internet Explorer has introduced an array of proprietary extensions to many of the standards, including HTML, CSS, and the DOM. This has resulted in a number of web pages that appear broken in standards-compliant web browsers and has introduced the need for a "quirks mode" to allow for rendering improper elements meant for Internet Explorer in these other browsers. [http://en.wikipedia.org/wiki/Internet_Explorer]

2. SCO versus Novell : On March 4, 2004, a leaked SCO internal e-mail detailed how Microsoft had raised up to $106 million via the BayStar referral and other means.[60] Blake Stowell of SCO confirmed the memo was real.[61] BayStar claimed the deal was suggested by Microsoft, but that no money for it came directly from them.[62] In addition to the Baystar involvement, Microsoft paid SCO $6M (USD) in May 2003 for a license to "Unix and Unix-related patents", despite the lack of Unix-related patents owned by SCO.[63] This deal was widely seen in the press as a boost to SCO's finances which would help SCO with its lawsuit against IBM.[64][65] [http://en.wikipedia.org/wiki/SCO%E2%80%93Linux_controversies]

3. Patent troll : [http://gigaom.com/2014/01/21/cable-industry-sues-apple-backe...]

-----


>* Internet Explorer standard compliance : Internet Explorer has introduced an array of proprietary extensions to many of the standards, including HTML, CSS, and the DOM. This has resulted in a number of web pages that appear broken in standards-compliant web browsers and has introduced the need for a "quirks mode" to allow for rendering improper elements meant for Internet Explorer in these other browsers.*

For one, this wikipedia page is incorrect (shocker, I know). The "quirks" mode has little to do with "proprietary extensions" in IE, and more with stuff like incompatibilities due to MSs early adoption of standard syntax that later changed.

Second, all browser vendors have introduced "proprietary extensions". Heck, Javascript itself was a proprietary Netscape extensions, as were tons of other stuff we take for granted now. Oh, and this AJAX thing? It started as a proprietary IE extension. Not to mention the Canvas and CSS animations (which started as proprietary Safari extensions).

2. Seems legit (if another example of "ancient history", that didn't even matter in the end).

3. The consortium that had those patents seems to include all major players (even Apple, Blackberry, Sony et co). So not really singling out MS in this.

-----


>Internet Explorer has introduced an array of proprietary extensions

You mean things like XMLHTTPRequest?

-----


I would also add that Google, Apple, Facebook and others are hardly without their track records of "profound fuckery"... and yet it's only Microsoft for which the knee-jerk reaction to any bit of news seems to be "it sucks."

-----


Oh come on, did you miss the huge backlash when fb took over occulus rift? And Google get a lot of shit for closing much used and loved services.

But Microsoft wanted to remove the open web, in favour of all their proprietary services, such as Active-X. Places like South Korea foolishly followed the MS paradigm, and they are suffering for it now. Microsoft wanted to control everything, and kill Linux and over open source projects by spreading FUD.

-----


So not dissimilar to https://en.wikipedia.org/wiki/Google_Native_Client ?

-----


Sharply dissimilar.

-----


> by spreading FUD

Refers to this, if anyone was not aware: http://en.wikipedia.org/wiki/Halloween_Documents

-----


Start here: https://en.wikipedia.org/wiki/Halloween_Documents

Continue here if you feel extraordinarily ambitious: http://www.groklaw.net/staticpages/index.php?page=2007021720... (Comes vs. Microsoft)

-----


Damn, give it a break those Halloween Documents were over 10 years ago. The pricing thing is one bit, Microsoft hasn't really been too shy about that, but neither has Intel. The whole bundling of IE - how else did you expect someone to browse the web? I don't get it. People don't want IE in Windows yet can never give an answer of how people will get anything else. Then Microsoft has to give people choice. Such a vocal minority.

-----


10 years ago Microsoft was unlike any other big company because of their stronghold on personal computing - being able to use their monopoly on one market to crush their competition in other markets and they did so repeatedly. Startup founders for example always had to take into account the "Microsoft problem".

I don't blame them for bundling IE in Windows, not bundling a browser would be foolish and you can say that Microsoft bundling IExplorer in Windows is what made the web so ubiquitous - I blame them for (1) not making IE cross-platform, which meant that alternatives like, Mac OS, Linux, OS/2 suffered for years because the web was optimized for IE - actually IExplorer was released for Mac OS but it wasn't the same, which made the problem worse as it stopped alternatives for awhile, (2) promoting Windows-only technologies like ActiveX, still in use by many online government services in many countries and (3) after they crushed Netscape with IExplorer 5, which was really good technically speaking, they completely halted the development of IExplorer and of the web in general. IExplorer 6 was a cosmetic release, after which the team was dissolved, many of the members ending up working on Silverlight and other such bullshit. Not mentioning web standards here because the web standards were whatever IExplorer was doing, 10 years ago.

In so far as forgiveness for mistakes that happened 10 years ago - dude, many of us don't have a short memory and many of us don't forgive so easily, not when we aren't seeing signs that a company changed. I'm happy for these recent announcements - it seems that there is interest amongst the upper management to change things, now that Ballmer is gone. And Roslyn (with F# before it) - are the first projects of any significance that they are open-sourcing and F# is finally accepting contributions from third-parties.

But lo and behold - Microsoft is choking Android with patents infringement threats, because obviously, when you can't innovate, you can always litigate, especially when you have a war chest that was built starting in the early eighties. I don't hate patent trolls as much as I hate big companies that are becoming obsolete and with stuffed legal departments that sit on their asses all day thinking of how to "monetize" their bullshit IP, that was built on top of prior art in a time when software patents weren't the norm mind you.

So I'll forgive Microsoft the day they stop threatening and litigating and strong-arm their way into new markets. And don't think that I'm not seeing what Google and Apple are doing. Neither of them resemble the companies I fell in love with years ago. And they should pay attention to Microsoft, as public trust once lost is very hard to regain.

-----


You're right about the Mac OS IE version not being the same. It was far better than the Windows one!

-----


It may have been, but it was dropped on the floor, which happened after Mac OS was using it as the default browser as part of their 1997 deal with Microsoft, to be replaced with Safari in 2003 - pretty late IMHO.

This year's technical excellence can be next year's pain in the ass, as seen with IExplorer. And I don't understand why they haven't open-sourced IExplorer yet.

-----


Shame it was dropped. I am not sure many people would use it now on Mac, given its less than stellar reputation on Windows (although possibly this reputation only exists in nerdy circles and not with the average "normal" computer user).

Safari has always been mostly OK on the Mac (although I tend to use Chromium instead) but on the iPad it crashes a lot for me.

It always makes me laugh the shouts of "NOO!!!" and general disbelief at the Mac conference when IE was announced. The sky was falling. It fell and became glossy and shiny and Apple lives.

-----


Yeah. I get so mad when the default Ubuntu install gives me Firefox. Sure I can always just immediately use FF to download another browser, but it is so anti-competitive! Such monopoly!

Seriously though, you have to have an initial browser to be able to get the browser you want. Of course a company will make that initial browser the one they make themselves. I've never understood the outrage over this.

-----


I had no idea that Ubuntu made firefox an integral part of Ubuntu and that you couldn't remove it. Or other browsers wouldn't run as well as firefox on ubuntu. Geez, maybe Ubuntu really is like Microsoft! Huh, thanks for that.

-----


I don't remember other browsers running less well than IE just because it was built into the OS. If anything, I've always remembered 3rd party browsers running quite a bit better.

Not certain if Ubuntu has a browser built in, but I would say that in this day and age, if GTK+ doesn't have any native components for rendering HTML then that would really stand out. It's considered an essential feature on every other platform's GUI toolkit. Just try removing WebKit from Android or an Apple OS, or pulling Gecko out of a Firefox phone.

The last exhibit would be Microsoft scrapping their plans to ship a version of Windows 7 that didn't include IE. (Though I imagine the rendering engine would still be needed - gotta display help files somehow, after all.) Turns out manufacturers didn't want to carry it, because nobody wants a computer that ships without a web browser anyway.

-----


They forced PC vendors to not include Netscape, in addition to bundling IE and placing it on the desktop.

-----


>> The whole bundling of IE - how else did you expect someone to browse the web?

Requiring IE to download Windows Update is never acceptable. Everybody likes to hate Windows Vista but here is one thing Microsoft got right in Vista (and beyond).

-----


How about the fake incompatibility between DR-DOS and Windows?

How about bankrolling SCO's lawsuit?

How about all of the patent shakedowns (Linux, Android, Rockstar, ...)? And their new pro-software-patent advocacy group?

And that's just off the top of my head.

-----


"Microsoft had previously been in discussions with Stac to license its compression technology, and had discussions with Stac engineers and examined Stac's code as part of the due diligence process. Stac, in an effort led by attorney Morgan Chu, sued [1] Microsoft for infringement of two of its data compression patents, and won; in 1994, a California jury ruled the infringement by Microsoft was not willful, but awarded Stac $120 million in compensatory damages" [https://en.wikipedia.org/wiki/Stac_Electronics]

"Judge Thomas Penfield Jackson issued his findings of fact on November 5, 1999, which stated that Microsoft's dominance of the x86-based personal computer operating systems market constituted a monopoly, and that Microsoft had taken actions to crush threats to that monopoly, including Apple, Java, Netscape, Lotus Notes, RealNetworks, Linux, and others." [https://en.wikipedia.org/wiki/United_States_v._Microsoft]

-----


https://en.wikipedia.org/wiki/Criticism_of_Microsoft

https://en.wikipedia.org/wiki/Windows_refund

As well as constant attempts to subvert emerging open standards, sabotaging patent reform, patent protection racket and etc. and etc.

-----


This guy's exhaustive narrative covers most of the egregious things from the early years: http://www.vanwensveen.nl/rants/microsoft/IhateMS.html

There've been plenty of others since, most notably related to being pro-software-patents and using them to shake down Android OEMs, making threats and creating FUD about Linux, and using exclusive contracts and their leverage on OEMs to ensure that Linux on Netbooks failed (and were hobbled with artificial specification limits, etc.) and that ARM-based notebooks (running Linux) were dropped by vendors like Pegatron and Qualcom despite being highly popular when debuted at Computex... http://www.trustedreviews.com/news/ARM-Powered-Pegatron-Netb... or http://liliputing.com/2009/06/pegatrons-arm-based-netbook-at...

Personally, I've despised Microsoft since I lived in Seattle (doing research in the building next to the Mary Gates wing of the UW Hospital) prior to moving to New Zealand.

-----


How about this document http://www.ecis.eu/documents/Finalversion_Consumerchoicepape...

-----


I think you have to define "they" here when you say "they understand the value of open source."

There are a lot of people at Microsoft who really do understand the value of open source. When I worked there ten years ago, there were plenty who did. When I wrote interop papers as an outside consultant in 2007, I worked with a unit that did.

But Microsoft also has a bunch of real problems that make it hard for them to realize this value, and so their options in going into it are somewhat limited. They can't pivot and become a services company because their whole Microsoft Partner network would be turned upside down. So they enter services in some key areas where their partners can't. It's a very delicate process, and it means for many on the administration side, the value of open source software for Microsoft is not as high as it would be for some other firms.

Nonetheless this is huge. Open sourcing the VB.net/C# compiler effectively means the possibility of an Linux port, which means that .net has the possibility to become write once, run anywhere even if the whole class libraries are not open sourced yet. This is a gamble for Microsoft because it reduces the barriers to moving from Windows to other platforms (Linux, OSX, BSD, etc).

-----


Outside of my 9-5 work, I've probably deployed nearly as much C# code (via Mono) under Linux as I have under Windows. In a few ways it's been very nice, in others a bit frustrating. I think that if MS Dev-Div buys out Xamarin, we'll see where things are really headed here. It will either be a new era of OSS tools from MS, or back to the old "kill it for cross platform in v.Next" ...

I'm hoping that the tooling and integration gets a lot better in *nix, but nod sure how the Mono license (MIT iirc) and this new C# license (Apache) will jive together.

Personally, most of my new dev for the past couple years has been in node.js (which has its' own niceties and quirks).

-----


> I'm hoping that the tooling and integration gets a lot better in *nix, but nod sure how the Mono license (MIT iirc) and this new C# license (Apache) will jive together.

The MIT license is a lot more permissive than the Apache license. However I see no reason that you can't have different components under each license which work together harmoniously. If nothing else, the MIT license can be easily changed without consulting other contributors because of the sublicensing grant.

-----


It's obvious to me that they see their future as providing an integrated toolset between development and the cloud. They want to build tools that let you push code direct to Azure, and they're becoming more agnostic about whether or not that is a microsoft stack code or other code.

They renamed it from Windows Azure to Microsoft Azure to remove the windows connotaiton - specifically mentioning that 15% of all Azure deployments are Linux OS. So I would say that this is where they see the future, although there are still some very byzantine sales processes to go through to buy enterprise azure, because of the existence of the partner network. In that sense, they're almost like the car manufacturers forcing you to buy through a dealer for their direct-to-consumer products.

-----


Well, I'd like to see Visual Studio for Linux with support for Java, Scala, Clojure, Haskell and other non-Microsoft technologies. That's my wishlist in this bright new era of Microsoft openness.

I don't like Microsoft but Visual Studio is the only IDE I've ever tried that is substantially better than gedit/jedit. The auto-completion (intellisense) is just delightful to use.

-----


Is Visual Studio auto-complete significantly different from IntelliJ or Eclipse? There are many great editors an the continium between gedit and Visual Studio, such as Sublime, hell even vim and emacs have autocomplete plugins.

-----


Microsoft does great work in researching static code analysis, I only remember their auto-complete ten years ago for C++ code and it was miles ahead of anything else. It pops up in just the right moment and it just feels like a genuine "code assistant" instead of just an auto-complete. Unfortunately I don't really trust MS with developing great OSX software (see MS Office for Mac) so I'm not sure I'd want Visual Studio. But if they could pull of a proper port, it would be awesome.

-----


Excel for Mac doesn't have the "Evaluate Formula" function and the Name Manager is crippled... (to name a few issues) Makes it really hard to do complex and robust development.

-----


The auto-complete is truly wonderful. XCode's isn't too bad (but does anyone know how to get it to pop up the parameters in a function, same as VS Ctrl-Shift-Space????) but the real stinker I had to use was Borlands Codegear 2007. That whole think was rubbish and engaged in colossal disk-churning for auto-complete. The linker crashed and the IDE was buggy as anything. A shame.

But VS auto-complete was a breath of fresh air afterwards.

-----


If you haven't already - try AppCode out, it's superior to XCode in so many ways, and the functionality you've asked for is there (Ctrl+Shift+P).

-----


I really want to like AppCode but I just can't deal with the non-native java UI

-----


I totally agree. I never pay for Java apps.

-----


MS Office for Mac is pretty well done IMHO

-----


While I really like using MS Office 2013, I just can't use MS Office for Mac. It doesn't seem to integrate with the OS very well. I hope that the next version is better - hopefully retina screen support

-----


MS Office for MAC received retina support in one of the last updates. Try updating your suite.

-----


I agree, it's painfully slow for anything but simple tasks. My former company (in)famously does everything in Excel (including Gant and flow charts), and being the only guy with OSX the load times were terrible, the UI sluggish and it crashed often. I was really quite surprised how snappy the UI was when looking at a coworker's windows box.

-----


It's fuzzy and instant. If you type "flow" it will treat it as if you searched for "stream". You don't need to know what things are named. You just search for what you think it may be and 9 times out of 10 intellisense will find what you're looking for. It's like having Google doing autocomplete for you.

-----


I can't speak for IntelliJ (can never get the damn thing configured correctly), but Eclipse's autocomplete leaves a lot to be desired. This may be configurable, but my experience has been that it's finicky about when it will trigger.

I appreciate Eclipse's openness (and I tend to work with open source languages), but I must admit that purely examining the quality of the tool, Visual Studio is leagues ahead.

-----


And Erich Gamma moved to MS three years ago...

-----


Yup, part of the visual studio team. For others, watch him describe Visual Studio Online to Scott Hanselman on Channel 9.

http://channel9.msdn.com/shows/azure-friday/erich-gamma-intr...

MP4 hotlink: http://media.ch9.ms/ch9/793e/d1b6ebda-d31b-413e-983e-1c698a8...

-----


C# support in IntelliJ would be a dream come true!

(yes, I know about ReSharper - but that's just lipstick on a pig)

-----


Pig? VS is considered one of the best IDEs out there. On par, if not better than IntelliJ.

-----


If it was better, it would not need ReSharper.

-----


I use both on a daily basis, and VS + Resharper beats the crap out of IntelliJ, IMO. My opinion might be different if I had to pay for my licenses, but independent of cost, VS wins.

-----


I'd rather see C# across the board and write once run anywhere (eg release a linux distro with .net support built in).

-----


I'm fairly sure Mono is installed by default on Ubuntu. I'm not sure what happens to Windows Forms or WPF code in that case though.

-----


Wrong. It was default for a while until it got finally removed in Ubuntu LTS 12.04

But, you can easily add it back if you want to use a program that uses it (i.e. Gnome Do)

-----


> Well, I'd like to see Visual Studio for Linux with support for Java, Scala, Clojure, Haskell and other non-Microsoft technologies.

Which is exactly what you can now create using the Roslyn technology that is now open sourced. Add these languages and they will get all the fancy support that Visual Studio provides, like (remote) debugging and code completion.

-----


Perhaps the lieutenants and the rank and file are less afraid of having a chair thrown at them nowadays followed by a firing. And given that the new CEO is from the Azure team it seems like he should know the value of this kind of step.

I mostly feel sympathetic to the engineers working there. It's no fun living under an embarassing dictator.

-----


There's a reason why Visual Studio continues to impress you.

I once saw a presentation of the Visual Studio lead in Belgium, where he claimed that there were over 1200 people involved in the Visual Studio project.

If that's true, i don't think there is any IDE that can top that number and it explains why Visual Studio is the best tool for (almost any) job.

People should realize that Visual Studio is not solely C#, it's NodeJS, PHP, Mono, Python and so much more in one environment.

-----


Any developer worth his/her salt understands the value of open source these days. Keep in mind that these engineers don't actually run the business.

-----


I don't know, I see this as a good sign but for me it's still "too little too late". At least release it under a copyleft license, make it usable with previous versions of Visual Studio (it only works with 2013) and I'll feel more confident that you aren't setting a trap.

Non-copyleft licenses can easily align with the "embrace, extend, extinguish" strategy. The value of .NET for most developers is closely associated with Visual Studio. They can make the next version closed source and have Visual Studio only accept that one and we are back to the same old Microsoft. Sure, you'd still have the previous open source version, but who cares when most people will probably just move on to the next.

-----


> Non-copyleft licenses can easily align with the "embrace, extend, extinguish" strategy.

What? I would think if anything giving everyone else a crippled license while retaining copyright etc yourself that would be an even bigger setup for a EEE.

Remember, MS can do w h a t e v e r they want with that code anyway it is not lke they'd be bound by a copyleft on their own code.

(Unless they also started accepting patches without copyright assignment I guess.)

-----


Exactly. There's a reason why more restrictive licenses are more conducive to dual licensing models than less restrictive ones.

A non-copyleft license effectively means that Microsoft, should they try EEE, has to compete not only with free as in beer and free as in freedom, they also have to compete with all the closed source competition they are subsidizing in this effort.

If you believe that more competition is good, the less restrictions on the code from a big vendor, the better.

-----


Copyleft licenses are more conductive to dual licensing because they give you no other choice if you want to sell a closed source premium version. That's the only reason. And for that to work you have to get copyright assignment.

I think your view is pretty naive. They develop the platform and own the IDE that's synonymous with it. They can keep any other compiler off the IDE if they want that, you would be competing with them at their house, which is doomed to fail.

With copyleft without assignment at least any later version would effectively remain free for all, whether Microsoft wants it or not. You don't have to believe and hope, it's just the way it is.

-----


> I think your view is pretty naive.

You can think what you will about my opinion but it is based on a decade-long career around both BSD-licensed and GPL-licensed projects.

> Copyleft licenses are more conductive to dual licensing because they give you no other choice if you want to sell a closed source premium version.

And the licensor can always decline to sell the license to a competitor though this might be problematic for a big company. The point is that the GPL gives a company control over proprietary spinoffs, while the BSD license does not.

> They can keep any other compiler off the IDE if they want that, you would be competing with them at their house, which is doomed to fail.

Frankly their choice of licensing makes no difference in what sorts of products they can ship.

> With copyleft without assignment at least any later version would effectively remain free for all, whether Microsoft wants it or not.

But the point is that you end up with less competition under a copyleft license because fewer forms of competition are in line with the license. If your fear is against Microsoft as competitor, giving up more rights is better than giving up fewer.

You say you think my view is naive, so I have to ask: how does one both release code under the Apache2 license, a license which allows anyone to change the license and add restrictions when distributing it provided that the license restrictions in that license are met, and adopt an embrace-extend-extinguish strategy. The first two might work ok because one could sell additional proprietary features just like anyone else, but the final one doesn't work because you are competing against yourself if you do that.

-----


> I think your view is pretty naive.

Did you take a quick look at his comment history before posting this statement?

-----


Well, I was surely thinking about the option without copyright assignment. Everybody giving assignment to Microsoft? Yeah, that's a bigger and much more obvious trap.

I don't understand what was so upsetting about my previous comment thatgot so many downvotes. Microsoft has a history of being hostile to FOSS. I will agree that they have changed their attitude when they make a serious effort to assure us that there aren't potential traps in this move. Otherwise I'll say thanks but no thanks.

-----


> I don't understand what was so upsetting about my previous comment thatgot so many downvotes.

Didn't downvote but I think the ones who did did so because they found your comment misleading. I happen to agree with them but chose to explain the reasoning behind it instead of downvoting.

Read einhverfr's comment again, espescially the "the less restrictions on the code f r o m a big vendor, the better.".

See, some of us has had to work within and around various funny and not-so-funny licenses for years. Both commercial but open source as well..

-----


Thank you. I think I understand what you say but I simply disagree. einhverfr worked at Microsoft but it's fallacious to think that his view can't be naive because of that.

For me copyleft without assignment is the safer choice, the others depend on future goodwill or a view of the market self-regulating which I don't see happening with such a big gorilla. After the clarification about assignment, I don't see how it's misleading or wrong in any way. If copyleft licenses can be abused in certain situations it doesn't mean non-copyleft ones can't or are the better option here.

I'm interested but worried about the long term viability of this free compiler. I don't want to depend on Microsoft getting the value of FOSS or not. They can give guarantees today that even if they change their mind tomorrow they can't go back in this decision.

I know copyleft licenses can be a pain and that they have problems on their own. I use GPL and LGPL software daily, so I know it. But those issues are orthogonal to the one I'm talking about here (the guaranteed free access to future versions to the community).

And sorry but unless we are talking about another software giant, there's simply no way Microsoft could feel threatened about a third party version of the compiler which works on their framework which is used by their IDE on their OS. They either don't mind what you are doing, will replicate it easily or if everything else fails will keep you away from their framework or IDE.

But I'll shut up as my opinions are continously downvoted by some who can't be bothered to explain even why. I saw some perfectly reasonable comments by einhverfr downvoted too, so it's not just me. I feel HN is becoming toxic. Thanks anyway for the response.

-----


I'm sure I'm guilty of some logical fallacy or another here, but isn't responding to customer demand one of the core things espoused by the startup community? A big company does exactly what we're all saying is good for companies to do and everyone is up in arms with "TOO LATE M$" and the like (apologies for paraphrasing, and this is directed at several comments, not just this one). This is the kind of thing we WANT to see from big players, and while it's easy to say "close but nope", they do offer it up as "this is the direction we're going", and not "fine, this will have to do to shut you people up." Top MS dev team members have long been about open sourcing things, and I for one think it's awesome to see the company as a whole listening to it's best people, and the community that enables it.

-----


Well, I certainly can't speak for the startup community, as I'm more strongly affiliated with the screwup community myself. ;) But no, I'm certainly not dismissing MS's new direction: it seems to be fairly genuine, and (some lingering patent/EEE concerns aside) good news, just as IBM's support (in various ways) for Linux or Sun's eventual open-sourcing of Java were good news. I'm all in favour of a kinder and gentler MS (as far as it goes and as long as it lasts). And I'm certainly not singling them out either, as the list of comparisons shows.

-----


Just for clarity, EEE refers to Embrace, extend, and extinguish -- a Microsoft strategy as discovered by the Department of Justice -- "for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences to disadvantage its competitors"[0]

[0] https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish

-----


I don't think it's particularly fair to lump Apple with the rest since 14 years later [1] the core OS is still open source [2], and they're actively working on several high profile open source projects (e.g. Webkit, CUPS, and clang). They're not exactly irrelevant either.

[1] http://www.apple.com/pr/library/2000/04/05Apple-Releases-Dar... [2] http://opensource.apple.com/

-----


Yes, although I could pick nits about the significance of each of these (Webkit being open source is somewhat less significant that it appears since web browsers nowadays are de facto somewhat unforkable; the open-sourcing of clang was partly or mainly an attack on the GPL). But while Apple's continued doing many of those things (and done some similar things like GCD), they've also started doing other things they weren't doing back in 1999 or 2003, like breaking new ground in walled-garden application platforms and aggressive use of patents. The iPhone has never been as open to non-native apps as desktop OS X, while even desktop OS X's support for them is declining. (That's especially significant if you take the post-PC-era viewpoint and see phone/tablet devices as displacing or succeeding the PC rather than just supplementing them.) So overall Apple fits the mould pretty well.

-----


Not to mention the fact that webkit itself is a fork of khtml - so while apple's contributions are clearly valuable, it's quite a different story. If apple had not open sourced webkit, given its origins, that would have been resoundingly bad PR at the time.

Apple built on oss foundations, and most of what they've open sourced is simply a result of them not closing forks of once open projects, which is very valuable, but nevertheless less impressive that releasing important bits of their own making.

-----


Darwin was based on NeXT, which as far as I can recall, wasn't open source before Apple opened it. While a number of the userland tools were (and are) open source, I don't recall the kernel being open.

There's also things like the streaming server which as far as I can tell was strictly an Apple project. I think libdispatch was also strictly an Apple project.

-----


I mean it's based on Mach and FreeBSD both of which are open source.

-----


True they're open source. One of the lead developers on Mach was Avie Tevanian who went to work at NeXT after he left CMU. It was later that components from FreeBSD were included.

-----


None of them should be lumped together. There's no evidence that open-sourcing is a "standard play" demonstrative of anything as specific as what leoc claimed or with predictive power. That list of companies seems to demonstrate the opposite, in fact.

-----


> That list of companies seems to demonstrate the opposite, in fact.

How do you reckon that?

-----


Apple took advantage of things that were already open source. How many innovative, profitable programs has it developed itself and then made open source?

The fact that the core OS is still open source doesn't actually mean much when there's a huge layer of proprietary code on top, does it?

-----


The Darwin Streaming Server for one. There's also the Apple Lossless Codec. Plus, they're heavily involved in work on LLVM and have been for quite some time. Lastly, There's Grand Central Dispatch (libdispatch). Plus, WebKit is quite far from it's KHTML roots.

-----


Doesn't sound like much for the worlds's most valuable company with $150 billion (or whatever) in the bank.

As for the Apple Lossless Codec, it open-sourced a failure. It would have been much better for everyone if Apple had just supported FLAC.

-----


Like Android these days...

-----


Given that all of those are already open sourced, do you know how bad it would look to close source them now? Especially Webkit/KHTML - that would be a PR disaster. I don't keep track of what Apple does - have they open sourced anything within the last few years? If not, I think they fit right in with the other companies.

-----


Grand Central Dispatch[0] is the latest (2009) I can think of...

[0] http://en.wikipedia.org/wiki/Grand_Central_Dispatch

-----


"We're going to the standards bodies, starting tomorrow, and we're going to make FaceTime an open industry standard" 2010. Oh yes, that never happened.

-----


Their Clang Arm64 back end as well, among other things.

-----


Apple also open-sourced their boot process software (launchd[0], which was fully developed in-house IIRC.

[0]: http://en.wikipedia.org/wiki/Launchd

-----


Hate to burst your bubble, but the only thing apple has going for them is the iPhone, which is arguably a fad. The reason Rolex never goes out of style is because they never change their style, and apple is no Rolex like a lot of people seem to think. People easily forget about all the hype around the iMac g3. Sure, it changed the company, but they still have yet to over take windows. Now Android is out selling the iPhone because of the business model. No large companies would ever replace current desktops with iMacs except in specialized "labs" where they're needed (mostly for designers). Apple isn't dominating any market. They're not on servers, they're not embedded, they're not on super computers, they're not on mainframes. They're no where, but if you spend your whole life surrounded by graphic designers and programmers and hacker news, they're going to appear to be everywhere.

-----


Only thing Apple has going for them is the iPhone.

And the iPad, which is kicking the hell out of Android tablets (to my consternation, because I'm primarily an Android user and their tablets are terrible).

And the Macbook Pro, which is making pretty major inroads at leading-edge companies. A buddy of mine is working on *nix software at IBM and they asked if he wanted a Thinkpad or an MBP; that blew my mind.

They don't do big iron, but they move a lot of product and very little of it is faddish. They Get It, or have Gotten It historically, and a lot of people respond well to that. They might at some point no longer Get It, but until then, saying that they only have the iPhone going for them is wishcasting.

-----


You're right, how could I forget the iPad, the thing is the business model they have for all of their products is unsustainable. The iPad is doing well now, just as the iPhone did initially, but less and less people are buying the iPhone because the Android environment has had time to develop. Even chromebooks out sold mac books [1] in 2013. A lot of companies allow developers to use Linux too. The fact that people working for large tech companies are allowed to develop for *nix on a macbook is kind of irrelevant. The circle jerk on HN around apple is deplorable, but lets let the down votes commence.

[1] http://www.ibtimes.com/googles-chromebook-outsells-apples-ma...

-----


Are less and less people buying iPhones, or more and more people buying phones? (Not a rhetorical question, I don't know whose numbers to trust for mobile stuff.)

Apple's business is not one that has to own a market to make gobsmacking amounts of money. As such I doubt they see being outsold by Chromebooks as being a serious problem; they've been being outsold in the laptop market forever and are still making yachtloads of cash.

-----


Sales year on year for Apple phones have increased, but at the same time, market share is slinking, since just so much more Android phones are being sold. See: http://www.statista.com/statistics/263401/global-apple-iphon...

-----


Eh, while it may be accurate enough to say that to a first approximation Apple is an iOS company now, I don't think that's an unsustainable thing to be by tech standards. They may not need new triumphs to be very profitable for a long time: think of the golden decade or so MS had after '95 mainly from milking its already-existing successes.

-----


I know Chromebooks outsold MacBooks but I don't think you can compare them. Chromebooks are like disposable cameras. If they are referring to the cheapy plastic things, I wonder if people are buying them as devices to use whilst on the toilet or in areas where mugging is a risk?

Most Chromebooks are glorified phone hardware. Even the one with the whizzbang screen has lousy soldered-on local storage, so it fails as a microcomputer. It essentially is a terminal with a fantastic screen. I certainly wouldn't attempt to use one to develop on (and I mean develop on, not RDP/VNC/SSH to a box elsewhere). Could I write C++ on it for multiple OSes thanks to virtualization on a Chromebook? I know my needs are niche but I don't think Chromebooks compete with MacBooks, even if they look similar-ish and one has outsold the other. Out of interest, have Kindles outsold MacBooks? Would that be the death-knell for MacBooks? Really is comparing Apples and Oranges I think.

-----


My acer c720p has a haswell processor, 4 GB ram and I'm working from ssd right now. You can dual boot into Linux and develop in rails, vim, x-windows is 3d accelerated. Virtualbox, vmware, libreoffice, postgresql, nginx - everything works. Linux is not as shiny as OSX, but it gets the job done.

-----


That's good. I'm not trying to rally for OSX's cause as I develop on all platforms, with Mac OSX only being officially/legally able to be ran on Mac hardware which is why I didn't get a PC for developing on a Mac properly. I did build a hackintosh but found the hardware on MacBooks compelling when I saved up enough.

Do you supplement the internal storage with external? Is it a hassle? My Windows VMs are all 50GB+ so having tiny internal SSD storage is crippling.

-----


This is simply false. More and more people are buying both iPhones and iPads.

And as to sustainable business models - the iTunes Ecosystem alone is a large as half of Google's entire business and is growing faster.

-----


Ah. Apple is doomed. I see.

-----


Chromebook costs 1/10 of the MacBook

-----


> A buddy of mine is working on *nix software at IBM and they asked if he wanted a Thinkpad or an MBP; that blew my mind.

Except, you know, IBM doesn't have anything to do with Thinkpad anymore, and hasn't for years.

-----


"Except, you know," that it's a highly conservative company and offering a line developer a Mac is, in my experience, kind of weird.

-----


True, but I wonder if it is because they are both seen as "high end" laptops? I know that you can go to PC World and buy a £500 device or cheaper models but MacBooks and high-end Thinkpads have always commanded a higher location in the market. If I were to sell my MacBook and get another laptop, I think the only other option would be Thinkpads.

-----


Thinkpad or Macbook? Which did he choose?

Thinkpads are now Lenovo, not IBM. And MacBooks do run official Unix, so it'd make sense. Plus, he can look cool in a coffee shop :-)

(I love my MacBook, but don't use it coffee shops, as an aside.) Your point about iPads is very true. My wife has an iPad and it is joy to use. I have a Motorola Xoom that I really do love using and find very very useful but the standards aren't the same. I know the Xoom is old (some would say ancient) and is easy to develop for but the iPad truly does rule the Tablet waves.

-----


  Apple isn't dominating any market.
You're obviously going by the number of units sold, not the profit share. And you're not technically wrong. But isn't that a little bit like measuring the number of swings a baseball player takes instead of the number of times he gets a hit?

In the PC market Apple is absolutely destroying all comers: 45% of the profit share in 2012. HP, Lenovo, Dell, Acer and Asus combine for the remaining 55%. (I couldn't find numbers for 2013) http://www.forbes.com/sites/timworstall/2013/04/18/apples-ma...

They're dominating similarly in the mobile market. http://www.businessinsider.com/apple-smartphone-profit-share...

I mean, if you want to say their products are crap - that's subjective and we can't argue that.

But if you don't think they're doing incredibly well in their key markets, that's diametrically opposed to the truth.

-----


Profit share is a poor measure because it's reliant on expenses, and those are notoriously easy to massage - companies do that routinely for tax purposes. Who's to say what's a cost and what's an investment?

If you must, at least attempt to include accumulated value as part of the equation - so that "fake" costs that are actually investments appear as increases in company valuation. Of course, this still looks good for apple :-), but given the volatility of share prices and what that says about how easy it is to determine "value" it should be clear that the one thing these comparisons cant' be is clear.

-----


Market share matters.

Apple were doing well by profit share in the PC market in the early 1990s when they were as now a bigger company than MS. But because there were so many more PCs out there software developers and hardware manufacturers targeted MS not Apple and then when Apple machines were poor in the mid to late 1990s Apple almost disappeared.

If Android is, say, 80%+ of the market at some point and it's no longer worth making things for iOS Apple and Apple have a generation or two of stuff that isn't that good Apple could be in the same position as they were in the late 1990s and it's unlikely Jobs will be back again to save them.

-----


While this is true I think there are some differences. In particular, an essential sector of the Mac death spiral was people switching to cheaper Windows PCs as soon as they were a good-enough alternative. For various reasons https://news.ycombinator.com/item?id=6496030#up_6498257 I think iOS devices have a better chance of sustaining a lifestyle-brand price premium without losing too many users even if the alternative is broadly good enough.

-----


Judging the success of Apple by its profit share is like judging a baseball player by his salary. I get that if you personally identify with the baseball player and want to see him have a nice life, but I think the most important metric for a baseball fan is the extent to which he helps his team beat the other teams. The only thing Apple wins is the mindshare of relatively wealthy (American) people and an enormous amount of hedge and institutional fund investment. It's an easy buy in an extremely precarious, but bullish, frothy economy and if it tanks it'll 1) start slowly, and 2) you won't get fired, because everybody's doing it.

-----


  The only thing Apple wins is the mindshare of relatively 
  wealthy (American) people and an enormous amount of 
  hedge and institutional fund investment. 
So they're only dominating in terms of profit share in wealthy countries. And also in most if not all customer satisfaction and retention metrics. And also killing it at retail.

But other than that, not dominating at all.

I hope I can achieve this level of non-domination in my lifetime. Seems pretty cushy.

-----


Lambo is dominating the car market by your logic [1]

[1] http://www.lambocars.com/lambonews/lamborghini_among_most_pr...

-----


Wow, no. That is not my logic at all.

Lambo is profitable, evidently, but they have an absolutely miniscule share of the auto industry's profits.

Profits, profit margins, and profit share are related but really distinct things. I hope nobody lets you run a business!

-----


Profit margins != profit share.

-----


I'll get downvoted for this one but they have a similar characteristic as well:

they both catch fire!

I had a 2010 MBP go up in flames and an immediate colleague's one screen went phut and melted. Lambos do this too (google images)

-----


What was the 2010 MBP made from? Do the unibody ones fare better than the plastic models? Were you typing so fast that the keyboard caught fire? Are you Superman?

Answers in order please.

-----


Well mine was made of magic smoke apparently :)

-----


Yeah, the business model sucks, indeed: http://bgr.com/2014/03/17/iphone-profit-share-market-share/

The thing you miss is that lot of people buy shit if it's cheap.

-----


heresy!! Talk badly about apple on HN! people will donwvote you to oblivion!

But really.. Apple is like that competitor that start miles ahead of any competitor, but because of some draconian moves and misteps, they end loosing all of their advantages.. it happen with Microsoft.. now its happening again with Google

-----


Subtle difference: Apple and IBM have made use of free software such as FreeBSD, CUPS, Webkit, etc. Microsoft here is taking core technology and releasing it as free.

-----


Important. Also, Oracle has bought/absorbed free software and slowly suffocated it (lookin at you, MySQL).

-----


InnoDB was Oracles long before Oracle bought Sun (and MySQL with it). If they wanted to hurt MySQL they had that opportunity before acquisition.

-----


Don't forget OpenOffice.

-----


And Ksplice.

-----


Correction: Webkit wasn't some software Apple made use of. Apple created Webkit as we know it. What they DID use was KHTML, a far more barebones web rendering engine used in KDE, that Apple adopted, and turned into Webkit. Webkit as Apple had it (before Google stepped in) was an order of magnitude more evolved than KHTML.

-----


KHTML was licensed under LGPL. Releasing the code was not a choice, but an obligation.

-----


It was a choice to use KHTML.

-----


So? Nobody forced them to pick KHTML in the first place.

-----


How about LLVM?

-----


The raison d'etre for Apple's LLVM-based compiler was avoiding GPL3 restrictions of having to publish source code, it seems. They are frequently laggards in publishing parts of LLVM they care about and think of as competitive advantage (e.g. ARM64[1]), and they seem to not contribute much to parts of LLVM that they don't use themselves[2] (not that I find anything wrong with it, but portraying them as innate altruists is just not gonna fly.)

I would not be surprised if they get worse and worse over time in giving back to LLVM.

In short, Apple publishes free software, generally because they either (1) have to, due to GPL, or (2) feel the gain from the project is bigger than the cost of having to maintain a separate branch, so it makes perfect business sense.

(I am not criticizing that Apple has published free software and that is a good thing in general, regardless of the intent, but to say that they don't have their business interests in mind at all times and they fundamentally care about free software more than Microsoft is simply not true.)

---

[1]: http://www.phoronix.com/scan.php?page=news_item&px=MTY0NzE

[2]: In our own experience developing techniques to uncover more than a hundred bugs in production GCC and LLVM (http://mehrdadafshari.com/emi/paper.pdf), we found GCC folks much more responsive to bug reports than Clang/LLVM folks, of which I draw the conclusion that the project is relatively under-resourced, at least in parts that are less relevant to Apple Darwin x86/64/arm backend.

-----


>In short, Apple publishes free software, generally because they either (1) have to, due to GPL, or (2) feel the gain from the project is bigger than the cost of having to maintain a separate branch, so it makes perfect business sense.

How is that different from any other company? Don't companies release free software when a) they are forced to, or b) they feel they have something to gain?

-----


Apple has made Darwin open source. That, WebKit, and LLVM are pretty core technologies. A good portion of their technology is open. So, it's not just using free software and not giving back.

-----


Darwin is open source but is there anyone here who has actually used it or got a bootable usable machine from it? I mean, can you even run X on it successfully? I never could (didn't try very hard mind you).

The release of Darwin isn't a massive thing I don't think.

-----


There have been several independent distributions of Darwin. The current one is Pure Darwin. http://www.puredarwin.org

-----


There have been several independent ones because they all fail. I don't fully understand the dynamics here, but the inability of the community to create a usefully working OS out of all that open code for over a decade speaks volumes.

-----


I wonder if it is because it never gained enough intertia when Macs are good enough with the Mach kernel etc.? I wonder why the varieties of Darwin didn't catch on?

-----


I think a free software operating system binary-compatible with OSX drivers and source-compatible with OSX applications (through GNUStep) would be an exceedingly compelling product. Which is why people keep trying to make it happen. I don't think it helps that you need XCode to compile a lot of the source that Apple releases, which means you need a Mac.

-----


Isn't WebKit a fork of GPLv2 code?

-----


As with everything in technology, it's far more nuanced that that. See podcasts and articles featuring Don Melton for reasons why...

-----


LGPL. But, it's still a core Apple technology. WebKit is far more popular than KHTML.

-----


> Apple after the NeXT acquisition but before the iPhone (look how expandable our new PowerMacs are; on the software side, we're now an open-systems-loving Unix vendor, and we'll even open-source our kernel!)

Remember that time (well within the iOS era) that Apple claimed that FaceTime would be an open standard for interoperability?

-----


It's my understanding that the original plan for how FaceTime worked was derailed thanks to Apple losing a patent lawsuit.

-----


Which lawsuit was that? I would be interested in knowing which patent they violated, and who the patent belonged to.

-----


See this Ars Technica article,

http://arstechnica.com/tech-policy/2013/08/report-after-pate...

-----


My impression is that this is a result of the changing of the guard (Ballmer's exit). The underlying people (scottgu, etc) have been pushing for open source for many, many years now. And Satya seems to trust these people and thus announcements like today.

-----


Once again the whole KILL MONO FUD was the actions of the Open Source Community in the last 5 years. I never understood how in the world they got this is a trap from everything that was happening.

I don't agree with RMS many times but in this one way he was 100% wrong when he targeted mono.

-----


Microsoft originally only released a specification for V.2 of C# and the Common Language Runtime (ECMA-334 and ECMA-335) - attached to it a promise that they would not sue, iff the framework was "implemented in whole" - which was very vague in that it didn't specify what could be included or omitted in order to make it compatible with other platforms. The clause was obviously added to prevent fragmentation of the platform though - ensuring that it stayed compatible with MS's product, and thus they'd continue to hold control over it.

C# 2.0 is nearly a decade old now - and mono certainly hasn't limited itself to it. Absolutely none of C# 3, 3.5, 4.0, 4.5 was ever released as an open specification or as open source software until now - yet these are the versions mono and everyone was using.

So the "MONO FUD" was never actually FUD, it was legitimate concerns about the lack of openness of the technology. Those are no longer concerns (about this release version) - and we can be glad that RMS et al were "wrong" about this one (When they were in fact, absolutely right at the time.)

-----


Are you referring to this? It doesn't sound like he was trying to kill Mono, he just didn't want to depend on it because of the patent issue.

https://www.fsf.org/news/dont-depend-on-mono

So, five years later Microsoft makes another step in the right direction, and you think he's wrong because he didn't want to risk building the open source environment around something that could go away with a simple threat.

Btw, doesn't Microsoft make more money from Android patents than Microsoft phones? Microsoft does exercise their patents.

-----


Not to mention that in 2009, when RMS wrote that, the TomTom lawsuit recently happened.

http://en.wikipedia.org/wiki/Microsoft_Corp._v._TomTom_Inc.

-----


Speaking of which, have the patent concerns about ASP.NET, ADO.NET and Windows Forms gone away yet?

-----


ASP.NET MVC and Web Forms are licensed Apache 2.0, as id the Entity Framework. I don't think ADO.NET, WinForms, or WPF will go the same route, and I also don't think they need to.

-----


RMS is not part of the open source commuinty. He doesn't advocate for open source. He advocates for free software.

Edit: why the downvotes? If I started a social movement and everyone associated me with a watered-down alternative that tries to silence my views, I would be a little miffed.

-----


You honestly don't get it?

I really like microsoft products and I use them every day, however the business model is too lock people in to their ecosystem so that you have to purchase licenses for their products.

Mono clearly undermines that b/c it allows you to "easily" jump ship to a free platform.

Unless I'm somehow completely misunderstanding their business model - killing Mono just makes business sense.

-----


No, not really. It's clear to me we are moving to a devices and services model. More people writing C# means a broad reach on everything from netduinos to iphones to desktops to the cloud.

* I work for MSFT, on the Cloud.

-----


Any way we can get some clear story on Mono or where the direction is going? Maybe this has already happened as part of this Build event.

-----


Ask Miguel, but it would make sense technically if they adopted Roslyn as a compiler.

-----


Red Hat, for instance, makes a ton of money off the reverse model, where they let CentOS give away their core offering for free (heck, they're even paying people to work on CentOS now), and they make their money off clients who have money and are willing to exchange it for support and such for otherwise free offerings. There's really no reason Microsoft can't do something similar here (and they seem to be trending in that direction, although not quite to the extent Red Hat has) -- a mix of free-as-in-beer and open source tools for a "core" offering, so people can get into the Microsoft developer ecosystem, and a variety of paid offerings on top of that as their needs grow. And the extent of Microsoft's partnership with Xamarin shows just how much Microsoft is depending on Mono for their strategy, it'd be senseless at best to kill it.

-----


You honestly think Microsoft it trying to shift to a RedHat-like business plan? That they'll switch to becoming a support provider?

I think what RedHat is doing is nice, but it's really not on the same scale to what Microsoft does; not to mention that they essentially have no monopoly/lockin - b/c anyone can start doing what they do (ie. start providing support for CentOS).

The synergy of microsoft services is closely tied to their ability to lock in developers and customers. Devs like C#, they write code to run on windows, windows gets more OS-exclusive software, more people buy Windows and Office, etc. etc.

Mono means people can run their C# work on free software, which mean they stop looking any better more appealing than the competition

-----


I mean, they're not going to open source the NT kernel anytime soon. But look at what they're actually doing. They have their Azure cloud services, they have their Visual Studio development tools, they have their new WinRT platform that doesn't have nearly the penetration that their legacy Win32 platform they want to kill has.

So look at what they're actually doing, right now: they're open-sourcing key parts of the .NET platform, and they're partnering with Xamarin to support even more open-source elements that makes the .NET platform appealing to new kinds of developers. So there's a low barrier to entry to getting started with .NET development and getting into that ecosystem. Once you're on the hook, as you grow you'll run into more and more things Microsoft can sell you. Microsoft can sell you their line of Visual Studio development tools, which provide the best .NET development experience. They can sell you Azure hosting for your .NET apps, which will likely offer the best .NET hosting possible (and even if you're not on .NET or are mixed between .NET and something else, Azure is getting very competitive with Amazon and Google). And if you're writing phone and tablet apps for iOS/Android using Xamarin, Microsoft is right there for you to expand your reach by porting to Windows Universal, where you can get your app on Windows 8 tablets and PC, Windows 8.1 phones and the Xbox One. That's Microsoft's vision of the future.

And yes, if you're running ASP.NET on Mono on Debian via AWS, to support your iOS app developed in Xamarin using Xamarin's IDE, Microsoft doesn't really benefit there. But that's also the case if you're running Node.js or PHP on AWS to connect to an iOS app written in ObjectiveC. And people in the former group are still much better PROSPECTIVE customers for future Microsoft endeavors than people in the latter group. (Not that Microsoft doesn't want to sell the latter group stuff too -- look at Azure.)

-----


Put together with this "Parsing Microsoft’s Decision to Cut Windows Fees"[1] It may well be that MS is feeling enough pressure from Android and to a lesser extent linux to give it a go.

1. http://bits.blogs.nytimes.com/2014/04/02/parsing-microsofts-...

-----


Or profiting enough from Android and ChromeOS royalties to see it's a profitable model.

-----


More like they're moving to a combination of Adobe's tooling + Amazon's AWS offerings... MS makes a fair amount of money from MSDN licenses, and if their tools can be used to build/deploy service oriented backends that happen to be easy to deploy on their Azure platform, they still make money when the clients are more Android and iOS based.

They're looking longer term in the face of declining Windows/PC sales, and stagnant phone/tablet sales. It makes a lot of sense to improve/expand the platforms that their tools can target. They do have some really nice tooling, and imho Azure is a bit easier to use for a lot of things compared to alternatives.

It's not perfect, but they definitely have a strategy in place with the future in mind.

-----


Yeah, it always amazes me that MS fans would be using the term FUD to refer to people wary of MS vendor lock-in given that there is plenty of historical precedent for MS using exactly that approach.

This current move from MS suggests that they may not be being evil in this case, and that's great, but it doesn't make people with concerns about MS FUD-merchants at all. In fact, that's kinda insulting - most people accept that past behaviour is a good predictor of future behaviour so being cautious and sceptical about MS was not an unreasonable stance.

-----


I work at Microsoft, in Azure.

What I hear privately from the people I meet who work on the .Net and Visual Studio side of things is consistent with what the company is now saying publicly.

Basically: "We luvvv Mono" :-)

-----


Give Mono 1st class support and you have me willingly locked in into MS.

-----


The KILL MONO FUD was coming from the Open Source community not from MS.

-----


I think you misunderstood the parent. They are talking about the open source community and RMS, not Microsoft trying to kill Mono.

-----


I guess I left out the obvious connection.

It's all part of the same thinking. RMS et al think - not unreasonably - think that this is Microsoft's business plan, so they really don't want the open source community investing their time on a platform they think will get clamped down to work only on a proprietary system.

-----


> Mono clearly undermines that b/c it allows you to "easily" jump ship to a free platform.

You know, I tried that. I've tried to run about 3 .NET programs, written for Windows, under Mono on Linux. They all have had some library that was never part of the "open spec" that, therefore, ruined their chances of running on anything but Windows. The experience(s) put a nice, neat pin on the board as to what "open" meant when it came to Mono. It was a lot of double speak. And it's exactly this long-suffering characteristic about Microsoft that makes people like me take these current announcements with a large grain of salt.

-----


I get pretty tired of writing a bunch of open-source C# code and getting flack for it. I'm glad there's finally no foothold left for the Mono FUD crowd.

-----


Trust takes years to build, but moments to lose. MS has a long way to go.

Not depending on them for anything is, has been, and will be a fine strategy.

-----


Microsoft would never make the moves it does now if not for being scared of becoming less relevant.

Until they really make free enough licenses not only for the core stuff but for the crucial libraries nobody can expect to be off-the-hook of the traditional lock-in.

And even if they do all that, it doesn't mean anybody was "wrong" only that the conditions are changing and allow reconsideration.

-----


> Who would have imagined this 10 years ago?

well, Microsoft used to say that open source software was anti-american, cancer, communist, anti-competitive, etc... yup I think they changed a bit

-----


Thanks for the link! It looks like the same information is also here:

http://www.dotnetfoundation.org/

-----


... as awesome as this is, I'm gonna be That Guy:

No WPF?

-----


WPF is more or less owned by the Windows team. This is all stuff under Scott Guthrie's control

-----


Pedantic: From the job posting that a sibling comment linked, the display tech appears to be under OSG. That means it's actually under Terry Myerson, not Scott Guthrie.

-----


WPF just got some love a few minutes ago - they've got plans for a new release of it by the sound of things.

-----


I have a few WPF 4 bugs that were marked "fix in next version" 3-4 years ago, and then it was announced that there is no next version - i'm in the process of moving off WPF and this newfound love is not going to change anything.

-----


Yes. Good luck to Microsoft trying to be relevant in HTML5 space.

-----


Similar problem with IE for me. I raised a case with gold partner support when IE9 came out as it broke ClickOnce download prompting. Been bouncing back and forth between framework and IE teams ever since.

Result: we now have to ship a .reg file to our clients before we can launch our shit via ClickOnce. That's only 2000 people we now have to hand hold through this.....

-----


Yeah, ClickOnce should go down as one of the bigger dead-end embarrassments, since they torpedo'd installer projects in VS2012.

-----


Why did they get rid of Installer Projects? We are still on VS2010 and although it isn't a massive issue to use a different installer system, it seems a very odd decision. I mean, you are writing apps for their OS using their tools. Why wouldn't you want to create an installer? Daft!

-----


It's because the installer packages stink. WiX is a far better platform.

-----


We know they stink, but it's what a lot of people have spent time working with.

There is no straightforward migration path from vdproj to WiX, either. It's a case of re-writing all of your deployment code (which has already been tested/tweaked/hacked on for years) for no upfront benefit.

-----


It's pretty simple. We used this and it took about an hour on top to adjust our build system to label the packages properly:

http://www.add-in-express.com/vdproj-wix-converter/index.php

-----


WiX is missing all the ease-of-use features it needs to be a non-agonizing process. Deprecating installer packages in favour of WiX would make sense if they provided a migration path and better tooling for WiX.

-----


I've been out of the Windows deployment ecosystem for ages. What's the benefit of using WiX over nsis?

-----


You get Windows Installer packages, so you can deploy applications via group policies, you get other niceties, like pretending an application is installed until it's actually used (and install then), you get proper transaction support during the installation (something I've seen very many NSIS installers get wrong – maybe that has changed, but not cleaning up after yourself if a step during the installation failed is not how to write an installer).

-----


WPF is alive and kicking. I'll just leave this here... https://careers.microsoft.com/jobdetails.aspx?jid=137020&pp=...

-----


Although I sort of understand why, it's a shame - WPF cross-platform would be very awesome, and mono still has no plans to implement any of it, last I heard. Windows forms is just too ancient.

-----


I thought WPF was killed during the whole mess of killing Silverlight, etc. a few years back?

-----


No WPF is still there. XAML is still the basis for windows store apps, and windows phone apps.

-----


XAML != WPF. XAML is a language for object instantiation, thats it. Similar to XIBs in the Apple world.

There are no less than 3 similar but different and incompatible UI libraries that can be instantiated by XAML: WPF, Silverlight (WPF/e), and Windows store/phone (WinRT). WPF is dead like WinForms but the only solution for normal windows apps unless somethings changed with WinRT to make non full screen apps with.

If you have ever tried to develop across more than one of these with a shared code base you will know how frustratingly similar yet how incompatible and different they are. They are not supersets or subsets they are forks.

-----


Windows 8.1.1 allows non-fullscreen WinRT apps.

So yeah, when I said WPF, I meant XAML/WinRT. My main desktop use is supporting WinForms legacy apps so I don't keep up with the new GUI frameworks.

-----


If you want to write a dev tool, WinRT doesn't cut it due to window store restriction and we are stuck with WPF. WPF also contains many features missing in WinRT, which is probably why it's still more popular than.

I'm looking to move to direct2d eventually. I work at a low enough level that this wouldn't be too bad for me.

-----


Why would they do this? The cycle of new frameworks only to be killed again afterwards is frustrating.

Is everything just wrapped around Win32 like MFC was etc.?

-----


One of two basis for Windows Store.

WinJS is the other.

-----


Dumb question: is that the real deal? I see a lot of items, but I don't know how they relate to typical uses of .Net. So I guess my question is more for .Net specialists:

With the code released, can you:

- Run a ASP.Net web server?

- Run a classic C# .Net project better than with Mono?

-----


signs of the new Satya Nadella era?

-----


All this started long ago. Roslyn has been in development for a few years and that was still under Ballmer's leadership. Also many of the other things they're unveiling and open-sourcing now started way before Nadella took over as CEO.

But my guess would be that Ballmer stepping down was sort of symbolic in this regard. With a new CEO it looks more like a "new Microsoft" doing all these things.

-----


Just because they were working on it before doesn't mean that the plan at the time was to open-source those things...

-----


They couldn't have done it that fast. They just couldn't do it while Ballmer was there - not after his anti-OSS rants.

And he knew it.

-----


Big fan of the way Nadella is starting out, Microsoft may reverse the polarity of developers from disengaging back to attracting to Microsoft if they keep this up.

-----


Who would have imagined it 5 years ago?

-----


Who would have imagined it five months ago?

-----


Quite a lot of people actually. These moves have been on the cards for years. Just waiting now for the next big move in the coming months of when they acquire Xamarin.

-----


I was hoping there would be an announcement at Build that they had acquired Xamarin, but that didn't happen. All that was mentioned was that they were a partner that they were working with. Still a possibility in the future though.

The open sourcing of Roslyn can only mean good things for Xamarin.

-----


Microsoft clearly is involving Xamarin in this announcement -- parts of Xamarin are going into the same dot net Foundation that's in charge of this, and de Icaza was on stage for part of this. It may be best for Microsoft at this point if they support and involve Xamarin without buying it outright, people who want to use Xamarin with MS tooling can take advantage of Visual Studio integration, people who are wary of Microsoft can use Xamarin Studio and Mono and never officially touch Microsoft's stack while still becoming part of their ecosystem.

-----


How this affects the (pretty high) Xamarin prices? https://store.xamarin.com/

-----


They open-sourced a lot of things related to .NET in the recent years. That Roslyn was to join those things doesn't exactly come as a surprise. It's still welcome, though.

-----


When they first started talking about Roslyn a couple of years ago, the plan was always to open-source it, when they felt good about the quality.

-----


ASP.NET went open source 2 years and a few days ago. Since at least that long ago, things have pretty steadily been heading in this direction. Only reason we haven't seen things more along any more quickly is that companies this size just don't move that fast.

-----


At that moment they already released part of .NET, asp.net and azure.

I think you wanted to say that the "change" was made only thanks to the exit of Ballmer, but I think that's an exaggeration.

-----


> I think you wanted to say that the "change" was made only thanks to the exit of Ballmer, but I think that's an exaggeration.

I think it'd probably be more accurate to say that these particular changes are symptoms of the same corporate change of direction that the change of CEO was, not that the change of CEO specifically resulted in these releases.

-----


yulaow, clearly the lead-time on a lot of this stuff is longer than Ballmer's been gone, so yeah, not fair to put all this on his departure. "Five months" was a pithy play off "five years," nothing more or less than that.

-----


Does it really take that long to make a decision to open source something? Perhaps for a large company it does, I dunno. The projects themselves may have been in development for a long time (this is definitely true of Roslyn), but that doesn't mean they were always going to be open sourced.

-----


They announced a Foundation with members outside of Microsoft, in charge of a mix of their code and code from Xamarin. So you need to coordinate all of that. You also probably need to have lawyers review all the code and make sure that MS has the rights to everything included so they can do this, someone to scrub all the comments to make sure developers didn't throw in something embarrassing or worse, you need to set up workflows for reviewing community bug reports and patches... this isn't something you can do in an afternoon.

-----


> this isn't something you can do in an afternoon.

How about in 5 months? Don't get me wrong I'm not falling on either side of this argument, but I think it seems at least slightly plausible that this process could have been initiated or at least accelerated by the new CEO.

-----


Everyone on Roslyn is really excited about this and we hope that it serves as a signal that big things are happening in .NET to make the entire platform more open and agile!

P.S. We're the Visual Basic compiler too :)

-----


From an open source neckbeard to a MS employee, thanks!!!

Man, this is a crazy world. Cats and dogs living together. Open source MS projects. The falcon cannot hear the falconer

-----


Heh, before joining the C# compiler team I actually hacked on a stripped down Linux kernel and VMM targeted at high performance computing, contributed to ffmpeg and QEMU, ran Arch Linux with xmonad as my main machine, and did my Masters' thesis on Racket in Git, so I'm pretty used to open source.

This is basically old hat for me -- I'm just glad Microsoft agrees it's the way to go. :)

-----


What's the likelihood the .NET VM is open sourced as well? I use Mono right now to run my apps on Linux but it would be great to use the official implementation since Mono has subtle differences.

-----


That's the main thing I would be interested in also, but I'm thinking that's one thing that we WILL NOT see. That could seriously undercut the need to buy Windows servers.

-----


There's a trade off though. If C# only runs on Windows then a lot of developers who run Linux will never consider C# as an option. If it does run on Linux, then those developers might end up purchasing Visual Studio in order to develop C#. A lot of developers who previously used C# are also leaving the tech for others like Ruby since they aren't tied to Windows.

-----


Yeah. Historically at least, the Mono runtime was one of the weak points when running C# code on Linux and I expect it drove a fair few Windows sales - you could develop applications under Linux but if you wanted them to run well you needed to pay out for Windows licenses. (I believe it's improved a fair amount over the years but is still behind.)

-----


"Devices & services" Azure is your servers and the .net + C# tooling story from dev to deploy makes the question of selling Windows servers in a VM world moot. Many of the moves coming out of this Build seem to point to a world where it's going to be cheaper and easier to pay for all the MS services and tooling than to try to cobble it together with other people and platforms.

We're looking at a lowered on-ramp to .net apps that run more smoothly than java+linux+every-support-tool-bit (dev-wise) across devices (and things). It's compelling.

Everything from dev to deployment and ops is getting touched at this conf. This shows where MS's strengths can present differentiation. Their profit source is, and has been, building/selling tools and platforms for others to run businesses. When the thing people hate becomes more like what they aspire to have/be, the tension is palpable.

Google is about the only other player nearly capable. But Google's mission has far less to do with selling shovels vs. harvesting and monetizing.

Apple is just not in this space. If anything, they sure feel like a device-only company in this conversation. WWDC is about the garden. Build is handing out spades, shovels, and, now, dirt.

Xamarin's Evolve, last year, felt a bit like all this does. The are big things happening. If nothing else, at least it feels like change, if not progress for devs and consumers.

-----


The .NET VM would be pretty much useless on other platforms. It is tied to Windows and it would be pretty hard to rewrite. But standard libraries would be different story.

-----


I think it would be a long way from useless.

The garbage collector for example would be very interesting to peruse. Sure threading and synchronization code would be differ but these have been emulated on Linux before to good effect, I don't see any serious barriers there.

-----


Microsoft has released the source for a .Net VM (CLR) in the past: http://en.wikipedia.org/wiki/Shared_Source_Common_Language_I... It supported FreeBSD and MacOS X. This suggests it would not be impossible for them to make a multiplatform .NET in the future.

-----


A significant subset of .NET had to exist anyway for Silverlight to run on the Mac.

I'm sure the codebase is factored internally to have some sort of platform abstraction.

-----


Even if they were to do that, I doubt that it's portable cross platform code. Someone will need to port it, and it's hard to know how the effort required compares with the effort required to optimize the Mono runtime to be as good as the MS one running on Windows...

-----


as someone who doesn't know a whole lot about the .net ecosystem - does this open the possibility for writing server side c#.net web applications that run on linux, with full parity with the windows environment? with or without mono?

-----


The C# compiler is written in C#, so you can use it anywhere with a .NET runtime. Microsoft doesn't ship a .NET runtime for Linux, so you'll have to use Mono, but if your app is compatible with Mono, you're good to go!

-----


How does something like this happen? How can you write a compiler in the language that it is supposed to be compiling?

-----


TLDR: You can't write the first compiler for a language in the language. However, you can write the second compiler in the language and use the first compiler to compile it.

If you already have a compiler in the language you're compiling, you can update the compiler with new features by the following process, called "bootstrapping". This process is used in gcc for example:

1. Use the old binary version to compile the new source version.

2. Use the binary produced in step 1 to compile the new source version.

3. Use the binary provided in step 2 to compile the new source version.

The results of stages 2 and 3 should be the same (assuming the old and new compilers assign the same semantics to the compiler source code and don't have non-determinism, e.g. using wall-clock time to determine when to stop searching for optimizations).

The bootstrap process can't be used on the first compiler for a brand-new language, because there is no "old compiler" that can be used in stage 1. The only way around this is to write the first compiler in a different language that already exists.

Of course, if a self-hosted compiler is your goal, you can afford letting the very first compiler (the one written in another language) be limited, "dirty," or "hacky". You don't have to implement the entire language in the first compiler; the first compiler just has to support enough of the new language to allow you to write the second compiler.

Anyway, once you have the first compiler, you write the first version of the second compiler in whatever subset of the language the first compiler supports. Once the first compiler builds the first version of the second compiler, the first compiler is no longer needed; you can add all new features to the second compiler only.

New versions of the second compiler (perhaps supporting more language features) can now be produced by bootstrapping. Of course, you can also use the second compiler to compile a totally different compiler implementation written in the new language (this would be the third compiler for the new language).

-----


First you solve the chicken and egg problem by writing a bootstrap compiler for the language in some other language (e.g. a C# compiler in C or C++, or a C compiler in assembly language). Then you can compile programs in the new language, and compilers are programs, so you can write a C# compiler in C# and the binary so produced will be able to compile its own source.

-----


Most compilers I know of start with an implementation in another language and eventually write a self-hosted one. Microsoft already had compilers for .NET, though, so you just compile it with those until it's self-hosting.

Bootstrapping a compiler from nothing is harder and involves a lot of incremental steps. http://en.wikipedia.org/wiki/Bootstrapping_(compilers)

-----


Funny you should mention that! There was a really cool article about bootstrapping a compiler nearly from scratch just the other day[1]. But yeah, most people just start with C or C++ until they can compile enough of the language to write a compiler in it.

Some other interesting contemporary examples:

I think as we speak Go is working on its plan to switch from using a compiler written in Go[2].

Rust[3] has kind of a hybrid approach where the front-end of the compiler is written in rust, but generates llvm bytecode which is then compiled the rest of the way by llvm itself. It takes three "stages" for them to do a full compile, first a binary "snapshot" compiler is downloaded and used to compile the compiler (stage 0), then that generated compiler is used to compile the compiler again (stage 1), and then that generated compiler is used to compile the compiler again (stage 2). Stage 2 is actually just a test - its output should be identical to that of stage 1, and if it isn't, something went wrong.

There is a classic lecture from Ken Thompson[4] that I think is really illuminating on how this stuff works, if you're unfamiliar with it.

It's really fascinating stuff!

[1]: http://homepage.ntlworld.com/edmund.grimley-evans/bcompiler.... [2]: https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdw... [3]: http://www.rust-lang.org/ [4]: http://cm.bell-labs.com/who/ken/trust.html

-----


They wrote the original C# compiler in a different language (probably C++) first.

Then they wrote the second C# compiler in C#, and used the first compiler to compile the second compiler. Voila!

-----


We regularly dogfood, so we're on like N iterations of your structure, but that's the idea!

-----


Could you ask around the office and find out some of the details about the C# bootstrap process? I would be fascinated to know what language the non-C# compiler was written in and also how long they used/improved the non-C# compiler until they switched to the C# compiler.

This source release is so cool!

-----


Oh, the old compiler is just the currently shipping compiler (i.e., the one in a clean install of VS 2013). We've been using and maintaining it since the beginning. It's written in C++, so we refer to it as the "native compiler."

We only stopped bootstrapping using the native compiler about, oh, 6 months ago, since that was when we decided to take a dependency on new language features. The next VS will be the first VS where Roslyn is the default C# compiler.

-----


Oh I see, I didn't realize the native compiler was being used the whole time. Thank you for the insight!

-----


http://en.wikipedia.org/wiki/Bootstrapping_(compilers)

-----


This is almost second-nature in Lisp:

http://c2.com/cgi/wiki?StructureAndInterpretationOfComputerP...

And tends to happen to other languages... you just have to bootstrap the first compiler.

-----


Is Mono able to compile Roslyn?

-----


I assume you mean the Mono C# compiler (the one that the Mono team develops).

Interestingly, no -- but neither can the native C# compiler (that's what we call the old C# compiler that everyone's using in VS right now)!

Why? The C# compiler is bootstrapped, so we actually compile the compiler with the compiler. It just so happens that a while ago we felt we needed a feature so badly for the C# compiler that we introduced it into the C# language (exception filters) and started using it in the compiler immediately. So in order to compile the compiler, you need a C# compiler that supports exception filters, which right now is just the Roslyn C# compiler. Honestly, the feature (and some other small changes we've made) aren't that complicated, so they could be backported to other compilers, but I don't know why you would want to do that.

-----


Heh.

A few years ago I was on a small team working on a .NET compiler and runtime -- it compiled MSIL into native code targeting x86 and PowerPC. I remember when working on the part of the compiler that built the exception handling routines running into exception filters and wondering what they were for. We were largely targeting C# as a development environment at the time but ended up implementing them in case anyone wanted to use VB.NET. Funny to see that they're now making their way back into C#, even if it's just in the compiler :)

-----


In certain cases, especially with async, using "throw;" can cause a loss of information in a dump. We want compiler bugs to fail fast -- to immediately crash the compiler for debugging and analysis. By using exception filters we can immediately crash the compiler in erroneous conditions, preserving stack, locals, etc.

This isn't just useful for the compiler, but we felt it was necessary for us to make the most reliable, agile product.

-----


It should. Here's the Roslyn source, and it looks to be all in C# and VB: http://roslyn.codeplex.com/

-----


So does that mean one can reasonably expect to use official F# implementation(compiler, vm, libraries) in Linux within the coming months/years?

-----


F# is already distributed with Mono as it is open source

Lots of people use it

-----


I'm not sure any of this would have happened without Miguel. Mono really gave .NET a second life when MS dropped the ball.

It's also somehow satisfying to witness Xamarin's success and further opening of .NET after all the bashing and hating Mono received from the free software community.

-----


To be honest Mono was a rather uncertain platform due to patent issues and the Oracle vs Google lawsuit.

Now that MS has released the stuff under Apache license things have really changed.

-----


As a C# developer who genuinely likes the C# language (although I loathe vast swaths of the .NET framework libs) I'm actually super-excited about this.

C# is a great language, and I hope to see it flourish outside of the MS walled garden. Miguel de Icaza does what he can with Mono, but it can be so much more.

-----


Agreed. I've long since left .NET-land, but I still miss C#, LINQ and the like. Here's hoping for great stuff in the future.

-----


Agreed.

I really like C#. But it's currently pretty close to useless anywhere other than Windows - Mono doesn't even come close.

Hopefully this will close the gap.

-----


Depending on what you are doing, Mono has come very far. The new GC is in and a lot of optimizations have been made. Ubuntu 14 will ship with 3.2.8 I believe which has all the goodies. Apparently the performance is still poor for web development but it works well for daemons/desktop apps. You're probably better starting off with a tech that is cross platform out of the box instead of relying on Mono but if you have an existing C# project then Mono is awesome.

-----


Mono isn't bad for mobile development actually.

-----


I've started to get experience with javascript, and Java, and Scala the past year or so as my resume is very heavily weighted with C#. I'm glad to see there may be life outside Microsoft.

But I still hope Microsoft does well, because frankly I like .NET

-----


Due to the way my employer works, I actually have one foot on each camp and keep changing sides depending on customer requirements. :)

-----


What's wrong with the libs?

-----


Microsoft, you're seducing me again. I cheated on you with Ruby and Rails development a couple of years ago, but you're making me consider coming back in full swing.

Competition is great for everybody and Microsoft is making all the right moves!

-----


It's a great time to be a Microsoft dev. They stopped pretending that Windows will win back the lost ground overnight.

-----


It'll help if you don't consider yourself a "Microsoft dev" though.

-----


I spend a lot of time in many different languages, but right now I'm working on a personal project with C# MVC backend (API) and EmberJs on the front side. Great experience on both accounts!

-----


If you like Sinatra then check out Nancy.

-----


For a compiled platform, nancy seems pretty slow http://www.techempower.com/benchmarks/

-----


http://www.techempower.com/benchmarks/#section=data-r8&hw=i7...

But not much behind ASP.net.

http://www.techempower.com/benchmarks/#section=data-r8&hw=i7...

And quite a bit ahead of Sinatra

http://www.techempower.com/benchmarks/#section=data-r8&hw=i7...

Then again, so's Perl. The joys of implementation differences.

I find Nancy a lot easier to develop with than ASP.net. You do pay for the expressiveness however.

At work I'm deploying a Nancy based project to parse/process documents into structured data using a 3rd party vendor's SOAP service. There were some unpleasant compatibility issues with the SOAP service and our Perl server's SOAP client and zero logging so I took the service's source code (so glad the Vendor provided it) and replaced the WebService portion of it with a thin Nancy controller to route the calls and return JSON. Since most of the processing time is spent chewing on the files Nancy's overhead isn't an issue and Nancy made it dead simple to code.

-----


Nice to hear from someone using it for a real project and use case. I might consider it next time I get a chance!

-----


Nancy is super duper

-----


I'm not sure who this new company is going by the name of Microsoft, but I'm glad they seem to be running things now.

-----


Yea, it stood out to me that they demo'd Windows Phone first and that Nadella gave his talk in a t-shirt and jeans.

-----


Released under the Apache 2 license.

http://roslyn.codeplex.com/SourceControl/latest#License.txt

-----


Which is really good. It put a final say in the question about patents.

-----


Not to mention it's GPL (and BSD) compatible, which makes it so much more useful than the various Corporate Public Licences that have been wrapped around similar projects in the past (Sun/Oracle and MS).

-----


Unfortunately it doesn't. It's "Copyright (c) Microsoft Open Technologies", a Microsoft subsidiary it set up precisely to avoid licensing their patents when releasing GPL or Apache code.

-----


https://tldrlegal.com/license/apache-license-2.0-(apache-2.0...

-----


This is great. There is a really interesting lesson/insight here. Programmers are expensive.

There are a number of things people are doing, based on Linux, which are basically using Linux as an OS and then layering on some custom drivers or such into a product. Whether its a web 2.0 company using it as the server OS or an embedded signage company. All of these were "impossible" when you had to have your own OS team to support them, and Microsoft benefited from that. Now the OS "maintains itself" (such as it is) and so businesses get everything they got from employing Microsoft tools but at a much lower effective cost. They don't need to pay big license fees, they don't need to hire programmers to maintain a lot of code that isn't central to their product, and they don't have to spend a lot of money/time training people on their own infrastructure. That is a pretty big change.

Its nice to see folks realize it isn't the software that is valuable, its the expertise to use it that has value. By open sourcing the C# compiler Microsoft greatly increases the number of people who will develop expertise in using it and that will most likely result in an increase of use.

-----


If Microsoft starts working on its own Unity-clone, with a functional language, advanced concurrency features, and good incremental GC, they could be sure to capture a big chunk of the mindshare of game developers. This could then be parlayed into mindshare of soft-realtime development, which will become ever more important.

-----


if you want dibs on a .NET functional language right now, give F# a shot.

http://www.tryfsharp.org/

-----


Haskell has significant contributions by folks at Microsoft and is a beautiful functional language with state of the art concurrency, decent GC, and a hardcore fan base.

And here's some notes on bridging between Haskell and Unity http://lambdor.net/?p=321

-----


Not a Unity clone, but a neat, related project is Casanova (https://casanova.codeplex.com/). It's an F# API (more like an EDSL) which allows you to program against Unity in a very functional style.

-----


I think it would be better to just acquire unity since they already use mono / C# as their scripting engine anyway.

-----


Integrate all the good parts from VS to the "Unity-clone" and top it with nice indie-license. Bake modularity into so that you can build the game with feature-toggles and control the flags from the server. Ship the game to testers and enable one flag at a time to see when things crash (no need to wait x0min for the new build to finish). Make testing easier and integrate it with some build engine (jenkins, TFS), enable REST api so you can get all the game element information through it. Those features would make the life, of an test automation engineer, a walk in the park :)

-----


They had something similar in XNA, but unaccountably abandoned it.

-----


XNA was quite far from what Unity is. Unity gives you a full engine, whereas XNA was a framework and you had to build the engine yourself. It was a great little library, but it was painful for unskilled software developers (myself at the time) to use it compared to Unity's WYSIWYG and property lists you could modify, not to mention all of the things that came with Unity that you'd have to build custom in XNA.

That's not to say Unity is better, it was just easier to use.

-----


Wow these contributions are a huge deal for Mono. I've spent the last few months making sure C# code works well in Mono and there are a lot of things that are missing or buggy. WebClient for example on Mono is missing DNS refresh timeout which means your app will never update a dns cache entry. If the ip of a server changes, you're pretty much screwed in Mono.

-----


This doesn't solve your issue with WebClient. This is only a compiler and not runtime.

-----


WebClient is mentioned on here http://www.dotnetfoundation.org/. It's not just the compiler.

-----


Yeah the photo keithwarren posted shows .NET WebClient is being contributed.

-----


Nice. For some reason I can't clone the repo, though.

    Cloning into 'roslyn'...
    remote: Counting objects: 10525, done.
    remote: Compressing objects: 100% (4382/4382), done.
    remote: Total 10525 (delta 6180), reused 10391 (delta 6091)
    Receiving objects: 100% (10525/10525), 16.94 MiB | 1.69 MiB/s, done.
    error: RPC failed; result=56, HTTP code = 200
Edit: This looks like an incompatibility between GnuTLS and whatever Microsoft is using for TLS. Using git+libcurl linked against OpenSSL works fine.

-----


What kind of patents do they have on the compiler tech, and is there any guarantee they won't go after you for using it?

edit: Ah nice, Apache 2 license explicitly calls out a patent license is granted for use. I wonder how much cajoling it took to get the lawyers to agree to that!

-----


For the first time in a long time I'm excited to be developing with Microsoft technologies.

-----


Note that the C# compiler being open-sourced now is not the one used in Visual Studio. The open sourced one is called currently the "Roslyn C# compiler."

See Locke1689's comments here, especially:

https://news.ycombinator.com/item?id=7524722

"the native C# compiler (that's what we call the old C# compiler that everyone's using in VS right now)"

-----


That's true, they open sourced the new-hotness compiler that they're moving to. The Roslyn compiler is still in preview, hence it hasn't had time to make it into Visual Studio. But I believe it'll be in the next version.

Really, this seems better than opening up the old compiler that they're moving away from.

-----


Yeah, agreed - I heard a Roslyn dev saying exactly that in a podcast a couple of months back ... http://dotnetrocks.com/default.aspx?showNum=935

-----


Wow, this is impressive. Does this mean the .Net framework is next?

-----


They've released it under "MICROSOFT REFERENCE SOURCE LICENSE (MS-RSL)" some time ago, but I'm not sure what the future plan is.

You can view and download the whole .NET source here: http://referencesource.microsoft.com/

-----


That is awesome. What about the CLR VM?

-----


If they just give you the cheese, the trap doesn't work.

-----


The most enticing feature of C# is the .NET Framework, and if Microsoft fully open sourced the .NET Framework it could start a cross compatible version of the framework. This would be a dream come true for a software developers who like C#/opensource.

-----


I wonder if Mono will use this to replace their compiler and just focus on the runtime / VM. They'd be more focused on making it performant, vs. trying to keep up with the latest C# features. They'd have to keep up with .NET, of course, but I'd guess that not having to worry about a C# compiler would be quite the load off their shoulders.

-----


Wow, this feels like the end of Return of the Jedi where Darth takes off his helmet, having realized he was on the wrong side.

Is this the return of the original MS?

-----


It's interesting that they made their own lexer/parser for this (cf. Microsoft.CodeAnalysis.CSharp/Parser/LanguageParser.cs). It seems that it has a lot of advanced technologies (e.g. error recovery) here. I'm curious if it's possible to create a more general parser framework out of this.

-----


Really confused about the Xamarin/MSFT situation. I see Miguel everywhere on Build, and other MS teams casually mentioning cooperations with Xamarin.

Certainly Microsoft wouldn't mind just throwing some millions at them and buying them outright, so are we to deduce that any such offer was rejected?

-----


Or we are to dedude that Microsoft didn't want to make such an offer, because while they want to spread .NET into a cross-platform standard, they still prefer a third party like Xamarin to deal with iOS, Linux and the like support for .NET (perhaps for public perception reasons).

-----


I think public perception is actually a big thing, though on the other hand the people most worried about that I think have already written off Mono as being "obviously in bed with Microsoft", so I'm not sure how much having Xamarin as a third party would help.

-----


May be in the next few years, Microsoft will be one of the biggest players in OpenSource :)

-----


Anyone else getting deja vu?

Makes me think of Sun open sourcing Java.

-----


Sun retained restrictions on mobile Java though and it wasn't opened royalty free. That's the whole story with Oracle attacking Google later (on patent basis). And don't forget, MS sided with Oracle there, claiming that APIs should be copyrightable.

So while this development is positive, one should take it with a grain of salt. MS still can't be just trusted blindly.

-----


The releases are under Apache License 2, which has both a patent grant and a patent retaliation clause.

-----


That's good. But that's just the compiler. What about APIs (i.e. .NET)? I don't think Oracle claimed ownership over Java compilers in the example above. It was primarily about Java APIs.

-----


One version of the core libraries (micro framework) are OSS too, along with a bunch of other stuff, but by no means everything or even everything in the base class library.

See slide: https://pbs.twimg.com/media/BkT9oBcCQAAHIAV.jpg:large

-----


The precedent has already been set that API's aren't patentable... So I think we're good.

-----


From that perspective yes. But MS clearly showed they didn't like that. It was about the attitude in general. If MS want to really open things up, they should formally have an open license for APIs that would protect them from MS patent and copyright threats.

-----


I really hope that the ruling by judge Alsup stands, but Microsoft and Oracle is currently trying to overturn that ruling and make API's copyrightable.

-----


Sun open sourcing Java SE was the best thing that happened to the software industry in the last 10 years, at least. I don't care about Sun's motivation for doing it, but OpenJDK is here to say and Oracle cannot take that back, even if they wanted to. That's the power of open-source released under a strong license and the JVM is in fact turning into the new POSIX.

Here's to hoping that Microsoft goes beyond the compiler and open-sources the VM and the whole standard library too - .NET and C# always had great potential, it's a pity that Microsoft saw it as a way to sell Windows. And I hope they realize they have a long way to go before they catch up.

-----


Yeah. I can already imagine an HN headline 4-5 years from now: "Microsoft’s iron grip on C#: Controlling open source by any means necessary".

-----


The changes in company behavior have been absolutely stunning since Ballmer left. Hopefully these changes signal a more modern, forward looking Microsoft going forward.

-----


these changes were in the works long before ballmer left FYI

-----


These changes have nothing to do with Ballmer's (lack of) presence. They have to do with Scott Guthrie being an absolute badass.

Teams under his lead have been open sourcing things in expanding significance for years. As Scott has been steadily climbing the Microsoft chain of command and with each step of the ladder it seems larger projects got open sourced.

-----


What does this mean for the Mono project? http://www.mono-project.com/Main_Page

-----


Mono isn't just a c# compiler, it is also a CLS Machine (virtual machine) and a set of libraries, among other things. If the VM was also put under apache 2, it is also unlikely that it would run on Linux out of the box.

To use java as an example, this would be like open sourcing javac without open sourcing the JVM. (Just fyi, both javac and JVM are open source under the GPL license. :) [edit - Looks like large parts of .NET platform are being released]

Still, this is a move to be applauded. Microsoft has been easing itself into a more open source friendly company over time by putting more projects under an open license. Microsoft ASP.NET MVC is another good example. There is an incomplete list of open source projects originating from Microsoft here: http://www.microsoft.com/opensource/directory.aspx

[edit above in brackets]

-----


Miguel just demo'ed building a C# iOS app using a modified Roslyn-powered C# compiler with Xamarin Studio on OSX.

-----


Miguel showed personally on stage they integrated it in mono (in a version that, obviously, at the moment is not out there)

-----


Yep, he's compiled on stage an IOS app with a version of Mono that had Roslyn integration.

-----


And Roslyn is 100% Apache 2, so he didn't need our assistance or permission to do any of what we demoed (although we were glad to give it!).

-----


This is still Windows only. If anything Mono now has more resources to pull from to improve their project.

-----


Not true - there was an on-stage demo in MonoDevelop on OS X.

-----


It's a compiler. It takes input and produces output. There shouldn't be much in there that has any platform dependency.

-----


For any compiler, platform-dependence of the compiler itself is strictly tied to platform-dependence of outputs.

Edit: I confused roslyn with the recently announced AOT compiler.

-----


What do you mean the output produced isn't platform-independent? This C# compiler produces assemblies that can be run on e.g. Mono runtime on Linux or on the .NET CLR runtime in Windows.

-----


The C# compiler targets the CLR (Mono or .NET). It produces IL which is similar to Java bytecode. The runtime then JIT's it, but I don't know if that's OS-specific or not.

-----


I think that Microsoft is doing a really smart move. Xamarin is towards being the main framework for cross platform mobile development and Microsoft is positioning itself very well there.

-----


Nice start, but the real power is in the open platform, not the language IMHO. This becomes less of an issue as things move to the cloud and paas, but we're not there yet. Yes, there's mono, but its still the red headed step child.

-----


Is it in the realm of possibility that XP could go the same way? I can imagine why Microsoft might want to release that albatross, but I have no idea whether or how they could contain the damage due to leakage of their IP.

-----


Sorry but that is the dumbest thing I've read all day.

-----


Hey no need to apologise. Please tell: are you dissatisfied with the level of dumbness in your day so far, or are you looking for a more stable normality or enlightenment?

-----


Interesting to see that they don't shy away from using goto in their code.

http://roslyn.codeplex.com/SourceControl/latest#Src/Compiler...

Something I've just learned from looking at the code is you can jump between cases in a switch statement :

    switch (a) {
       case '1':
         ...
       case '2':
         goto case '1';
    }
 
Never realised you could do that.

-----


Sometimes you even have to, because fall-through is illegal in C# except with empty case labels. goto case makes things more explicit.

Although there is no reason why they wouldn't use goto. The oft-cited "goto statement considered harmful" was in a very different context and basically just ranted against using goto when there are control structures that make intent clearer.

-----


You can even jump back from a catch or finally handler to the try block ;) At least in MSIL.

-----


Microsofts decision to opensource is not suddenly.

It has actively been pushed by some of Microsoft's evangelists (Phil Haack (ex employee, works at github now i think) and Scott Hansselman to say the more popular names).

I believe they got some playfield to do things and now the community has more and more impact (eg. Nuget and software like myget which is based on Nuget (Nuget for Enterprise))

Also, the CEO isn't Balmer anymore, that probably helps to.

-----


Man Microsoft is changing, this is great news.

-----


Is this the 2014 edition of the Rotor Project[1], where Microsoft dumped a bunch of code to run .NET on XP/OSX/FreeBSD and then almost nothing happened? Hopefully the choice of a standard license this time will give this release a chance.

[1] http://www.microsoft.com/en-us/download/details.aspx?id=1412...

-----


I think the big difference is that .NET and Visual Studio will depend on the Roslyn compiler. Rotor was a sample implementation, but nobody at Microsoft (to my knowledge) was shipping an actual product / project that depended on Rotor moving forward. I've talked to leads on the team who are excited about being able to roll out new language features using this new compiler. There's a good, long term business justification for Microsoft to keep working on this after open sourcing it, which I've learned over time is a very good and important thing.

-----


No, this is the real deal.

-----


Commit history only goes back to Mar 18 [0]. Presumably, to hide code that needed to be cleaned up before the release. Would've been interesting to see the full history, mistakes and all; a full view of their dev process.

[0] - http://roslyn.codeplex.com/SourceControl/list/changesets?pag...

-----


I fell that they are doing it because of a growing threat from Linux as a Windows alternative.

With Valve pushing their Debian fork and more gaming support for Linux in the last time, Microsoft wan't to appeal to the Open Source community the reduce the "bashing" which ... which could actually loose some force behind it. Not that it could actually benefit Linux with better Mono support etc.

-----


Open Sourcing everything! Today read they will be releasing Windows os for IoT free! Looks like Opensource is the next business model! :)

-----


I hope for a C# and F# plugin to Intellij IDEA! Please add it JetBrains!

-----


Go Nadella go!

-----


Microsoft uses Git. Is it not cool?

Microsoft, please add unix terminal instead of start button in Windows 8.

-----


Just use Powershell, or install Cygwin. What good is a unix terminal without a unix filesystem, anyway?

-----


Or msysgit: git plus a very usable shell

http://msysgit.github.io/

-----


Its not the filesystem thats the problem, but the terrible partitioned-backslash-ridden namespace. Come on MS, embrace the forward slash already.

-----


I haven't noticed the forward slash not working anywhere I need to use paths, from the command prompt and elsewhere.. it doesn't work for tab completion at a command prompt though.

You can always use a bash/cygwin prompt for that if you want.

-----


The forward slash in paths only sort of works but not really. And because you can sort of use forward slash and backslash for paths deliminators you can't escape spaces in path names.

And why did they have to screw up tab completion like that? More like tab cycling. Why does MS always have to be different just for the sake of being different?

MS whole approach to the cli grinds my gears. And Powershell fixes nothing.

-----


You can get bash style completion in PowerShell with https://github.com/lzybkr/PSReadLine.

-----


cd "My Folder Has Spaces/So Does It's Child"

-----


CRLFs instead of just LFs is also annoying.

-----


I really hope Unity is able to incorporate this somehow so we can finally get a solid update to C# and .NET.

-----


Unity's version of Mono was pretty old last I checked; if they haven't updated it for new versions of Mono, I'm not getting my hopes up too much for Roslyn. Also, this doesn't include source for a runtime.

-----


They hadn't updated Mono for licensing issues. Hence them hopefully being able to take advantage of this.

-----


This is just the beginning. While I hate their business model and corporate mindset, Microsoft has really well thought out products that can easily make an impact outside their ecosystem. I'm glad they are realising this, and %100 sure there will be more coming from this direction.

-----


Wow, you know that the times are a'changing when something like this happens. Ex-chairman Steve Ballmer used to call linux a cancer and MS had nothing but disdain for open source software. Open source really has made a difference, and Microsoft is reacting in a big way.

-----


I'm stupid, so I must ask:

What does this mean for the future of C# on Linux?

-----


I mean, really that's the only relevant question: when is C# going to be a great cross platform choice? Open sourcing a windows only implementation doesn't really change anything.

-----


No more ".Net magic" now that the curtain's dropped.

I think this will help .Net devs make smarter decisions about their code now that they can see what's happening in the background.

-----


I'm not sure whether there ever was a time when .NET devs had to seriously consider "what was happening in the background". .NET Framework documentation has always been pretty good. Not too many dark corners there.

-----


And the system libraries are cake to decompile if you really need to dig into the innards. I've only had to do that on one or two occasions, and it was more for curiosity sake (I think once I wanted a copy of the html character code encoding table and didn't want to piece it together by hand.)

-----


Additionally, they released the reference source code for .NET[0] a while back, so there is always that to dig through as well.

[0]: http://referencesource.microsoft.com/

-----


Not a .NET dev myself, but I believe Android's documentation is also pretty good. Nevertheless, I can distinctly recall instances when looking at Android's source was necessary/helpful.

-----


Having done a lot of C# and Java (both of which are very well documented) in the past and a little bit of Android development recently, I cannot confirm that. The documentation is a horrible mess of a few helpful things (most longer texts introducing platform quirks and intricacies are useful), barely documented things (many, many parts of the class libraries) and downright undocumented things (styles, where the "documentation" even tells you to read the source). (Not to mention the plethora of typos and misspellings in the official docs.)

Generally I've not been very impressed with the quality of Android's documentation and firmly believe a company such as Google can do better. And after having a look at the process around getting a patch approved I deemed it not worth my time trying to contribute documentation fixes and enhancements.

-----


This means that you can compile .NET code on a non-MS platform (like Linux) but you can only deploy it to ... Azure.

Microsoft's endgame is in sight.

-----


How exactly did you get that out of an Apache 2 license? http://roslyn.codeplex.com/license

-----


Well obviously you can eventually run the code on any platform that supports the CLR. At present only Windows and Azure support the CLR but the rest of the world has to depend on Mono.

I suspect that Microsoft is trying to fight their way into the Server space where Linux installations are prevalent by offering services via Azure.

So, for example, you have an extensive Linux environment running critical back-end services. You can have a BASH script which generates C# code, compiles it and eventually deploys it to Azure. This is I think a fantasy scenario that Microsoft is envisioning.

-----


> Well obviously you can eventually run the code on any platform that supports the CLR. At present only Windows and Azure support the CLR but the rest of the world has to depend on Mono.

I don't understand what you're trying to say here. The roslyn compiler can generate code that can be run on the Mono VM. It was even demonstrated by Miguel on stage.

You'd also need something to run the roslyn compiler on linux, and that again would be mono.

Visual Studio will be using the roslyn compiler in the next version also.

Azure doesn't really have anything to do with this. It's an open source compiler that can run on the .NET VM or the Mono VM, and generate output for either.

-----


Now with Windows free and many of its work is open-sourced, Microsoft is going to try to make money on services and other software that comes with Windows. It's a risk, but better than the alternative: watching Android completely takes over the planet.

It's not an advertising company like Google. Google makes money when you use the Internet; Microsoft makes money when you pay for its software.

-----


Does this mean one can now take this code and build compiler that targets Mac/Linux platforms? How about forking this to build new variants of C#?

-----


Yes and yes. Standard Apache 2 license.

-----


Is it possible to get it run on Linux/Mac?

-----


I guess they are about done promoting C#, then

-----


Is there any blog post/documentation/diagrams to help understand the compiler and how each modules interact between each other ? I'm going thru the code and its cryptic for me.

Also, I read a lot of comments saying this way good for mono ... how is this ? Wouldn't an open source CLR be more useful ?

-----


Is the CLR runtime open-source too? Because open sourcing the C# compiler isn't such a big deal without it.

-----


lots of positive sounding stuff comming from msft in the last week.

But, I dunno. I'm extremely skeptical of Microsoft's ability to put long-term momentum into any of their non-core strategies. All these things are one re-org away from becoming basket cases.

Case in point: XNA

-----


Great news. A 180° turn since Ballmer compared linux and open source to communism 14 years ago ... http://www.theregister.co.uk/2000/07/31/ms_ballmer_linux_is_...

-----


I wonder what the impact of this is for Resharper, Jetbrains .Net refactoring tool, and their Nitra effort?

-----


Hopefully some kind of open source tooling that is capable of replacing or competing with Resharper.

-----


None.

-----


Yes! I hope somebody will create a VB.NET to C# convertor with this.

-----


Anders has already demo'd this at Microsoft on Channel9 some months ago.

-----


I would expect that you could use a decompiler to generate C# from compiled VB.NET code.

-----


True but you lose the variable names and the comments. I am guessing - and I really don't know if this is the case - you can convert VB.NET to C# using Roslyn keeping all the variable names and comments.

-----


I was hoping they would update Rotor to reflect the new CLR

-----


Microsoft should have done this announce two days ago! :)

-----


What about the AOT compiler recently announced?

-----


How does Microsoft benefit by open sourcing the C# compiler ? How will this drive users/developers towards Windows ?

-----


i wish they would post the sources of the initial basic that bill and paul wrote.

-----


I suspect Scott Hanselman has huge impact on this. Thanks for pushing it Scott.

-----


Lots of folks involved, LOTS, but I (and others) will keep pushing until they fire me.

-----


Who is going to break the news to Slashdot?

-----


Wow, big changes at MS.

-----


Now we're talking!

-----


What sort of changes can we see from this move? Could we generate ASP code by writing it in PHP first? Can .NET be run on Apache and linux servers?

-----


It's a good sign.

-----


It's a good sign

-----


I think we're all very lucky to have a corporation as innovative, open-minded, and generous as Microsoft. Microsoft is a company that every company should look up to.

-----


This does not make up for decades of abuse they've been giving the market at large. Yes, I've witnessed it first hand as early as 1990, and second hand ever since. They're still extorting android handset makers, and it was only 5 years ago that they loaded the ISO committees to favor OOXML.

-----


RIP Java! :)

-----


Great, now GPL the entire windows kernel :)

-----


What about the past statements of MS executives? e.g. "A Microsoft legal representative has said during a hearing in the European Parliament that open source actually presents a higher vulnerability risk."

-----


It's great to see M$ embracing open source. If you think Open Source is important, let me know! https://github.com/nickdesaulniers/What-Open-Source-Means-To...

-----


Step in the right direction. I'm still waiting for

  git clone https://github.com/microsoft/windows.git
to happen

-----


How much of a hipster are you?

-----


I'm a hipster because I like open source and want more not-open-source things to be open source?

-----


There are things other than Git. For example Mercurial.

-----


No, you're a hipster because you seem to think nothing is truly open until it's on git.

-----


From http://roslyn.codeplex.com/ :

    git clone https://git01.codeplex.com/roslyn
Do you mean on github?

-----


Yes, yes I did.

-----


Is Windows source available under a permissive license somewhere else? I'll take that.

-----


You really think github can host windows huh? It will crumble and die.

-----


it's not quite the same thing, however TFS does now talk Git... http://blogs.msdn.com/b/mvpawardprogram/archive/2013/11/13/g...

-----




Applications are open for YC Winter 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: