Live data from Hacker News

Microsoft takes .NET open source and cross-platform

news.microsoft.com

671–680 of 937 posts

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

#671
post #480
post #467

Earlier quoted context omitted.

To be fair, understanding I/O in Haskell takes quite a bit of mental gymnastics. :) The I/O monad modifies the Universe that contains the set of all functions that comprise your program (if I even understand the concept correctly).

> The I/O monad modifies the Universe that contains the set of all functions that comprise your program That sounds rather complicated. My way of thinking of it is simpler than that. a -> IO b is just a function from a to b that can do some I/O. Nothing more complicated than that.

It is (slightly) more complicated than that. Your return type is not b but IO b. Your callers will be performing functions that are defined on IO b with the result (such as bind)

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

#672
post #577

Earlier quoted context omitted.

Well as your parent post indicates MS did a lot of bad shit. "oh I screwed you mommy over again and again, no worries, no foul, now we are chums, lets be all buddy buddy and sing Kumbaya in a circle" doesnt work all that well in practice and neither should it. That is what learning from past experiences is about. When a behavior gets institutionalized, it is likely to repeat more often than not. It requires exception…

Yes, but as my post indicates, they've done a lot of good stuff since the bad stuff they did 20 years ago. They've had exceptional evidence and time, but hating Microsoft is just the thing to do in some IT circles. It doesn't matter what MS does, the cool kids will still hate them. And that's fine. I just don't want to hear about it. You're mad. We get it. You don't have to like them, all we ask is that you stop brin…

> I just don't want to hear about it.

... and therefore people should curtail their speech ? stop talking about relevant things that transpired ? May be you are a tad shaky on the concept, lets burn all the existing history books and those about to be written.

> They've had exceptional evidence and time

That is your opinion. The way it works is that you dont get to decide for someone else who has lost the trust whether MS has done enough, its the prerogative of the person who has lost the trust. The waiter at a restaurant chews on the serving and says this food is perfectly fine and you must push it down your throat isnt a very solid defense of the food. The buck stops at the desk of the restaurant patron.

And who said 'hate' ? That seems like your construct. Its a question of choice, should one buy into the MS ecosystem or not. Every person makes his / her own choice. I for one am now more willing to invest time in learning F#, but quite queasy about being dependent on that ecosystem financially.

> But you're still dragging the thread off-topic.

Oh really ? what exactly was off-topic in the thread and why. As I said, perhaps you are a little slow on the concepts.

> the bad stuff they did 20 years ago

False, and this has been amply demonstrated on this thread. But the time is not relevant. What is the relevant is the confidence / assurance that it wont happen again and the wisdom or the lack of patronizing a repeat offender. Why did those bad things happen, and why wont those things happen again. Whoever wants to use their products need answers that satisfy them. Different consumers will have different standards.

Perhaps it is good teachable moment for corporations. Deliberate and repeat actions can continue to affect them long after. If those in charge were so concerned, they perhaps should have thought it through. After all you make the bed you lie in.

A parting thought, those bad shit, they were far from an impetuous one off.

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

#673
post #590

Earlier quoted context omitted.

What's the story for F#? I'm a Haskell enthusiast, but it's not so good at Windows support, or libraries. I've been thinking F# might be just the ticket.

F# has Query Expressions[1] which are just Computation Expressions[2], i.e. not a language extension, a library. If you know Haskell then it's pretty easy to get into F#. The only thing you'll miss are higher-kinded types. Although they can be hacked in[3], it's not really worth the effort a lot of the time [1] http://msdn.microsoft.com/en-GB/library/hh225374.aspx [2] http://msdn.microsoft.com/en-us/library/dd233182.…

Agree - also I think f# can't dispatch on the return type of a polymorphic expression as I thought that was only possible with type classes?

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

#674
post #352

Earlier quoted context omitted.

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 col…

>>> This is what happens when you pass judgement unto things you don't understand

I think it's kind of the point if the judgement is on the question "what is easier to understand". I think this is the sentiment many people staring to learn Scala are feeling - the barrier to entry, even if you are coming not from the blank slate but from the background of programming many years in many languages, is pretty high. It's not the judgement on "whether Scala and its collections are good/done right", which is entirely separate question from "whether it is easier for someone to understand how C# collections or Scala collections work".

>>> And btw - working with Option is super awesome, no category theory needed.

Well, if you want to do something like making a function that works on Option from a function that works on the underlying type, you pretty soon find yourself in that general area.

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

#675
post #480
post #467

Earlier quoted context omitted.

To be fair, understanding I/O in Haskell takes quite a bit of mental gymnastics. :) The I/O monad modifies the Universe that contains the set of all functions that comprise your program (if I even understand the concept correctly).

> The I/O monad modifies the Universe that contains the set of all functions that comprise your program That sounds rather complicated. My way of thinking of it is simpler than that. a -> IO b is just a function from a to b that can do some I/O. Nothing more complicated than that.

I recommend just regarding IO a as an action, or some description of an action, that returns a value of type a. And (>>=) constructs bigger actions by attaching continuations to actions.

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

#676
post #2

2015 is going to be a year of Microsoft.

I doubt. It should be a year of Linux desktop, haha. Wayland with drivers from Nvidia, KDE 5 and Mozilla Shumway are supposed to be coming. And also Daala video codec and Steam Machines / SteamOS. Quite a number of breakthrough developments for 2015.

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

#678
post #463

Earlier quoted context omitted.

> Ohh I see you want to write a tcp server with asynchronous processing? Here's some generics you can just c&p. So we've come to the point where copy-pasteability is a language feature? Tell me I can use a library or module. Tell me that the language comes with built in features to help me do this or that. But never tell me I can copy-paste generic code. Please.

That's actually one of the features of C#, if something is needed or is hot in another language, it will appear in the core libraries. They've realised recently this is having a negative effect on open source C# code as so much of the community waits for the "offical" version, but it has its positives too, almost anything you want to do is in the core libraries.

This is my main grudge with .NET development, a culture of preferring The One True Way. It (among other things) leads to a lack of .NET FOSS diversity.

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

#680
post #647
post #327

Earlier quoted context omitted.

Generics, Partial Classes, awesome Reflection API, Lambda syntax, LINQ, C/C++ compatibility, async/await, concurrency primitives, etc. I have worked with prettier languages, for instance I have picked up Haskell recently, I have also worked with faster languages, C was my forte for many years and I have worked with languages in the GSD category like Ruby and Python. C# is appealing not because of some feature that it…

multiple competing event loops for instance Fortunately Windows has implemented message-passing event loops for you for a couple of decades. And they're pleasant to work with as long as you don't mind everything being a WPARAM/LPARAM.

Those type of event loops are for Win32 API GUI applications.

Server applications like a async socket server use IOCP, a kernel based type of event loop that is highly performant and scalable. And by the way, the .NET CLR already uses them at its core for sockets and other types of I/O.

Post reply on HN