top | item 9459513

Microsoft Launches Its .NET Distribution for Linux and Mac

915 points| Errorcod3 | 11 years ago |techcrunch.com | reply

237 comments

order
[+] nutate|11 years ago|reply
F# is a real breath of fresh air in comparison to something like Scala. It's direct ML heritage really shows, also just diving in with an IDE (like Xamarin, or I suppose Visual Studio) is super easy.

I see it as the future of pop-functional programming. For example look at the way it handles type inference w/ JSON parsing. Compare that to what you have to do to parse JSON in Scala. It's subtle, but a major usability win.

[+] narrator|11 years ago|reply
Scala is getting really interesting lately though with projects like Spark and SparkSQL. Spark takes a Scala AST tree and computes a plan on it in order to distribute it to a cluster of possibly thousands of nodes and then uses transformations on that plan, similar to how an SQL query optimizer works, to make the plan more efficient. The cluster compute benchmarks on it are crazy good.

The only problem I have with Scala is that it has so many features that it tends to have a steeper learning curve than most languages. However, this is mitigated somewhat in that it lets one switch between object and functional depending on what's more convenient or performant, thus making it easier for programmers who are not highly skilled in functional programming to pick up.

[+] typish|11 years ago|reply
Also interesting is their F* language: http://fstar-lang.org/

"F* is a new higher order, effectful programming language (like ML) designed with program verification in mind. Its type system is based on a core that resembles System Fω (hence the name), but is extended with dependent types, refined monadic effects, refinement types, and higher kinds. Together, these features allow expressing precise and compact specifications for programs, including functional correctness properties. The F* type-checker aims to prove that programs meet their specifications using an automated theorem prover (usually Z3) behind the scenes to discharge proof obligations. Programs written in F* can be translated to OCaml, F#, or JavaScript for execution. "

It's open source too: https://github.com/FStarLang/FStar

[+] bjt|11 years ago|reply
My first question was "So how do I build "Hello World"?

For anyone else wondering that, go to https://github.com/dotnet/coreclr/blob/master/Documentation/....

[+] ghuntley|11 years ago|reply
1) ghuntley@freebsd-frankfurt:~/coreclr-master % ./build.sh

2) ghuntley@freebsd-frankfurt:~/coreclr-master % cp bin/Product/FreeBSD.x64.Debug/corerun ~/coreclr-demo/runtime

3) ghuntley@freebsd-frankfurt:~/coreclr-master % cp bin/Product/FreeBSD.x64.Debug/libcoreclr*.so ~/coreclr-demo/runtime

4) ghuntley@freebsd-frankfurt:~/coreclr-master % cd ~/coreclr-demo/runtime

5) ghuntley@freebsd-frankfurt:~/coreclr-demo/runtime % ./corerun HelloWorld.exe freebsd

