Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First class Linux support developed by Microsoft #336

Closed
atrauzzi opened this issue Feb 5, 2021 · 22 comments
Closed

First class Linux support developed by Microsoft #336

atrauzzi opened this issue Feb 5, 2021 · 22 comments

Comments

@atrauzzi
Copy link

atrauzzi commented Feb 5, 2021

I would normally have been quite excited to hear about maui. But knowing that Microsoft gets colder quarter after quarter on "we love Linux", the official take so far here comes as no surprise.

Nobody is going to come and completely reimplement one in a long streak of desktop SDK+library flops just for Internet points. Especially one that has been so obviously neglected due to internal policy. Moreover if Microsoft really wants maui to succeed, then they should know that lack of first class Linux support is basically what will ultimately hold it back.
Not because the telemetry and feedback indicate it, but because until it's truly cross-platform, Microsoft is still sending the "We want to lure you into Windows" signal.

I also want to comment on the official responses to calls for Linux support. For a company trying to push such a progressive agenda, gaslighting Linux users by "explaining" that because Linux is open source, the only way to have Linux support is from the community is frankly cruel. As is railroading conversation about this out of sight into the discussions area where it can be safely ignored.

As clever of an answer as it seems, here's how people see the situation: Android is open source too, but Microsoft has spared no expense there for maui. Going the other direction, Microsoft has no problems maintaining .net for Linux and look at how much mindshare it's starting to generate (TypeScript indirectly enjoys a similar phenomenon).

So don't be cryptic about things: What is it really and does Microsoft have the courage to be honest instead of trying to get out of a negative perception by being disingenuous.

If you ask me, Linux support should have been the first priority for this project.

cc. @terrajobst -- This is another anti-Linux/pro-proprietary signal being sent in the ecosystem.


Continued...

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

No, it's not, this is a request.

Discussions are simply a convenient place to put feedback a project wishes to ignore.

@terrajobst
Copy link
Member

@atrauzzi

I'm not trying to dispute anything you're saying nor am I trying to say we'll never do what you suggest; I'm just trying to understand your point of view.

The goal of MAUI, and @davidortinau and @jamesmontemagno should check mere here, is to provide a cross-platform experience, not a Windows-only one. My understanding is that it's focused on mobile (iOS, Android) + desktop (Windows, macOS). In a sense, Android is a flavor of Linux but I think when you mean Linux you mean desktop Linux (like Ubuntu). I'm not an expert in UI myself, but Microsoft tends to be pragmatic about cross-platform investments and we will go after stuff that is relevant to most of our current customers (or where most potential customers are). When we invest in Linux, we tend to do it on the server because that's where most of the Linux momentum seems to be. You might say "no, you're doing this because of Azure", but it's the other way around: Linux is super relevant for Azure because Linux is super relevant for the server and cloud. Also, we are building solutions for macOS (such as Office or Visual Studio for Mac) so it's generally not like we're keeping all our desktop investment Windows-only either.

I can understand that this might not be a satisfactory answer if you're a Linux desktop user, but I am a bit confused why you believe we're disingenuous here. Could you elaborate your view point a bit?

@TETYYS
Copy link

TETYYS commented Feb 5, 2021

I think it can be viewed as disingenuous because the h1 in README says that MAUI is multi-platform, but usually "multi-platform" includes the big 3, not only 2 desktop OS

@BjarneNilsson
Copy link

I think it can be viewed as disingenuous because the h1 in README says that MAUI is multi-platform, but usually "multi-platform" includes the big 3, not only 2 desktop OS

Ok sorry if this goes a bit ot, but can Linux really be counted as big when it comes to desktop OSes?

@nic547
Copy link

nic547 commented Feb 5, 2021

In my opinion, just looking at overall market share shouldn't be the deciding factor.
In the end, the "customers" of MAUI aren't users but developers.

In some markets GNU/Linux is much more important than in others, SO's survey puts Linux at 25% and I'd assume "IT Professionals" in general are more likely to use GNU/Linux as an operating system. If your product targets this market, first class Linux support is an important aspect. Another solution might be better suited and with that .NET looses it's huge advantage of being a "one-stop-shop" for all your programming needs.

