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 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.
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.
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.
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?
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.
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.
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.
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.
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.
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?
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.
> 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.
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.
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.
.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.
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.
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
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.
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.
“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".*
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 ...
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).
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?
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.