Hacker News new | past | comments | ask | show | jobs | submit login
Detailed thoughts on the State of the .NET Foundation (github.com/dotnet-foundation)
161 points by oaiey on Oct 17, 2021 | hide | past | favorite | 95 comments



It feels like it only exists to try and emulate the look and feel of a community-driven and community-governed FOSS construction while at the same time being in commercial control of Microsoft since that it what the value is to them. This makes sense, being beholden to shareholders and profit and all that, but not even pretending it's just commercial developer advocacy/evangelism (which would have been fine - lots of companies do this to various degrees of success) is red flags all over.

It feels like they want to 'buy' and 'construct' community, which is generally not how those come to be. It's much more like the VB and COM days where they just try to convince developers that in the land of closed systems they haver the best development experience to reach business goals. But in the land of open systems, that push doesn't work.

They would have been better off either copying the Apache Foundation or the CNCF, or just incubating their stuff in to one of them. But the first option would not have come with a community, and the second one would be risky since they would have to soft-compete with what's already there and they aren't all that convincing in their value proposition when you make that comparison.

The foundation isn't inherently evil or bad, it just isn't what the larger FOSS or OSS communities expect and thus it's not getting the same traction and benefits, making the whole exercise feel dead in the water and not useful to anyone.


I would encourage you to re-read this with the first reply. I agree it looks like it's an effort to placate and build a favourable image, but I think the intentions are to build something more substance beyond this.


I agree that the intentions might have been different, but the outcome seems to have ended up being legal-laundered... it tarnished the project and this is where we end up. The most recent comment on the issue puts this conflict in much better words than I could.


Is .NET bigger than Microsoft, or is Microsoft bigger than .NET? That's the real question being asked here.

The philanthropic energies of the open source community are often in direct conflict with command-and-control corporate structures and even the legal system itself. Pretending like the conflict doesn't exist is how these folks got into this mess. Microsoft has a chance here to generate a huge amount of goodwill not only in the .NET community but also the open source world by choosing to relinquish the "company behind the curtain" aspect apparent in the Bylaws. Articles and blog posts will be written about what happens here. The usual comments of "embrace, extend, extinguish" might themselves be extinguished by Microsoft choosing philanthropy.

Without the philanthropic energies of projects and maintainers, what is the purpose of the Foundation anyway? If .NET as a brand is too important to risk tarnishing by people not on Microsoft's payroll, then abolish the Foundation altogether.


This is a Chesterton's Fence situation. Suddenly the .NET foundation is receiving lots of spotlight on its flaws but one needs to understand the historical progression of the organization. Miguel speaks this clearly:

> The transition from the old model to the new model was a major concession from Microsoft

The current .NET Foundation is an improvement on what existed before. Is it independent? Not completely, but .NET is more independent than it was. Is it frictionless, transparent, trustworthy? Not completely, but .NET is more than it was.

Of course the current discussions show it is now time for the next steps and move on from the tradeoffs that brought the Foundation into existence. There are many ways to improve and their messaging/communication is the must urgent one. But it's also important to recognize that the Foundation's organizational design flaws are not a "plot", not result of incompetence nor malice; it's progress, slow as one would expect from the complexity of its goals.


You are right with this. It was a big step for Microsoft then.


As a slave any new privilege is better than having less than before.


Slave to what exactly at this point?


To Microsoft. You're basically becoming a slave by joining the foundation, agreeing to have them own your projects.


You don't become a slave, but you give up control of the project and you basically become a volunteer employee of Microsoft. If someone does pay you for your work on that project, then it's not so bad. If the project was your passion, it's not a good idea.


No you don’t. They have a contribution model where you keep the copyright. I recently had a project accepted under those terms.


If you go this way, why even bother with whole .NET ecosystem? It is all Microsoft. It would be easier to go with Python/Ruby maybe Java.


Going Java and dealing with Oracle is easier than .NET and Microsoft?


If I'm not mistaken, you can do Java without ever having to deal with Oracle, unless you work on Java itself.


I may be an out of touch old-timer but I still find it kinda sad and weird that Miguel and Nat, both of them heroes of mine in the early 2000s now work for Microsoft.


Miguel and Nat have, ever since the early '00s, been enthusiastic supporters of Microsoft technology and have spent this century doing little other than enabling Microsoft tech to play well with open source.

The takeaways from this are:

1. This is likely a lifelong dream for them. I'm not comfortable with shitting on people's lifelong dreams.

2. I definitely saw it coming. As soon as I saw Microsoft acquired Xamarin and retained both of them, the first thing that popped into my head was "this makes perfect sense". You can draw a straight line from their early work on Mono to their acquihire.

