Live data from Hacker News

The Weakness of the .NET OSS Ecosystem

aaronstannard.com

141–150 of 215 posts

Re: The Weakness of the .NET OSS Ecosystem

#141
post #22

A good chunk of that is the "invented here syndrome". With EF, WPF, ASP MVC, MEF, etc, plus annual MSBuild conferences, .Net has far more internally-developed ecosystem than Java. Which tends to promote the idea that the MS way is the right way, and if I need something else I must be doing something wrong (or I need to wait till next year). Perhaps MS should just kill off all these frameworks and force the community…

That's one of my favorite things about Microsoft. Whenever they release a framework or a product, there's a tendency to just call it whatever the name of the technology is as if they invented the whole thing. SQL Server - When .NET developers say SQL they mean SQL Server 90% of the time it seems. MVC - MVC4 is a .NET Rails clone. Named MVC as if Microsoft originated the design pattern that was used to clone another f…

Microsoft SQL Server is named so because it originated from `Sybase SQL Server`. Microsoft joined forces with Sybase to port it to Windows NT. The name is kept after they went on their separate ways.

ASP.NET MVC is named so to clearly differentiate from ASP.NET Web Forms (i.e. primarily for branding). Even now, sometimes when people talk about ASP.NET, they actually mean ASP.NET Web Forms.

Re: The Weakness of the .NET OSS Ecosystem

#142
post #17

Yes, the author is correct. There is a distinct lack of OSS in .NET. I've been trying to find a project to contribute to among the graveyard on Github. However, I think the author falls flat explaining the why. I have a few thory on this. For so long C# has been a walled garden of closed source software. This closed source software, for the most part, works damn well. Why reinvent a square wheel when there is a shop…

> There is a distinct lack of OSS in .NET. I've been trying to find a project to contribute to among the graveyard on Github. However, I think the author falls flat explaining the why.

Simple, Microsoft killed it with the transition to .NET.

People have forgotten just how extensive both the open and paid ecosystems were around Visual Basic 6 circa 1999-2001. Those ecosystems were huge--they absolutely dwarfed open source ecosystems in the same timeframe.

Then Microsoft completely stomped it flat with .NET in 2001.

After that, people with two brain cells to rub together figured out the decision matrix really quickly.

1) Stay with VB6 until it finally breaks (still running today)

2) Switch to something non-Microsoft like Java

3) Switch to web-based stuff (Hey this XMLHttpRequest stuff is kind of cool)

4) Port it to Visual C/C++--whoops--the Microsoft C compiler sucks donkey balls

5) Port the code to Microsoft's new crap until they stab me again

And then they wonder why, 15 years after shooting their developer ecosystem in the head, their ecosystem is inferior.

Re: The Weakness of the .NET OSS Ecosystem

#143
post #132

Earlier quoted context omitted.

>> The MVC as if Microsoft originated the design pattern RoR did not invent MVC. MVC (Model, View, Controller) was created by Alan Kay while working at Xerox, when he created SmallTalk and that was back in 1972. Edit: My apologies to Trygve Reenskaug as it appears he was the one responsible for adding MVC to SmallTalk. https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93con...

>> RoR did not invent MVC. Well aware of that. Was pointing out that Microsoft named their framework MVC as if they did.

Except they didn't.

They named it ASP.Net MVC.

Their other framework follows the same pattern:

ASP.Net WebForms

Re: The Weakness of the .NET OSS Ecosystem

#144
post #6

The OSS "weaknesses" of .net are a chicken and an egg problem; the more people who come from a community software background that use a framework, the more community software there will be for that framework. Having what reads as a very angry and negative blogpost about the state of .net oss isn't really helping. Contributing software is though, and that really should have been the focus of the post, not how weak and…

I hate this attitude that negativity is unproductive. Pointing out a problem, articulating its impacts, and hypothesizing about its causes are essential steps to effective problem solving. And I further abhor the notion that anger is not useful. Anger gets attention, and passion elicits empathy and thoughtfulness. Anger is motivating. Anger is a rejection of despair, which is the real enemy of change.

Do you respond well when someone yells at you? Honest question.

In a lot of cultures anger is seen as weakness, it's the person giving into negativity. It's also seen as hostile. I don't attribute "passion" to someone who is angry. You can be angry without being passionate, and vice versa. Some people are just bitter.

I'm honestly really surprised by this response.

Re: The Weakness of the .NET OSS Ecosystem

#145

I think it is important to realize that the .NET OSS ecosystem is not something that has been around for a long time. In the F# community, it truly started working as an "OSS ecosystem" only a couple of years ago - and the rest of .NET is following - and I'd say it is only starting to really exist now. Although .NET has been around for ages, people are only learning what OSS means and I think the F# community is lead…

At my last job we ported the build scripts to FAKE and afterwards many people (everyone?) felt that it had been a mistake. There were probably a few reasons for this:

1. we wanted to split the build scripts across multiple files, as we had multiple builds sharing common parts of a build process, and the only way of doing that with F# seemed to be writing a bunch of scripts that #load-ed each other. This was unpleasant.

2. at the time FAKE tried to kill processes it launched at the end of a build, but this was not implemented terribly well, so if you ran multiple FAKE builds in parallel on the same Windows box there was a fair chance they'd start trying to murder each other, and you'd end up having builds fail for no reason. This was fun to debug. IIRC FAKE was trying to track processes using process ids, but these get recycled...

3. we weren't using F# for anything else in the business, so having the build scripts in F# meant even less people wanted anything to do with them.

Here's a Q&A with myself that I wrote at the time about the #load-ing stuff:

Q1. do you recommend constructing build systems out of many .fsx scripts that #load each other?

