Live data from Hacker News

Microsoft Launches Its .NET Distribution for Linux and Mac

techcrunch.com

91–100 of 249 posts

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#91
post #48
post #28

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…

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.

Thanks, very interesting. Do you happen to know how large OCaml binaries get if you use Core.Std?

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#92
post #78

Earlier quoted context omitted.

It is like the Java runtime, but started afresh with all of Java's learned lessons taken into account (although Java with 7 and 8 in particular is catching up). Up until now however it has only ran on Windows which was its biggest "downside" Vs. Java which runs on many platforms.

The JVM is much more sophisticated than the CLR. Its GCs and JIT are many, many years ahead of the CLR's.

It's not that simple. The CLR has a different feature set to the JVM; or rather, it has a feature superset. If you run Java-like code on the CLR, I would expect it to not be as fast or have as high GC throughput as Hotspot, especially if the Java code has been tuned to Hotspot - there are particular fast paths for certain operations that kick in, where if your code is a little bit too far from the optimized idiom, you end up 3-5x slower. For regular code, I wouldn't expect a big gap between CLR and JVM; a lot of Java code is dominated by pointer chasing because the primary tool of abstraction is a heap-allocated object. C# written in the same way will be bottlenecked in similar ways on cache misses, TLB misses, etc.

There's a larger variety of JVMs designed for a broader range of hardware, the most interesting to me being Azul and their GC tech.

But the CLR gives you some different tactical options. Value types and unsafe code let you do things that are far more expensive or awkward on the JVM. Writing a significant amount of functionality that does no heap allocation is more feasible on the CLR than JVM. Native interop is an order of magnitude easier. The CLR is generally much faster to start up; Java terminal apps don't suit interactive use. The library linking story is much more pleasant too, with a single dynamically linked executable referencing GAC-installed assemblies, rather than stringing together enormously long class paths.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#93
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.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#94

Earlier quoted context omitted.

It is like the Java runtime, but started afresh with all of Java's learned lessons taken into account (although Java with 7 and 8 in particular is catching up). Up until now however it has only ran on Windows which was its biggest "downside" Vs. Java which runs on many platforms.

So, why would a Mac user develop in it, instead of in a Windows (virtual) machine? How would .NET compare to Apple's native environment? I guess the whole point is to write cross-platform code, but is the .NET environment that much better than Swift/Xcode? I mean, Java never really caught on with the Mac user base.

One advantage is developing server-side .NET apps without the need of a Windows VM, with the aid of regular Unix tools in your regular dev environment. That's a win in my book.

But a cross-platform CLR opens up some possibilities even for desktop or CLI apps. The wealth of the .NET ecosystem is compelling.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#95
post #26
post #21

Earlier quoted context omitted.

Not really. I'm a big fan of MIT style licenses, but it also means that Microsoft could at anytime start making proprietary updates. It could mean we could start adopting it and then at some point down the road they could discontinue the open version and start making closed features/updates. Don't get me wrong, I'm very pleased that this is the direction Microsoft is taking. I am just still very skeptical.

The GPL doesn't protect against that either. They still own the code, either way, and can make new development closed whenever they want.

If you have permission of all the copyright holders to release the code under another license. You can't accept patches and then re-license without explicit permission.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#97
post #28

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…

You would think something like OCaml would fill in that niche with its wider availability.

OCaml doesn't come with the ecosystem that F# does. It isn't about availability, but APIs to play with.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#98
post #91
post #48

Earlier quoted context omitted.

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.

Thanks, very interesting. Do you happen to know how large OCaml binaries get if you use Core.Std?

No, I haven't even downloaded Core. I am more ignorant about OCaml than any of the others. I'd love it if someone else here could weigh in on the pros and cons.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#99
post #54

Earlier quoted context omitted.

Or easier to install .NET on linux that it is on Windows for that matter...

How? Recent version of Windows come with recent versions of .Net out of the box. How would you 'win' here? The core clr is supposed to be bundled as far as I understand, so it'll be just another dependency of your application: You don't even NEED to install .Net (on the system/system-wide) anymore.

Recent versions of windows come with whatever version of .net was stable at the time, in order to upgrade you have to download from msdn. This vs. `sudo apt-get install upgrade` etc.

The announcement of the windows package management features should help this though.

Re: Microsoft Launches Its .NET Distribution for Linux and Mac

#100
post #84

They mercifully waited until Java caught up a bit with version 8. Seriously, they could have fair chance, C# was so much better, but today it's still quite better but java is proven and has more libs.

Java, with Oracle at the wheel, is not going anywhere. They've added closures in 8, big deal. C# is centuries ahead of Java 8, and with even more to come faster. And I'm saying that as an old Java dev (for 8 years up until 2008 or so) who have only dabbled in C#.

Yep, the problem with Java is Oracle.
Post reply on HN