3. They are still spending their lives enabling Microsoft tech to play well with open source; the only difference is that Microsoft is now paying them to do it.


I think it's possible to find an effort both noble and foolish, which is exactly where I am here. I love that they thought they could shift Microsoft in a better direction, and hoped that they could succeed; but nevertheless was nearly 100% sure that it would never really happen.


You're nearly 100% certain that enabling Microsoft tech to play well with open source would never happen?

... It's already happened.

And it's the only reason Azure isn't already dead, and that Microsoft's market share and stock price haven't cratered.


We are working with very different definitions of "play well with open source;" Mine favors the ideals of free and open source software and doesn't really care much either way what happens to MS.


Do you remember Microsoft of the 90s?


I do. That one was much much worse than the one today, I grant you.

But also, I've been around long enough to know why; if you think it's because Microsoft "grew a heart" or somesuch nonsense, I bet you also believe that hotels stopped doing small prepackaged bottles of shampoo and cleaning the sheets nightly because they care about the environment.

Microsoft warmed to open source because THEY LOST. Their software was so inferior that they were eventually forced to admit it because they would lose money if they didn't. That's all.


So, the thing you didn't think was going to happen happened, and you don't care what happens to Microsoft, but you care that the thing happened because Microsoft lost?


eh, I suppose I should have been more clear about "better direction." I meant a "much better direction."


Sure. Did something substantial change meanwhile?


Loading up a local instance of a user-friendly CMS to wget mirror for a static site inside an Ubuntu terminal from the Windows store is still a surreal experience.


Would you feel better if they worked for Apple?

Microsoft is a much more open company than Apple, just look at the immense output of Microsoft Research over the years.


Apple's Swift OSS-side seems to be a whole lot better than .NET's OSS-side in some aspects, it'd be a neat comparison to make but I imagine the net result will be about the same when you take other aspects in to consideration.


Microsoft Research is great. But Microsoft Research isn't Microsoft.


Since you specifically ask: I would probably respect them more if they had joined Apple. I think it's obvious that the bar is noticably higher there.

Of course, this is all based on whether they actually thought about it strategically before deciding to go with C#. Perhaps they were thinking they'd get larger roles at Microsoft, perhaps they didn't think about it all and Microsoft was the most direct option due the the C# language choice.


On the other hand, Apple ended up finding more success with "embrace and extend" than Microsoft did. So much so that when you go to most free software conferences, well, back when in-person conferences still happened, most of the developers are running and writing free software on Apple's proprietary operating system.


I think Carmack going to Facebook is the one that got me.

Somehow Rob Pike and Guido at Google didn't, even though they are pretty close to Microsoft-equivalent these days.


Google wasn't Microsoft-like when they joined.


Isn’t Guido working at microsoft now?


id Software going to Bethesda.


Most products are produced by a few corporations, monopolies are on the rise, that kills competition and variety but it allows to accumulate power to further increase control over the markets. That's the reason that antimonopoly legislation exists.


Which is now owned by Microsoft.


Haven't Miguel and Nat both based much of their careers around supporting Microsoft tech? They started Ximian - a support company for an implementation of Microsoft's .NET.


Slight correction: Ximian started out as a support company for GNOME. They didn't pivot to .NET until later.


I don't think that corrects anything I said?


I looked up to Miguel in the 1990s. But him and his father ended up supporting the current president of Mexico. Who is a demagogue with kleptomaniac tendencies.


I think it's not smart to look down on someone for their political or religious views. There are many many issues in play. For example, how do you know he didn't support the president because of the change and ideals he represented, like many Mexicans did, and not his actual performance?

Check you own biases.


Thanks for the advice. I do try to respect political views. And I think even if I don agree with someone they often have redeeming qualities. I make two exceptions. Trump and Lopez Obrador.


Yeah well the whatever you think of the current president he did represent change in a country that has seen presidents from the same party for 70, and the president before him too. And the ones from the PAN weren't exactly great. At least that one seemed to be back by a democratic movement/hope. Can't blame them for that when you know the history of the country.


The current president is the same as the PRI presidents that governed Mexico for 70 years. He just has a new label in a party that he owns.


> Main site, first element lists "Independent."

> One Director always appointed and controlled by Microsoft

> Microsoft appointed Director can effectively override "any vote to materially change the Foundation’s Membership Policy, Director Election Policy, Project Governance Policy, or any Intellectual Property-related agreements or policies" [..]

