Live data from Hacker News

Microsoft takes .NET open source and cross-platform

news.microsoft.com

721–730 of 937 posts

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

#721

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…

Do you honestly think this initiative began under Nadella? Open-sourcing any code at a behemoth the size of MS is a glacial process, and I can guarantee that so much code would not have been open-sourced from scratch in 9 months.

> I'll never switch back to MS for what they've done in the past...

I know people have their pet peeves, but IMO, opinions are better based on empiricism and data are than in infinitely repeated anecdotes:

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=269498

(Spoiler: it follows Betteridge's law. Disclaimer: it was published in 2001, so it does not account for any shenanigans post-2000.)

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

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

Generic code is made to be copy-pasted. Also, what's wrong with copy-pasting when it lets you write features faster?

It's a code smell that usually means there's something there to be abstracted, or that your API isn't as clean as it could be.

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

#724
post #495
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…

Pointing to CBF is a complete straw-man. You're rarely actually going to _see_ that signature (the docs actually simplify it for you), and in practice, it's completely meaningless to 99.9% of Scala you'll ever see. You might as well consider it pixie-dust. + for one, ++ to add a collection, the others are generally going to apply to Cons-like. It takes all of a couple minutes to let these sink in. Use a mutable.Mutab…

It isn't FUD: It's just the kind of thing that turns newbies out of Scala.

Your typical Java developer is used to just look inside the code of whatever library they are using, and find a very straightforward implementation. Scala collections avoid a lot of boilerplate with canBuildFrom, SeqLike and suck, but simple and straightforward they are not. It takes quite a while before it stops reading like Japanese.

And IMO yes, a lot of symbolic methods in collections make relatively little sense. Don't forget that list also has ::, :::, +:, :+ and :\. There's more than a few, and there are no textual versions of them, for those that don't have them all memorized. They are a bit of a relic from the time Martin thought that /: was a good idea. It's fortunate that now only the scalaz people keep doing such things, because excessive use of symbolic operations hurt language adoption.

And he doesn't even get into other early confusion points, like how we have =>, , or how decomposing Seqs is not exactly pretty. Last week I had to help a guy that had been using Scala for 6 months to understand the 'punched in the face' operator :_*

So no, it's definitely not FUD. Are they issues that hurt my day to day Scala use? Not at all. Scala is my favorite language. Being able to use it instead of Java or Clojure is worth a good 15K a year for me.But that doesn't mean that I have forgotten some of the little things that made the learning curve tough at first. Thanks the heavens that I managed to end up finding a Scala job where I could learn from one Bill Venners.

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

#725

Earlier quoted context omitted.

Much like countries, it doesn't necessarily make sense to treat companies like people when it comes to reputation. You shouldn't hold a grudge against a country forever, many of the people inside of it may have disagreed with its actions and more importantly the leadership could be completely different now. Similalrly, if most of the employees at Microsoft today are different than in the 90s and the leadership is com…

This is absolutely true but even in the present Microsoft has anything but clean hands: http://euobserver.com/political/125868 http://en.wikipedia.org/wiki/Intellectual_Ventures http://www.networkworld.com/article/2466540/software/munich-... And on and on.

1. Regarding the 1st link - Speaking from experience, if you do business in certain (primarily third-world) countries, bribery is the norm. It's as natural there as lobbying is in the US.

2. Regarding the 2nd link - MS has no control over IV's business, unless you have evidence otherwise. And that too, it's "unclean" only to the extent that you believe patents are evil, which is unfortunately an all-too-common view around here.

3. Regarding the 3rd link - see 1.

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

#727

Earlier quoted context omitted.

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.

The biggest problem with this culture is that it means that when the One True Way is wrong, we suck it up and use it anyways.

I mean, Entity Framework is great, WebAPI is slick, and MVC has its moments, but there are some real trainswrecks. I've used all three XML serializers in the .NET framework and they're all cringeworthy. ASP.Net WebForms could have been something spectacular with open development instead of the hideous monstrosity it was. And MSBuild would have been laughed out of the room and regarded as some kind of bizarre eccentricity like TempleOS or UrBit instead of a serious build system.

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

#729

Earlier quoted context omitted.

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…

The internals of STDlibs tend to be nasty, but externally they're designed to be clear. The problem here is externally these interfaces are extremely messy and hard to follow, i.e. the abstraction doesn't seem to work.

That is a good distinction to make. But then, you need to consider other factors as well. How powerful is the API, how honest is the API (doesn't hide internal gimmicks), how consistent is the API across the lib, and how DRY it is (to the STDlib implementors).

Scala's STDlib might be more powerful, more honest and more consistent, and also might be striving to be DRY for the implementors.

Personally, I feel that Scala's Collections goes overboard in hitting the above goals, and the resulting signatures are too verbose. And this increases the cognitive load for the subset of people that need to bother about it (performance tuners, architects, etc). But that's not a fault of the language per se.

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

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

Oh aren't you so smug.

I was at the 2000 PDC when they announced C#. We are now just shy of 2015. My 15 is more accurate than your 12.

Post reply on HN