Live data from Hacker News

Microsoft takes .NET open source and cross-platform

news.microsoft.com

711–720 of 937 posts

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

#711
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…

If I'm not mistaken C# 6 will be improving on the null check thing as well. Though, the syntax seems jarring to me right now (so did the inverted SQL-like linq style - yeah for the fluent style).

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

#712
post #552

Earlier quoted context omitted.

All those "Best on IE" and "Best viewed on Netscape" image buttons from back in the day... I thought I had forgotten about them, but you had to drag them up from the depths... ;)

> I thought I had forgotten about them You thought you had forgotten about something? How does that work.

I forget. Maybe it'll come to me.

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

#713

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 a huge momentum at the moment. Quickly rising in the Tiobe index. It's an ML-style functional lang for the CLR. It's not as powerful or pure as Haskell in terms of type system and style, and it is lacking (or is more pragmatic) in a few places to be interoperable with other .NET langs. It has some really cool features though that are quite unique, such as Type providers http://fsharp.github.io/FSharp.Data/libr…

F# 4.0 pre-release was just announced/shipped:

http://blogs.msdn.com/b/fsharpteam/archive/2014/11/12/announ...

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

#714
post #253

Earlier quoted context omitted.

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…

This is actually the greatest fumble in the history of Antitrust in my opinion. Yes, it's become clear that a web browser should be bundled in the OS, and even as I said at the time, when I was a teenager, you need a shitty web browser to download a good one, or at least it's a big help. What Microsoft did, and is admitted in a book, is to leverage the Windows monopoly to strengthen the Office monopoly, which had imp…

Curious, considering office was available on mac since epoch, both office and windows got simultaneously the monopoly status, got never bundled with Windows, how is this true?

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

#716
post #673
post #590

Earlier quoted context omitted.

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?

I think it's possible by including the return-type in the argument list and using inline operators. You really have to jump through hoops though to make it work and the resulting code is damn ugly. Take a look at the source for FsControl[1]. It implements what they call 'type methods'. So there's types for Monad.Bind, Functor.Map, Applicative.Pure, etc.

I'm still trying to get my head around it; I thought I'd try to do so by implementing the core types and functions in Haskell's Pipes. So far I've managed to convince the F# compiler to take well over an hour to compile 70 lines of code!

The main argument against them has been lack of CLR support. But it seems that there's already the FsControl way, so I think some syntactic sugar would go a long way.

So yeah, until there's language support for type-classes I think it's probably not worth it.

[1] https://github.com/gmpl/FsControl

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

#718
post #661
post #565

Earlier quoted context omitted.

The IO monad is just an action. Its a cons pair with a left and a right half. In an imperative language you could model the left half with a closure that takes no arguments, does I/O and produces a value. The right half is usually empty, except when you use the `>>=` operator (or flatMap) on an existing action, e.g. let c = a >>= f That operator chains the function `f` can take the value produced by the first IO acti…

or these PureScript examples https://gist.github.com/spion/982350f4b3d3464b1870 using the Canvas monad to pre-create a scene and then render it; the DOM monad to construct DOM elements.

So how are errors handled?

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

#719
post #125

It's funny how Nadella has moved the needle more for developers in 9 months than Ballmer did in the last decade or so, and all that without running around like a madman too. Pretty good. I'll never switch back to MS for what they've done in the past but it is nice to see them try hard to become a nicer player in the software eco-system. Google and Apple need some other party to keep them sharp, it might as well be MS…

Seeing comments like this “I'll never switch back to MS for what they've done in the past” always reminds me of this post from Hanselman http://www.hanselman.com/blog/MicrosoftKilledMyPappy.aspx

Many people who hate Microsoft do it as a pavlonian response to years upon years of fighting against crappy Microsoft products. People who'd like to spend 90% of their time creating instead spend 25% creating, 30% watering it down enough to be easily "cross platform", and 45% of their time figuring out why-the-fuck-it-doesn't-work-in-Internet-Explorer. This is the same browser where merely calling console.log threw an error until surprisingly recently.

I met a bunch of the IE folks at CES 2012, and I honestly believe their trying to be better web citizens. They are still slower than I'd like, but IE isn't quite terrible anymore. I have friends who work at various browser vendors, and I don't sense any lingering ill-will towards IE.

That said, I certainly understand why some people are slow to get excited about Microsoft. You don't have to be middle-aged to have personally experienced the bad side of Microsoft.

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

#720

Earlier quoted context omitted.

Actually, the vast amount of features in C# isn't improving readability. But MS can't just throw out the bad half of features, which makes C# practically unimprovable. Scala has a similar problem.

Why not? I just can't see why every language needs to gather cruft rather than evolve elegantly. Imho major versions of compilers should aim to NOT remain backwards compatible, so they can remove or change things in the syntax while they add things.

Imagine this. I'm using Cool-Lang version 2. Now Cool-Lang 3 comes out. It has lots of features that I want to use. If the new version is compatible with the old one, I download it and start using it. If not, I have to convert my whole codebase first. In practice, that means it may be many years before I can use version 3. Look at Python. In 3.0, they decided to clean up some stuff from 2.x. They even wrote a tool 2to3 which will automatically fix most of the incompatible stuff for you, so converting the whole codebase is almost automatic. The problem is "almost" automatic is not enough. Many people and groups have yet to convert their old code.
Post reply on HN