Live data from Hacker News

Microsoft takes .NET open source and cross-platform

news.microsoft.com

391–400 of 937 posts

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

#391

Good move, but (too) late. The move is designed to attract iOS and Android Devs to .NET. But let's see: As an iOS developer, I've invested years in learning Objective-C and Cocoa, UIKit, etc. Now I'm starting with Swift. I'm sure a lot of iOS devs feel this way. Besides, if I can't use it from OSX, then I'm out. Why should I forget everything and learn C#/.NET ? If I want a write-once-run-everywhere thing, then I cou…

When you use .NET to target iOS, you still use all the iOS frameworks. It's not like those cross platform Java widgets. The only thing that changes is that you don't need to use ObjC or Swift. Yes you have another stdlib, but your main investment in learning the UI and other platform specific stuff is not lost.

F# really is so much better, too. And C# is pretty great if you haven't embraced the holy lambda yet.

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

#392
post #253

Earlier quoted context omitted.

- Stacker - Netscape - SCO And many others besides. Companies have reputations just like people do (that's why we call them 'incorporated') and just like you can lose your trust in a person you can lose your trust in a corporation. This is not about Microsoft just doing 'stupid stuff sometimes' it is about institutionalized criminal behavior sanctioned at the highest level of one of the largest software companies in…

I'm curious whether, with the fullness of technological hindsight, you still deplore what they did to Netscape. Microsoft was the first to release a free browser included with the OS. That killed Netscape's business of selling browsers on a CD for $40, and Netscape was understandably upset. It now seems clear that an OS needs a browser included, at least so you can read documentation and download the browser of your…

I'm actually glad they did what they did to Netscape. Without Netscape dying, we would never have Firefox. I would argue that OSS as it is today would not exist without Netscape dying.

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

#393
post #297

Earlier quoted context omitted.

I don't know why you are being down voted. Erik Meijer, a huge .NET contributor who worked at Microsoft (on C# among other things), and was behind the reactive .NET extensions (and also a big Haskell contributor) - he was saying exactly the same thing about Scala vs C# - http://www.infoq.com/presentations/covariance-contravariance... I can also testify as someone who uses Scala on a day to day basis and used C# at wo…

Probably because, A), it was an uncalled-for digression into language wars, and B), now that we're here anyways, a lot of us think the majority of features in scala and Haskell for that matter are fundamentally misguided. My goal is not to write elegant code, but to write the least complex code with the lowest cognitive overhead. TCO, 10x the man-hours in maintenance and all that. If the choice is between having to w…

How can you think they are "fundamentally misguided" if you don't even know what they are? The category theory strawman is the absolute laziest, most absurd piece of FUD you could possibly resort to. It is even worse than the old "perl is bad because I don't want to read line noise" nonsense, at least that had some loose tie to reality.

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

#394
post #386

Earlier quoted context omitted.

- Stacker - Netscape - SCO And many others besides. Companies have reputations just like people do (that's why we call them 'incorporated') and just like you can lose your trust in a person you can lose your trust in a corporation. This is not about Microsoft just doing 'stupid stuff sometimes' it is about institutionalized criminal behavior sanctioned at the highest level of one of the largest software companies in…

>This is not about Microsoft just doing 'stupid stuff sometimes' it is about institutionalized criminal behavior sanctioned at the highest level of one of the largest software companies in the world. Welcome to American corporate culture :) You have to keep in mind that Microsoft had a monopoly for a very long time. While their actions may, in your world view, be "criminal", as a corporation Microsoft was acting comp…

> As a public corporation, they have an obligation to maximize value for shareholders.

I keep hearing that but I don't actually believe that is true.

http://www.washingtonpost.com/opinions/harold-meyerson-the-m...

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

#395
post #120

Earlier quoted context omitted.

I'd pin more of this on Scott Guthrie and Scott Hanselman, really. They have been championing this kind of behavior for years within MS.

Not really if you understand how large corporations work. I think Nadella being a former dev and understanding the importance of it has a lot to do with it.

In large corporations, initiatives like these do not originate from the top. You're right that Nadella was probably more receptive to this than his predecessor, but a lot of the heavy lifting for this had already been done by some very dedicated teams within MS over the course of years.

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

#396
post #358

Earlier quoted context omitted.

You intentionally chose code that is hard to read...I could easily do the same with C#. It isn't representative of the vast majority of the code that I use nor write. That being said, when you understand the nuances of type annotations, that code is quite readable in the mathematical notation sense. It is concise and takes more time per byte to understand, but it tells me enough about the code that I rarely have to r…