@sacdevops
Copy link

sacdevops commented Feb 5, 2021

In my opinion, Linux support is of no concern for the current project. There are major problems that need to be addressed. The Linux market share on normal computers is very small. Linux is more represented on servers, but you don't need UI applications, but simple console applications are in the foreground, which has already been implemented by .NET.

Microsoft support for Linux can be addressed again in the future when .NET Maui is up and running and the way it works is improved.

Don't get me wrong, I am also in favor of Linux being supported, but for that you first have to change and manifest the base, and you are still very limited in the way you work with XF, which will be a follow-up error in Maui.

What I would like to add is that we are moving into a time of mobile first. The goal of Xamarin and subsequently Maui is implementation for mobile devices. The support of UWP and MacOS is more of a strategic concern, since both OS can be linked more and more with mobile devices.
Real applications are increasingly being pushed into the background, as web applications are becoming more and more a standard. Applications that are more system-related would not be created in a cross or multi-platform, so native in the associated language in order to exploit the full potential.

@saint4eva
Copy link

If you ask me, Linux support should have been the first priority for this project.

Kindly note that Flutter started with Android and iOS and later started expanding to include Linux - which is still not production-ready (not of excellent quality). Why should Linux be top priority?

cc. @terrajobst -- This is another anti-Linux/pro-proprietary signal being sent in the ecosystem.

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

@terrajobst

I can certainly build the point up more and it's going to indicate that Microsoft works against its own best interests in these situations. In doing this, I would like to make clear that the fact that you're hearing from me and others on this means we care about Microsoft's success. Not solely because it benefits us to have more libraries & tools, but because if Microsoft can land a good true multi-platform desktop SDK, the state of the art for desktop development will be furthered as a whole.


The Myth of Fragmentation as a Barrier

My understanding is that it's focused on mobile (iOS, Android) + desktop (Windows, macOS).

This framing - which is fine if it's the extent of what you know of desktop Linux today - really makes me want to call out whoever fed it to you as once again being disingenuous.

There is no legitimate excuse by way of citing fragmentation that holds up these days when debating whether to support Linux. Don't take it from me, the mechanism for distribution is no different to what Microsoft does for the .net SDK & runtime, Visual Studio Code, Azure Data Studio, Edge, Azure Storage Explorer, Azure CLI and more already!

There are certainly differences between Linux distributions, but you can rest assured that most desktop Linux installations have GTK3 (and soon 4) available. This is not 1999, Microsoft needs to stop replaying outdated spin to itself as a justification to sideline Linux (more on this later).

Further to the point of diversity however, arguably application packaging is something that fragments across a multi-platform toolkit anyway. A Windows store app is packaged differently to an Android app, so frankly I don't buy that any last-mile challenges Linux support poses is even outside the wheelhouse of what maui proposes to offer already.

Visionary vs. Reactionary

...but Microsoft tends to be pragmatic about cross-platform investments and we will go after stuff that is relevant to most of our current customers (or where most potential customers are).

I don't buy this. This is a nearsighted and oppressive kind of pragmatism that simply sees Microsoft late to the party and missing the mark every time. I'll spare us all the laundry list of Microsoft failures, but let's not act like they don't exist, okay?

I would invite you and those you report to, to take a detailed look at why your competition had no issues coming up on the other side of the same decision. And guess what? They're eating your cheese!

(Or heck, even something a little closer to home understands this!)

...but it's the other way around: Linux is super relevant for Azure because Linux is super relevant for the server and cloud.

Yeah and how long did it take Microsoft to come around, kicking and screaming to this intractable truth? Literal decades as Microsoft hemmorhaged mindshare and saw other technologies - yup - eat all its cheese.

Nobody asking for first-class Linux support in a multi-platform UI toolkit is asserting that it commands dominant desktop share. What people are trying to say is that giving Linux a first-class seat at the table is an action that will demonstrate Microsoft has finally outgrown Windows and can be trusted.