> Any change to the Bylaws which attempts to change this requires not only a 2/3 vote of the Directors, but also agreement from Microsoft separate from the Microsoft appointed director.

Ha!


Assuming that you must have an organisation†, the organisation should have a clear purpose, ideally just one or very few of them so as to avoid conflicts. It must be clear to all involved that, if this purpose ceases to be valuable, the organisation likewise ceases to be valuable and must be wound up. It's amazing how often this is overlooked.

It is obviously not great news if the purpose of the .NET Foundation is to control this ecosystem on behalf of Microsoft. But, establishing that is better than "Let's continue to be vague and hope nobody notices that in practice that's what it's for".

† One of the things to like about the IETF is that it isn't an organisation. The Internet Society is an organisation, several related entities (e.g. the IETF Trust) are organisations, but the IETF isn't, it's just an activity - like dancing. Anybody can do it, if they want. If the people doing it start doing it differently, that can't be wrong, because that's just how they're doing it now.


I fundamentally do not understand why the .NET foundation exists, and what members gain from joining it. Would someone mind explaining that?


The .NET community largely grew up having a "source of truth" for best practice, architecture, etc. Microsoft shaped not just the language, but the culture around the language, having vast influence on how people learnt the language, the processes on how they worked and naturally used this to push MS technologies. MS tried to own the whole stack, and thus they had libraries and frameworks for much of what you would try and do with .NET.

While competing against other companies this strategy worked as MS were larger and able to have a more complete solution. This was enabled by their huge share of desktop computing with Windows. However as the shift to Web and Mobile came, the number of platforms grew (especially outside of MS controlled ones), and the centrally planned .NET experience was breaking down. MS's centrally planned competitors threw in the towel or had gone bankrupt. Java was opened, Sun was out of business and the smaller software development offerings had long since tried to incorporate open source, or had switched to growing only through milking the existing customer base.

Microsoft saw the change coming, as well as the move to the cloud, and was able to see the cost involved with competing against open source, and started their shift to open source. The foundation is their attempt to both reduce their relative investment, by having users start taking on some of the development while controlling the core of the language. Keep in mind this was the time .Net was becomming cross platform, with linux becoming a major hosting option.

Due to these origins it has lead to the foundation being in a central position in the .Net ecosystem. As such if your library is part of the foundation, its likely to be THE standard solution in the .NET space. So the advantage you get is you get to participate, and if your project joins, it becomes the de-facto standard for .NET. That credibility is likely worth a bit for consultants and definitely paints you as an expert in that field. The downside is you cede control. I am not arguing that it is worth it for most people / projects, however I can understand why people want to be involved.


There are some flaws in the argument:

.NET has today more funding in Microsoft than ever (this is a gut feeling from seeing the things they move).

The argument Project being part of the foundation equals de-facto is not correct. I think there is zero evidence for that. It is however often the other way around, that successful projects fold into the foundation because of it being the de facto foundation and no other foundation has strong ties to .NET


In short, if someone wants to pick a fight with an open source dev over e.g. copyright, it's much easier (and more of a deterrent) if it's an entity like the .NET foundation defending the project, instead of the dev having to foot all the bills (and time) themselves.

Beyond that, the .NET foundation would, in theory, also be able to provide resources for project maintenance (think CI hours) and events (funding for conferences/meetups etc.).

(Disclaimer: I am entirely uninvolved, this is what I recall from reading the discussions.)


Among other things, the CLA for .NET projects assigns copyright to the foundation (a non-profit) instead of Microsoft and also has some similar patent terms to protect people who use those projects


So essentially, this means that the foundation is setup for the benefit of companies that would otherwise deem the use of open-source software too risky since they cannot be legally sure that they will be able to use this software for their business.


Well, it also means that you as an open source dev don't have to constantly worry about someone challenging your copyrights or trademarks. And if they do, you don't have to worry about the legal expenses.


It was mentioned in one of the discussion threads that the foundation does not offer legal representation to its member projects. It only does so for its own director, officers, and employees. This is explicitly spelled out in Article V of the foundation's bylaws: https://dotnetfoundation.org/about/bylaws

My understanding is that the legal benefit of being a member project is essentially just that they run the CLA bot. If you actually get sued you're still on your own.


On the other hand: it's not like a foundation has infinite resources either, and as an open source dev I don't really worry about copyright or trademark challenges (neither constantly nor intermittently). I'm not entirely sure how big of an issue this is anyway, your comment here is the first time I've actually had to do some thinking about it.

Maybe this also depends on how litigious your current context of development/living/residence is.

Looking at some individuals that apparently did get into some legal stuff: it has almost always turned out fine, and when needed the EFF and FSF have been helping plenty.