Hello, FreeBSD...

			       ,        ,
			      /(        )`
			      \ \___   / |
			      /- _  `-/  '
			     (/\/ \ \   /\
			     / /   | `    \
			     O O   ) /    |
			     `-^--'`<     '
			    (_.)  _  )   /
			     `.___/`    /
			       `-----' /
		  <----.     __ / __   \
		  <----|====O)))==) \) /====
		  <----'    `--' `.__,' \
			       |        |
				\       /       /\
			   ______( (_  / \______/
			 ,'  ,-----'   |
			 `--{__________)


	Press ENTER to exit ...
See also https://github.com/dotnet/corefxlab/commit/a39310b028ad830f8... - "HelloWorld: Pimp up the FreeBSD daemon to have colors. Basically pay full respects to the original console screen-saver."
[+] tomjen3|11 years ago|reply
For those of you who want to save the click: you need to build half the stuff on a windows machine and the copy it over - and you need mono to fetch the dependencies(!).
[+] tdicola|11 years ago|reply
This is interesting but is there any commitment to support it long term? I remember when Silverlight was supposed to be the savior that brought .NET to Mac and Linux, but that didn't last more than 5 years. Would be nice for MS to say they guarantee support for 10, 15, etc. years.
[+] Someone1234|11 years ago|reply
I'm playing devil's advocate: But Silverlight was too little too late. It arrived right as Flash was effectively dying. I don't blame them for killing it, it was dead on arrival.

I can explain the entire problem with Silverlight using two dates:

- iPhone initial release: 29th of June 2007

- Silverlight initial release: 5th of September 2007

Now, we can argue if iOS killed Flash, but I think between iOS's lack of support and all of the security issues associated with Flash, it was set up to lose popular support (and then HTML5/HTML5 DRM filled in the gap, even if it took years ultimately).

Silverlight was a Flash competitor in a world that decided it didn't need Flash.

[+] apalmer|11 years ago|reply
This is the thing with Microsoft is this is never in doubt. It is Google who ends of life's things and stops support. Microsoft still has supports things in Windows 8.1 that were BUGS in MS-DOS in order to allow programs from that era to run.

Microsoft will support .NetCore for at least 20 years. Without doubt.

[+] coldtea|11 years ago|reply
This is the CLR and .NET class libs. Unlike Silveright they have been supported for 15 years already, and will be aggresively developed in the future too. Besides, they've just been opensourced, even if this IDE project dies, those will stick around as long as Java will...
[+] wtetzner|11 years ago|reply
One thing that's nice is that it's now open source, so as long as it remains open source, it will likely remain cross platform. Contributers that are on non-windows platforms will likely notice when something breaks on their platform, and get it fixed.
[+] bdcravens|11 years ago|reply
Has Google/Mozilla made the same commitments to Go/Rust?
[+] SideburnsOfDoom|11 years ago|reply
> Silverlight was supposed to be the savior that brought .NET to Mac and Linux

Silverlight was supposed to bring .NET to browsers on Mac and Linux. Someone1234's comment is IMHO correct and very astute - Silverlight wasn't all bad, but it solved the wrong problem.

On the other hand, this is all about bringing .Net to web servers on Mac and Linux. particularly Linux boxes and container in clouds. My experience may not be typical, but to me that's the right problem. The MS Azure team probably agrees.

[+] jcoffland|11 years ago|reply
Never thought I'd say this but go Microsoft!
[+] digitalzombie|11 years ago|reply
I dunno about that.

They're still charging and threatening people for Android patents without really telling anybody what patents they hold over Android.

I think they realize they can make money via open source now and they might do this for future product. Threaten people via patents or some kind of trojan horse.

While it's great we have another programming language and platform option but their actions so far in the past and present isn't so great.

They also tried to make a Hadoop clone that failed miserably so now they team up with Hortonworks.

Perhaps that opening sourcing their VM they can have big data projects like Hadoop and such. Oracle have big sway over Java and JVM. Perhaps that's what Microsoft wants. People might forget about Oracle and JVM but I still remembered and it really sucks for Apache.

In general, I'm not taking this bet and I'll wait on it.

Also with my current skill set which is mainly open source, it is fine not dealing with Microsoft. Unless they have a better market share and momentum in some niche market like big data with Hadoop, spark or whatever I wouldn't even think about touching their open source stuff.

[+] lambda|11 years ago|reply
So, what is actually new here?

They had already announced the various parts of this, and the only link I see in here is a GitHub repo with links to other GitHub repos that we've already seen. Is there anything new in this announcement?

[+] amelius|11 years ago|reply
Does it include the source? And how liberal is the license?
[+] Errorcod3|11 years ago|reply
The code that will allow the software to run on Linux and Mac OS has not yet been built. “It will be a few months before you can get your hand on this." -Somasegar
[+] deafeningblow|11 years ago|reply
Oh hey the CLR finally achieved platform independence. Which is great because it is great.
[+] ghuntley|11 years ago|reply
Yes. FreeBSD and OSX support was done 100% by the open-source community w/ support from MSFT whom helped a little bit with domain knowledge (the CLR product managers and developers can be found in the Gitter room)

See https://news.ycombinator.com/item?id=9431368 w/ Microsoft .NET CoreCLR is now running on FreeBSD 10.1 (amd64)

[+] bigdubs|11 years ago|reply
how long until i can `brew install dotnet`?
[+] igravious|11 years ago|reply
Wow yes, apt-get install dotnet anyone?

Should Microsoft provide a few common platform install methods?

[+] neckro23|11 years ago|reply
brew tap aspnet/dnx; brew install dnvm

Not quite, but they're getting there. And supporting Homebrew, apparently.

[+] swalsh|11 years ago|reply
I really want to run it on a Raspberry Pi
[+] Lorento|11 years ago|reply
There'll still be no Winforms or WPF on Linux, is that right? So no desktop apps will be portable?
[+] istvan__|11 years ago|reply
Yes! Finally we can use .NET on on Linux a supported official way.
[+] return0|11 years ago|reply
What are the major projects that are built in Mono? I only know opensimulator.
[+] markbnj|11 years ago|reply
Was able to build it and run the HelloWorld.cs example. You need to build coreclr and corefx on windows for the managed components, since only the core cpp source can be built on linux at this time. You also need to install mono and grab nuget and use it to fetch a few packages. But all in all it feels fairly historic.

http://i.imgur.com/XyCB3uA.png

[+] runfaster2000|11 years ago|reply
.NET Core team member here.

I'm glad that you were able to make it all work with the instructions[1] we provided. There are two major pieces that we're still working on, which you call out:

- Compiling managed source on OS X and Linux with Roslyn.

- Running DNU (NuGet) on .NET Core to restore packages.

Most everything else functionaly works. Once those are solved (and we are close to it), the experience will be great. In just a few commands, you'll be able to acquire .NET Core, restore packages and run your app, independent of which OS you are on.

For .NET developers, it is indeed historic. Community and corporate developers alike are quite excited and see a lot of new opportunities going forward. You might have noticed that the community is leading the OS X and FreeBSD .NET ports, with support from Microsoft. We added official FreeBSD CI[2] only a week ago, upon the request of the community.

[1] https://github.com/dotnet/coreclr/blob/master/Documentation/...

[2] https://github.com/dotnet/coreclr#build-status

edit: formatting

[+] davidgerard|11 years ago|reply
So is this open-source enough to get into Debian (free) and hence Ubuntu?
[+] kichuku|11 years ago|reply
So does this mean that we might have Microsoft Lync client coming up for Linux?

When I tried to use Lync on browser, I remember seeing something about .NET. Or is it silverlight?

[+] jakejake|11 years ago|reply
I'm curious, is there enough released yet to build server-side web apps? Would there be an apache mod, or some other web server? Or is there something more akin to a node app? I really enjoy C#, but everything that I did was either a Windows-only desktop app or a web app served through IIS. Thanks for any insight.
[+] ghuntley|11 years ago|reply
There's enough released to build server-side apps. ASP.NET and .NET in general has been decoupled from IIS over the last year via project OWIN. Self-hosting binaries is in big time.
[+] ilaksh|11 years ago|reply
ASP.net web apps have been possible on Linux without IS for many years.
[+] auvi|11 years ago|reply
I see a pattern here. People were excited about JVM, then came along CLR. And it is now getting attention as MS is porting it to Linux/OSX. Next cool thing will be BEAM (Erlang's VM) based languages, i.e. Elixir, Lisp Flavored Erlang etc. Reminds me of the hype cycle. So lets get hyped!
[+] ghuntley|11 years ago|reply
OSX (and FreeBSD) was done by the OSS community not by MSFT.
[+] robmcm|11 years ago|reply
So how come they build VS:Code in HTML/JS/CSS using Chromium?
[+] hokkos|11 years ago|reply
Funny thing I cloned their repo yesterday on Mac Os to check the advancement of their project, I could run the hello world and the static Web site but not the MVC one.