Live data from Hacker News

Microsoft takes .NET open source and cross-platform

news.microsoft.com

451–460 of 937 posts

Re: Microsoft takes .NET open source and cross-platform

#451

Earlier quoted context omitted.

C# as a language is better than Java, but not as good as Scala.

As someone who has written applications in C#, Java and Scala (amongst others). I'd be curious as what makes you think Scala is a winner relative to C#?

One big thing: Immutability by default. That's possible in C#, but it's hard to be sure everything is immutable => http://stackoverflow.com/questions/5097287/how-to-create-imm...

A lot of interesting aspects of Scala are possible only because of immutability.

And a lot of smaller things: * Typeclasses. In Scala you can implement them with implicit parameters, I have no idea how you would do it * Case classes. Again in C# you can implement something that kinda looks one with readonly and just a getter, but it's not as good as you won't get stuff like equality and copy, you'll have to write the boilerplate * Pattern matching, in particular with case classes * Option. You can create your own, or use the Option from FSharp, but all the lib you will use will be returning null all the time. * And more...

Additionally there are aspects that are more of a personal preference, like how the "map" function is called "Select" and "filter" is called "Where", and so on. All functional languages use the same names, the SQL-like naming for manipulating collections is just confusing for me.

At the end of the day, Microsoft tried to build a better Java when they designed C#. And it is indeed better than Java, especially because they moved fast in their versions while Sun/Oracle was terribly slow (why did we have to wait that much for lambdas??). But C# mostly sticks with the same concepts as Java (OOP) while Scala truly embraces both FP and OOP.

Re: Microsoft takes .NET open source and cross-platform

#452
post #279
post #72

Earlier quoted context omitted.

One theory I've read is Microsoft wants Xamarin to stay third-party so Microsoft's competitors continue working with them. Xamarin is working with a great many companies who would think twice about working with Microsoft directly. This way Microsoft can shove money to Xamarin to forward the ecosystem without scaring anyone.

Not only that, but Xamarin's independent existence is like free insurance for companies choosing .NET - even if Microsoft were to drop support (unlikely, but look at Silverlight), Xamarin would continue providing a viable way forward for the language and runtime. Now that MS's .NET is open source, Xamarin's .NET is like OpenJDK - Xamarin is a governing body and authority for the language/API if Microsoft were to drop…

Xamarin is IntelliJ, and Mono is OpenJDK

Re: Microsoft takes .NET open source and cross-platform

#453
post #263

I just want to add my $.02. It's about fucking time. They should have done this 15 years ago.

That might have been difficult, given that .NET is only 12 years old.

Actually it goes back to 1999 and was a project that involved HP, Microsoft and Intel. The first release was in 2002 and it was public knowledge in 2000.

Re: Microsoft takes .NET open source and cross-platform

#454
post #259
post #258

Earlier quoted context omitted.

Yes, that's why you would use F# in .NET if you want something like Scala. And then I heard many people say that .NET wins again.

F# is elegant but ultimately held back by its lack of higher kinded types.

Held back from what? I mean, I'd love it even more if it had higher kinded types, but it's a pretty great language as is.

Re: Microsoft takes .NET open source and cross-platform

#455

Earlier quoted context omitted.

> Does it? Yes. You say you want choice, but if you didn't have a browser how would you download the browser of your choice? Osmosis? Or, more importantly how would your average user download their browser? Every OS since then (OSS or not) has shipped with a browser and has made it the default for any API rendering that needs to occur (e.g. Ubuntu, Android, OS X, Windows, iOS, Firefox OS, etc). Netscape's business mo…

I know people who are pissed because Microsoft bundled in their own TCP/IP stack, which killed the companies that were selling TCP/IP stacks for Windows. When I ask them "can you imagine any OS delivered today without that bundled in?" they change the subject.

Network support has been an OS feature since before Microsoft even existed.

http://en.wikipedia.org/wiki/Ethernet

http://en.wikipedia.org/wiki/Microsoft

Yes, there are people that probably would have preferred Peter Tattam's company to be bought by MS. (It was shareware, see thread here: https://news.ycombinator.com/item?id=2282875). But it definitely wasn't an obligation.

Very few would argue that an OS has to have a browser to be functional. Just like very few would argue that all networking should be done in a user space process not part of the operating system.

Re: Microsoft takes .NET open source and cross-platform

#458

After recently using Microsoft's online tools (OWA, web-based office, etc.) and the IOS version of OWA, I'm shocked at how bad the UX has become. Recently, there was a bug that makes the IOS OWS client replace its standard icons with emoji. It's been over 90 days and the bug is still not fixed. There have recently been a lot of bold decisions at Microsoft. If anything can turn around a dying company it's this kind of…

Not sure why the downvotes. I'm rooting for MS to be successful.

Re: Microsoft takes .NET open source and cross-platform

#460
post #420

Earlier quoted context omitted.

For a Scala developer that signature makes sense. You want to add an element of type B to your collection with elements of type A, however the addition of an element of type B may not be supported (e.g. you may want to add a String to a BitSet and get in return a plain Set[Any]), so the above works only as long as there is a builder available that can build the new collection. The function also works on covariant col…

I agree that Option types are great, so great that I'm happy to work in a much 'weaker' language, use option types, and solve 90% of the problems that more 'theoretically robust' languages address with none of their downsides. As far as not understanding how awesome immutable data structure are.. I'd take a step back before you make assumptions about what other people understand. Do you know anything about cache hier…

> Do you know anything about cache hierarchy and memory models on modern CPUs?

Yes.

> Performance is important to some of us.

... and in those cases, you don't have to use data structures that model your problem domain poorly.

The problem isn't "immutable data structures" or "theoretically robust" languages. The problem is finding ways to express computations and their constraints in a way that can be efficiently modeled for your problem domain.

Post reply on HN