If legal issues are really a thing, then a foundation isn't what we need, but just more money and people for the EFF.


Not necessarily true. The CLA assigns copyright as outlined in the project agreement with the foundation, which does not have to use the copyright assignment model. My project used the contribution model wherein my contributors and I retain copyright.


I'm not 100% either, but IIRC there were different groups working with C# back in the day. Microsoft was the largest, but least open. I think Xamarin was one of the large open groups that was developing for/with C#.

The .NET foundation was supposed to make C# a vendor and platform agnostic language from what I understand, giving Microsoft and others like Xamarin a seat at the table.


I think one of the big things is that Microsoft associates its name with the projects. It seemed to me at the time it was a nod towards enterprises to encourage them to use open source libraries that were mature and trustworthy and that it was unlikely Microsoft themselves would build something in the same space.


Hmm .. this is a problem and surely the foundation is a nod... But the last sentence I would remove. If Microsoft will or will not compete, is a different story. Azure AD e.g. competes with the IdentityServer solution at the time they were in the foundation.



If you follow the link to Miguel de Icaza comment, you'll see the original comment that shows that no one knows what it actually does.


It's a front for Microsoft proprietary software money to participate in open source communities and ecosystems in an effort to gain prominence and control in those cultures, same as their purchase of GitHub and NPM.

AFAIK ~all of the people who work there are on the Microsoft concentration-camp-money payroll.


Miguel worked on open-source for decades before joining Microsoft. The snide Godwin comment at the end doesn’t belong on HN.


It's fact, although my choice of which facts to point out may be snide.


One thing that I've heard being said multiple times towards Redis Labs and other companies with an Open Source product, is (paraphrasing) "Companies make their products Open Source only because it helps massively with adoption, but then they don't want to accept the other implications that come from Open Source licenses".

This was often said in an accusatory tone by certain cloud vendors, with the implication that companies like RL wanted to have their cake and eat it too because they were trying to push for licenses that would prevent clouds from selling their OSS product as a service.

I leave it to others to decide how much that accusation was justified or not, but I do find it terribly ironic that now Microsoft is essentially faking a proper Open Source governance model for what could be considered the same end: make the product more popular through Open Source.


Back then I wondered why Miguel never played a role in that foundation. This explains this a bit. Also it shows the fear in Microsoft about a community switching to a GPL code base (which is ridiculous considering that the .NET community with it's company black matter devs are the opposite of GPL friendly).

It is also ridiculous considering that .NET runtime development would never work with the deep pockets of Microsoft.


I'm glad that today there are more alternatives and it is not only .NET vs Java for the enterprise segment. Since the 2010s NodeJS, Go and Rust emerged and the world would not end for open source if .NET or Java went completely closed and many already moved on.


So how is what Microsoft is doing with .NET any different than what Google is doing with Go and Oracle with Java?

Is this people unfairly hating on Microsoft for being Microsoft?

Is .NET any less open source than Go or Java (or any other technology with corporate backing)?


> So how is what Microsoft is doing with .NET any different than what Google is doing with Go and Oracle with Java

Who said it was?

> Is this people unfairly hating on Microsoft for being Microsoft?

I don't think so, and Oracle gets pounded on for everything, including what they do with Java, too.

Google may be better with Go, or maybe people are cutting them undeserved slack. Not really relevant to the discussion of Microsoft and .NET, though, just whataboutism as a distraction.

> Is .NET any less open source than Go or Java

“open source” is not the issue; community process is the issue. That .NET is available under an open source licensing model is not a subject of any dispute.


Hey, thanks for your answers. I wasn’t trying to engage in whataboutism, I was trying to find out, as a developer who wants to learn a truly community-driven language/technology without any corporate overlords, what my options are. I’ve looked into Go, but a part of me feels like I’m trading one corporation for another.

The languages I think of as strongly community-driven: python, ruby, and javascript, are all dynamically typed, and I’m trying to stay with statically typed languages.


Zig seems to fit your criteria:

https://ziglang.org/


We definitely are both statically typed and aggressively independent :^)


Does Rust not fit your criteria?


The most interesting bit that always comes up with the DotNet Foundation is that all the trusted actors who you would expect to be associated are so worn out that they don't take much of a role, and instead less scrupulous and more power-hungry types take their places.


Just like any other human made structure even outside of programming I've known. Admittedly I think the foundation is mostly independent from .NET and is around open source projects in the ecosystem limiting the damage this could cause. Even if it is changing hands, or even collapses its role is limited and I argue doesn't affect the adoption or usage of the platform all that much.