It's from the standard collections library, the most-used code in any language. It is in fact representative of the vast majority of code you use. The fact that it wasn't immediately clear to you that a lot of your code DOES use this code is probably the strongest argument I could make.

You have inferred more about me than you are entitled, and even if you were right, your argument is still poor. Have you read the c# stdlib? It is in no way any better. Stdlibs are always more complex than the code that builds on them, and that is by design. The same code that I use for a oneliner has to be robust enough to apply to play, akka, spark, finagle, etc. That is the primary reason why StdLib documentation is made more accessible. I have never had to read the Scala StdLib source code, and likely a tiny minority of Scala devs have done so.

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

#397
post #342
post #318

Earlier quoted context omitted.

> majority of features in scala and Haskell for that matter are fundamentally misguided I'm interested in the Haskell part. What features do you think are fundamentally misguided ?

I'm much less experienced with Haskell than with Scala, so I might be unfairly painting it with the same brush here. But, for example, https://www.haskell.org/tutorial/io.html . At the end of the day, this is a huge inner-framework anti-pattern over the same procedural syscalls that every other language handles procedurally. I shouldn't have to care what a monad is, and side effects? The whole point of I/O is side ef…

>At the end of the day, this is a huge inner-framework anti-pattern over the same procedural syscalls that every other language handles procedurally.

No, you have a tiny, very simple type that allows for type safe IO. It also happens to make haskell a more powerful imperative language than most imperative languages, as IO actions are first class and can be passed around and manipulated like anything else.

>So, basically, they acknowledge that their theoretical model has a huge impedance mismatch with what we write programs to do (I/O, eventually, somewhere)

No, they acknowledge that doing IO is so important that it should be done correctly. You are going to some pretty extreme mental gymnastics to misrepresent a language you want to hate.

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

#398
post #352
post #331

Earlier quoted context omitted.

> If the choice is between having to write null-checks or having to understand category theory to read my code Me too. Luckily this is a false dichotomy.

Here's a random line from the Scala standard collections library: def :+[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Repr, B, That]): That This is from the standard collections library. In Java, I've got a List.add function. In case it's not clear from the name, 'add', I can click through to the implementation and it's pretty obvious what's happening. In Scala, I've got +, ++, +:, :+, and a bunch of other nonsen…

How on earth does "I don't like operators" support your claim?

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

#399

Good move, but (too) late. The move is designed to attract iOS and Android Devs to .NET. But let's see: As an iOS developer, I've invested years in learning Objective-C and Cocoa, UIKit, etc. Now I'm starting with Swift. I'm sure a lot of iOS devs feel this way. Besides, if I can't use it from OSX, then I'm out. Why should I forget everything and learn C#/.NET ? If I want a write-once-run-everywhere thing, then I cou…

Just on a 'I can see the code in the stack traces' is benefit enough. I envy android devs being able to do that, while with apple code it's a bunch of binary.

You can see the comments that the platform dev put, which helps you deal with their assumptions about edge cases that are not documented. You can also see how they develop for C# internally to get ideas how to make your app better too.

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

#400
post #352
post #331

Earlier quoted context omitted.

> If the choice is between having to write null-checks or having to understand category theory to read my code Me too. Luckily this is a false dichotomy.

Here's a random line from the Scala standard collections library: def :+[B >: A, That](elem: B)(implicit bf: CanBuildFrom[Repr, B, That]): That This is from the standard collections library. In Java, I've got a List.add function. In case it's not clear from the name, 'add', I can click through to the implementation and it's pretty obvious what's happening. In Scala, I've got +, ++, +:, :+, and a bunch of other nonsen…

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 collections, because it's building a new collection (i.e. it's for immutable collections), so it doesn't have the covariance gotcha of arrays.

Scala's collections have some quirks, but not as many as .NET's collections and you're actually comparing apples to oranges, because you won't find the equivalent of an "add" that returns a new collection instead of modifying the old one in .NET.

This is what happens when you pass judgement unto things you don't understand. Working with immutable data-structures is really, really awesome and Scala's API for these collections is very friendly and very type-safe - as in, if you feel the need to use `isInstanceOf` / `asInstanceOf`, then you're probably doing something wrong ;-)

And I really wish that C# would grow up a little in this regard, as modern programming languages need immutable collections as well, with a nice API to go along with it. And btw - working with Option is super awesome, no category theory needed.

That said, as I was saying in another comment, I'm really excited about this announcement, because this is mostly about the runtime, not the language. You can run things built with Scala on top of .NET right now by means of IKVM. And the JVM finally has some credible competition.

Post reply on HN