Also, we are building solutions for macOS (such as Office or Visual Studio for Mac) so it's generally not like we're keeping all our desktop investment Windows-only either.

This statement is misleading because at its core is an omission. So I will again blow the disingenuous whistle. Linux poses a much larger threat to Windows than macOS does because it is a drop-in replacement in corporate and education environments running standard commodoty hardware.

The absence of Office for Linux is in fact the perfect example of how Microsoft is deliberately trying to kick the legs out from under any of their desktop technologies drawing attention away from Windows. Microsoft hasn't published any headless render libraries for Office technologies. Microsoft is rushing out a Chromebook competitor instead of publishing first-class Chromebook software - and no, Office for Android has less functionality than even the browser version!

This jealous attitude of neglect or pointing at non-answer alternatives is what drives people away from Microsoft and keeps its technologies failing, time and time again! Heck, it's even toxic for people who are already using Microsoft services. We are using Azure at my company but have had so many frustrations because of this stubborn Windows-SQL-Server-only exceptionalism that we actually have put migrating away from Azure on our radar.

Microsoft does it to itself when it tries to act principled about this stuff.

Actions speak louder than words here, and Microsoft's behaviour belies its true intentions, completely in spite of all the marketing. Indeed, sometimes it even undoes what small hard won gains have been acheived so far!

What People Really Hear

What Microsoft is saying with maui is that Microsoft wants to create a UI toolkit that is multi-platform (but not really) and then somehow grow adoption by lecturing people about what kinds of platforms they ought to use because Windows is a sacred cow.

The "Microsoft ❤️ Linux" charm offensive has devolved into making Linux sleep in the shed. Loving Linux and capitulating to it are two very different things and if it was the former, then Microsoft would be proactive, not reactive in supporting it.

To circle back, it is simply - yup, you guessed it - disingenuous.

I shouldn't need to tell you this, you are very community savvy, you know how to Twitter, go check the sentiment towards .net in general. It's clear that Microsoft still has lots of work ahead.

Forcing users to quibble over Linux support and making it an uphill battle continues to work against Microsoft's best interests and I just can't for the life of me understand why Microsoft continues to miss this. This is something none of your competitors struggle with, it is exclusively a Microsoft-problem.

The only logical conclusion is that there is some component of deception to the whole "Microsoft ❤️ Linux" messaging. I'm fine if I'm wrong, because it benefits everyone. But if that's the case, all Microsoft employees seriously need to have a little poem on the back of their badges about hubris, because it's eating the company from the inside.

The Solution

When a project is started, particularly anything that goes on in the .net sphere, just default-in Linux as a requirement. Start living up to the "Microsoft ❤️ Linux" message.

For maui, this project should reverse its stance and make Linux desktop a first-class promise ASAP. Then it can really be a multi-platform UI library in the non-disingenuous sense and then I can brag it up to other developers as yet one more reason why .net's star is rising.

Without linux support, maui is already perceived as yet another cynical attempt from Microsoft to enter a market half-cocked and teeming with stigma.

@saint4eva
Copy link

If you ask me, Linux support should have been the first priority for this project.

Kindly note that Flutter started with Android and iOS and later started expanding to include Linux - which is still not production-ready (not of excellent quality). Why should Linux be priority?

cc. @terrajobst -- This is another anti-Linux/pro-proprietary signal being sent in the ecosystem.

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

Because Microsoft should be leading, not following. You're arguing to lower the bar. If you want to be pragmatic, and not just opinionated -- explain why you think that's a sound business strategy.

@sacdevops
Copy link

sacdevops commented Feb 5, 2021

First of all I want to explain that I am the biggest Xamarin and Maui critic here, which the others can perhaps confirm. I'm not a Microsoft developer myself, just part of the community and use the product in my free time, but also at work.

Background of the Xamarin Project

Xamarin is primarily to develop apps for mobile devices. This is the product. You don't have to have any doubts about that and say something else. First and foremost, it's for apps.

It is a blessing that Xamarin became so successful and that Microsoft will later take over and develop it further. Over the years the environment has been given more and more functions, more and more shape and hopefully it will get even better in the next few years.