A1. no. the #load mechanism of f# scripts is lamentable, in that it does not like you #load-ing something twice, yet no mechanism like #pragma once or #define / #ifndef is provided.

Q2. couldn't you work around that problem by not making your "library" .fsx scripts #load anything, and write a top-level "main" .fsx script that #loads all transitive dependencies exactly once in the correct order?

A2. yes. yet that sounds strangely similar to what you might wish a build system to do for you.

edit: and now I'm reminded of something else, that isn't to do with FAKE, just another fun windows parallel build interaction thing: you run a couple of builds on a windows box using jenkins. in each build, you use msbuild to compile some visual studio project. msbuild launches some mspdbsrv process that is cleverly shared between msbuild processes. then the first jenkins build finishes, and jenkins cleverly kills all processes launched by the build, including mspdbsrv, while the second build is still using it. hurray for interactions between two different pieces of clever software! at least this one is fixable by setting environment variables telling msbuild not to do this once you figure out what is going on.

Re: The Weakness of the .NET OSS Ecosystem

#146
post #120

I think it is important to realize that the .NET OSS ecosystem is not something that has been around for a long time. In the F# community, it truly started working as an "OSS ecosystem" only a couple of years ago - and the rest of .NET is following - and I'd say it is only starting to really exist now. Although .NET has been around for ages, people are only learning what OSS means and I think the F# community is lead…

Indeed. And it's very possible that the .NET OSS ecosystem will grow dramatically soon, once its core components, compilers, and build tools finish being open sourced and become stable on non-Windows platforms. The article accused people using .NET of not choosing to work on hard problems. I suspect that's it's the other way around. People working on hard problems have chosen other tools that they felt were more appr…

I think the status of the development tools has/had a lot to do with it. As a .NET developer, it's always been unclear until a few years ago as to how you could get the free tools and what you could do with them.

I'm specifically talking about Visual Studio here.

So there was always this perceived barrier to entry, even if it wasn't true -- for example with C++ I know I can just grab a linux box and have gcc and use it. With .NET, until recently it was -- pay for Visual Studio? Use the free version but it's only an express version so can I use it commercially? Use MonoDevelop which is alright but doesn't feel quite as nice under Windows?

Now that we have an official toolset on Linux and the licensing behind Visual Studio seems a hell of a lot less confusing, I think we'll see the community grow.

There is also the hate thing; but I'd counter that with the observation that there's also a lot of Java-hate out there too. They aren't seen as "hacker's languages" but "ewww yuck big bank enterprise-y languages". So I don't know.

Re: The Weakness of the .NET OSS Ecosystem

#147
post #61

Really the simple issue has always been the same with MS-platform based OSS; People look to MS to provide the canonical frameworks, tools, and libraries. MS is far more used in corporate environments as a portion of their market, and are more subject to business decision making; much of that focused on RAD / designer tooling. There's a different philosophy in the open source world - python, perl, c - none really have…

I've worked on open+closed source in enterprise startups with people that come from both MSFT- and Linux-centric worlds respectively. The MSFT centric-people tend (not all) poo-poo open source as a complete waste of time and/or lack of business savviness (helps competitors too much). There is some open source contributions in such shops, but usually only if it helps (and doesn't seem to hurt) the bottom-line. PS: Unf…

I understand your feelings but legally speaking the only abuse of that kind would be taking GPLed software, modifying it, distributing it and not sharing it back. If the software has been licensed with BSD or similar licenses that don't require to share modifications, then the original developers are perfectly fine with not seeing anything coming out from those corporations. Their choice, no abuses.

Re: The Weakness of the .NET OSS Ecosystem

#148
post #61

Really the simple issue has always been the same with MS-platform based OSS; People look to MS to provide the canonical frameworks, tools, and libraries. MS is far more used in corporate environments as a portion of their market, and are more subject to business decision making; much of that focused on RAD / designer tooling. There's a different philosophy in the open source world - python, perl, c - none really have…

I've worked on open+closed source in enterprise startups with people that come from both MSFT- and Linux-centric worlds respectively. The MSFT centric-people tend (not all) poo-poo open source as a complete waste of time and/or lack of business savviness (helps competitors too much). There is some open source contributions in such shops, but usually only if it helps (and doesn't seem to hurt) the bottom-line. PS: Unf…

If MSFT centric people think open source is a waste of time that helps their competitors, and open source contributors are wasting their time helping their competitors, then doesn't that mean the MSFT centric people are perfectly right, and people really should avoid contributing to open source unless it help their own interests directly?

If you want open source and user pays at the same time, then it's not really open source. What you end up with is closed source which has already worked well for a lot of companies.

Re: The Weakness of the .NET OSS Ecosystem

#149
> I was incredulous when I couldn’t find a developer-friendly implementation of Murmur3 in C# already.

I've got Murmur3 for you [1] - you can stream into it if that interests you at all. Here's my unit tests [2] (which are arguably the hard part because the reference tests are strange).

I agree with your article, though, a lot needs to be done. E.g. Frustrated with the lack of a .Net diffing lib I went and wrote one based on patience diff [3] and the best I've gotten is one issue. Nobody seems interested in solving problems like the ones you are talking about.

[1]: https://gist.github.com/jcdickinson/4bda826eb2e3f58e38c4 [2]: http://stackoverflow.com/questions/14747343/murmurhash3-test... [3]: https://github.com/jcdickinson/difflib

Re: The Weakness of the .NET OSS Ecosystem

#150
I'm always disappointed when I hear about .Net being open sourced and .Net running on Linux and so on. Because the discussion completely ignores the existence of desktop applications. If you used Winforms or WPF or DirectX, etc. then you're still locked in to the closed source world and Windows only. I know desktop applications aren't cool anymore, but if you were cool, you wouldn't have used .Net in the first place.
Post reply on HN