On the other hand as an example I have experience first hand where this stuff can matter relating to some other comments on this thread: the confusion around which JVM distribution to use is directly tied to the JVM and its different builds. That doesn't seem to be the biggest problem for people in that ecosystem, but just like this .NET foundation topic confuses people outside the ecosystem as people are cautious and don't understand the implications. (i.e. do I have to pay Oracle for support if I need to limit my liability?). If I'm choosing between two tech stacks and only one has this question mark in a time limited fashion I might choose an alternative instead.

Other languages requiring significant investment (e.g. Corporate Languages) have their issues too. The appeal of Java and the .NET platforms to me is their longevity and their seriousness in keeping it alive over the decades.


In the first comment, Miguel explains the setup of the .NET Foundation combining Microsoft and Gnome.


From that blob about the foundation:

The Foundation claims independence BUT

“One Director always appointed and controlled by Microsoft”.

Thus, to me, they are lying on a basic premise about their NATURE. They become worthless by that (I mean the Foundation, not the individuals, obviously).


I think of it like the UN. You may not like the USSR (the creators of the UN certainly didn't) but if you don't give them a seat at the table the whole endeavor is useless. Microsoft is by far the biggest contributor to .NET in general, and the .NET foundation projects in particular. No organization can purport to have a say over the evolution of .NET unless Microsoft has a seat at the table.


> I think of it like the UN. You may not like the USSR (the creators of the UN certainly didn't) but if you don't give them a seat at the table the whole endeavor is useless.

What's the point of putting up a foundation if it ends up being nothing more than a facade of a single corporation?


Unless the vast majority of seats belong to Microsoft, you can't say that it's "simply a fascade".


> * Unless the vast majority of seats belong to Microsoft, you can't say that it's "simply a fascade".*

This assertion is rejected by ReedCoopsey's statement regarding the fact that Microsoft reserves its right to appoint and control a foundation's director that happens to also have the privilege of single-handedly dictating and overriding any change.


The comparison with UN is weird, UN does not have 1 member that is super special.

Anyway the issue seems to be that the messaging does not match the reality, MS needs to be transparent and very clear in this, then projects can decide if they agree with the conditions. Java world had from a long time foundations that were independent of Sun/Oracle.


Well they have 5 five permanent members of the UN Security Council (China, France, Russia, the United Kingdom, and the United States) with veto power ...


So they are all one-fifth special then.


One veto is enough to kill a resolution, so it’s not quite the same as one-fifth


It is not the same when in a group just 1 has veto or when more have veto, for good or worse the 2 cases are completely different. If you think is the same I could elaborate but if it would be exactly the same MS could share it with 4 others from community right?


Yeah, tbh I'd with that Java was more independent then there maybe they're wouldn't have been so much of that mitigation over android...

I think there is still the fear of something like this happening with .net if anyone ships with a modified version or reimplements a piece to meet their own needs, at least from chatting with my developer friends over coffee.


>Yeah, tbh I'd with that Java was more independent then there maybe they're wouldn't have been so much of that mitigation over android...

Wouldn't then Java be already EEE by MS with their Visual J++ /J# ? You would have fragmentation in Java like you have with JavaScript APIs that can be non standard , or work differently in different browsers.

From my memory in the end Google had to pay because they really copy pasted code from the original Java source so they did not respected the license.


But the .NET Foundation as far as I understand isn't about "the evolution of .NET," it's about providing assistance to unpaid open source contributors of popular libraries and such (which I learned today does not include indemnification).


No, he explains that the structure of the .NET foundation was based on the structure of the Gnome Foundation, with concessions to Microsoft.

Gnome and the Gnome foundation were not involved. They're just the model he used when planning how the .NET foundation should work.


You are right. My comment misses some words.


That's the problem with languages managed by big corps

I always found peace with community driven projects

D, Zig, Odin, way more healthily and organic communities


And an almost inexisting ecosystem by comparison.


it doesn't matter, at all

for some people C interop is more than enough

for some people they like to integrate the said language as scripting language

for some people it's something else

i feel some people miss the point, completly

your favorite X language backed by corporate will be replaced tomorow by what ever is more shiny

look at the list of dead languages that were once backed by IBM, Apple, Microsoft etc etc etc

Community driven projects are different, they don't exist to become irrelevant depending on what management has to say


Look at the list of dead languages that were once backed by vocal communities, making the frontpage of BBS forums, Usenet communities, Slashdot, Reddit, HN, and whatever will come next.

How is the Coffescript community doing by the way?




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: