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.
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.
I did a toy comparison of ML-derived languages running on Linux the other day (http://thebreakfastpost.com/2015/04/22/four-mls-and-a-python...) and found F# already simple to get along with and fast to run, at this beginner level. It could become a really interesting option.
"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. "
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(!).
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.
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.
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.
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...
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.
> 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.
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.
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?
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
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)
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.
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.
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.
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.
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!
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.
[+] [-] nutate|11 years ago|reply
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
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.
[+] [-] cannam|11 years ago|reply
[+] [-] typish|11 years ago|reply
"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
[+] [-] ghuntley|11 years ago|reply
[+] [-] bjt|11 years ago|reply
For anyone else wondering that, go to https://github.com/dotnet/coreclr/blob/master/Documentation/....
[+] [-] ghuntley|11 years ago|reply
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...
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
[+] [-] tdicola|11 years ago|reply
[+] [-] Someone1234|11 years ago|reply
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
Microsoft will support .NetCore for at least 20 years. Without doubt.
[+] [-] RCampbell|11 years ago|reply
[+] [-] coldtea|11 years ago|reply
[+] [-] wtetzner|11 years ago|reply
[+] [-] bdcravens|11 years ago|reply
[+] [-] SideburnsOfDoom|11 years ago|reply
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
[+] [-] digitalzombie|11 years ago|reply
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
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?
[+] [-] hokkos|11 years ago|reply
[+] [-] amelius|11 years ago|reply
[+] [-] scott00|11 years ago|reply
MIT license
[+] [-] Errorcod3|11 years ago|reply
[+] [-] deafeningblow|11 years ago|reply
[+] [-] ghuntley|11 years ago|reply
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
[+] [-] igravious|11 years ago|reply
Should Microsoft provide a few common platform install methods?
[+] [-] neckro23|11 years ago|reply
Not quite, but they're getting there. And supporting Homebrew, apparently.
[+] [-] swalsh|11 years ago|reply
[+] [-] Lorento|11 years ago|reply
[+] [-] istvan__|11 years ago|reply
[+] [-] return0|11 years ago|reply
[+] [-] markbnj|11 years ago|reply
http://i.imgur.com/XyCB3uA.png
[+] [-] runfaster2000|11 years ago|reply
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
[+] [-] therealwill|11 years ago|reply
[+] [-] kichuku|11 years ago|reply
When I tried to use Lync on browser, I remember seeing something about .NET. Or is it silverlight?
[+] [-] ossreality|11 years ago|reply
[deleted]
[+] [-] jakejake|11 years ago|reply
[+] [-] snarfy|11 years ago|reply
https://github.com/aspnet/Home/tree/dev/samples/latest/Hello...
Follow instructions here: https://github.com/aspnet/home
This can also be done with mono, fastcgi, and nginx.
http://www.mono-project.com/docs/web/fastcgi/nginx/
[+] [-] ghuntley|11 years ago|reply
[+] [-] ghuntley|11 years ago|reply
[+] [-] ilaksh|11 years ago|reply
[+] [-] auvi|11 years ago|reply
[+] [-] ghuntley|11 years ago|reply
[+] [-] robmcm|11 years ago|reply
[+] [-] unknown|11 years ago|reply
[deleted]
[+] [-] hokkos|11 years ago|reply