So much for Xamarin's background.

Business

The business world is based on Windows. You will rarely see that normal users own a Linux computer. Exceptions are servers and computers used by computer nerds.
A businessman doesn't mind paying for a product if I know I'll make a lot more from it. This is also what Microsoft's policy looks like. You are paying money to make more money. That is the course of society and the economy.

So the question arises, what do I need Linux support for now? Basically for private applications by computer scientists, government institutions and servers. Let's get back to everyday life.

State institutions: Fewer and fewer public computers are used. It is no longer like 20 30 years ago that a computer cost half a house. More and more people own private computers and smartphones, with the proportion of computers for private use falling more and more. In the near future, more and more public computers, such as telephone booths, are likely to be dismantled.

Server: Did I mention before, servers don't need a UI. I don't think anyone who wants to use UI's has fully understood the point of being an administrator.

Now for private use. Linux is not experiencing a trend. The number of supporting people does not increase or decrease. Then why should you support <1% Community in the near future, since it costs Microsoft more money and does not bring in anything.
There is no need to make an impression on St. Matthias. There is nothing free these days. Not even among the family.

Xamarin and Maui in the future

Xamarin, and subsequently Maui, is currently in a different dilemma. Do you want Microsoft to lead and not follow? Look at the competition, how those with app development overtook Xamarin, even though they are significantly younger.
I ask you personally, would you prefer a buggy platform than a perfect one? The answer is obvious. Until Maui comes out, the current resources must first be invested in functions that are necessary. These represent the basis of the future. Only when .NET6 and Maui have been well received can one continue to talk about the future.

@saint4eva already mentioned it. Flutter did not become perfect overnight. Step by step. So ask the community to wait a bit with something like that. MacOS was previously only supported by the community and lo and behold. The support is taken over personally by Microsoft. And rightly in that order too, since MacOS is supported and used by significantly more people. Both in the world of work and in private.
We are building Rome for you, but not in a day. I ask you to wait a little longer.

Personally, I also think it's better to work with Flutter than with XF, but I'm a C # developer myself and I wish this project and the team behind it every success. At the right time, I also like to praise their work and also like to do so in the form that I pay for their product and use it at work with umpteen employees, and if need be, I also criticize within the framework of what is possible, because you learn from criticism.
If you have suggestions and criticism that have not yet been mentioned, this is constructive and helps and brings the product forward.
But talking about the same topics over and over again does not help, as time and effort is unnecessarily put into it, where the developers and community could better invest.

Please do not take this as a personal criticism, I just want to say that we have other problems right now that need to be fixed in order to pave the way to Linux and make it easier.

Examples of such problems are, it is not called Entry, it's a TextBox! 😂 😂 🙄

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

All I can do is reiterate that support for Linux shouldn't be driven primarily by how much share you can capture by targeting it.

It's an indicator of confidence in the platform and if maui doesn't send the right signals early on, people are going to write it off in their minds. In fact, as a Microsoft technology, you can consider it starting with one foot in the grave when it comes to reputation. After which you'll see Microsoft abandon it in the same way it's abandoned so many other technologies and the project won't exist at all.

While Linux desktop usage is low, it is indeed a trend, just one that's very, very slowly growing. And it's a trend that has shown more staying power than the handful of Microsoft technologies that have come and gone over 30+ years.

In terms of the merits of supporting Linux for dominance? I say slow & steady 🐢

In terms of the merits of supporting Linux to counteract stigma towards and the reputation of Microsoft offerings?
Well... 🐇 😉

@davidortinau
Copy link
Contributor

When I got the email notification about this thread I thought it was literally in response to an email I sent this morning capturing evidence of demand for Linux support in .NET MAUI. I'm listening and planning.

Linux support in .NET 6 for .NET MAUI is not planned from us. We are spending our capacity bringing the Xamarin stack to .NET 6, SDK Style projects, and, as has been noted elsewhere in this thread, addressing fundamentals in the UI toolkit. I hear that saying "it's on the community to add Linux support" can sting and disappoint. In this .NET 6 phase of the product it's the current way forward, and to not keep the door open to the possibility of collaboration would send a very different signal.

The signal here is meant to be that Linux is a platform on our radar, it is not part of our current scope of work for .NET 6, and we are open to collaboration in the meantime.

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

Thanks @davidortinau, and I totally hear and largely appreciate what you're saying.

For the sake of maui, I hope you understand my point about the optics surrounding Linux support. It's worth your time to continue digging into this because what I think you'll end up finding is that history is a very strict teacher in this situation.

If the foundational work is truly blocking this, the better thing for maui to do at this stage would be to at least promise official resources to gain Linux support some time after 6.0.

Again, I say this out of a common interest in the success of this project, I like C# and .net and want to see it gain mindshare. Something like maui is key to that.

@sacdevops
Copy link

@atrauzzi What am I saying all the time. 😂 😂

@terrajobst
Copy link
Member

@atrauzzi thanks for writing up your view point; I understand your perspective now.

@atrauzzi
Copy link
Author

atrauzzi commented Feb 5, 2021

@terrajobst - No prob! Please make sure not to shoot the messenger though. I'm sharing with you the view of many people who aren't taking time out of a lazy Friday to share this level of detail.

Microsoft has to go beyond this habit of polite understanding, followed with disregarding. It hurts the ecosystems and the projects from within and maui has the potential for a lot of positive impact.

Github needs a /remindme 3 years bot. 😉

@saint4eva
Copy link

All I can do is reiterate that support for Linux shouldn't be driven primarily by how much share you can capture by targeting it.

It's an indicator of confidence in the platform and if maui doesn't send the right signals early on, people are going to write it off in their minds. In fact, as a Microsoft technology, you can consider it starting with one foot in the grave when it comes to reputation. After which you'll see Microsoft abandon it in the same way it's abandoned so many other technologies and the project won't exist at all.

While Linux desktop usage is low, it is indeed a trend, just one that's very, very slowly growing. And it's a trend that has shown more staying power than the handful of Microsoft technologies that have come and gone over 30+ years.

In terms of the merits of supporting Linux for dominance? I say slow & steady 🐢

In terms of the merits of supporting Linux to counteract stigma towards and the reputation of Microsoft offerings?
Well... 🐇 😉

It seems you are here for a personal attack.

@terrajobst
Copy link
Member

It's OK to disagree on strategy and technical solutions. Let's try to keep this thread respectful; this includes avoiding personal attacks but also avoiding assumptions on people's motives.

@davidbuckleyni
Copy link

I am with you on this one I mentioned it to @davidortinau recently and @maddyleger1 but they said their was some work done on the Gtx but because the platform is so diverse it would be allot of work ensuring things looked right.

I have long wanted an option so my bosses could re target simply by chosen linux os from the build dropdown many business apps would benefit on Linux for better performance.

There is a few reference documents like https://docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/other/gtk?tabs=windows but their a few years old. Catalyist seems to be the focus for at the moment.

@terrajobst
Copy link
Member

terrajobst commented Feb 5, 2021

@atrauzzi

The best way to avoid that is to not be ambiguous.

Beyond that, no personal attacks have been made on any side, so I will simply defend myself saying that it seems tone deaf and off topic to speculate such immediately after I said not to shoot the messenger. 🤔

Maybe it wasn't clear, but I agree with you. I didn't think the text that @saint4eva quoted was a personal attack from your side. Hence my comment on avoiding attributing motives.

@SCLDGit
Copy link

SCLDGit commented Feb 5, 2021

Not here to fight about it, but I can assure you that MAUI Linux support would be absolutely invaluable to my team, working on software deployed on hundreds of thousands of machines thought the government and DoD. It would open a substantial number of new opportunities for us and would make our customers very happy, and would ensure that we continue using many other Microsoft services. Without it, you're apt to lose us as a customer wholesale to Qt.

@PureWeen PureWeen closed this as completed Feb 6, 2021
@dotnet dotnet locked and limited conversation to collaborators Feb 6, 2021

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests