Live data from Hacker News

Microsoft donates the Mono Project to the Wine team

mono-project.com

351–360 of 509 posts

Re: Microsoft donates the Mono Project to the Wine team

#351

Earlier quoted context omitted.

C# is IMHO still better language than Go. Refactoring tooling is unmatched.

If with C# you can create a fully static binary which runs on an empty scratch docker, I will properly consider your opinion. Until then: Go à gogo!

The "fully static binary" only works because Go ships cryptography and most other usually host-provided features that other languages rely on host's libc instead, at the cost of performance, limited feature support and requirement to recompile everything in order to ship (inevitable) security fixes, which did happen in the past.

.NET native compilation toolchain supports this mode but it's not a default for a reason (causes binary size bloat too, musl is rather small, but ICU is very much not).

(just to be accurate - all C# and runtime code becomes a single static executable, but cross-compilation is possible between CPU architectures within OS only, with additional options enabled by 'PublishAotCross' nuget package that switches to Zig toolchain's linker so you can AOT compile for Linux targets under Windows, for "self-contained trimmed JIT executables" you can target any OS/ISA regardless of what you use)

Anyway:

    dotnet new console --aot #or 'grpc --aot', or 'webapiaot'
    dotnet publish -o .
Notes: gRPC tooling is a bit heavy, webapiaot template could be improved in my opinion

As of today, ILC has become better at binary size baseline and scalability due to more advanced trimming (tree-shaking) analysis, metadata compression and pointer-rich binary section dehydration (you don't need to pay for embedding full-sized pointers if you can hydrate them at startup from small offsets). You can additionally verify this by referencing more dependencies, observing binary size change and then maybe looking at disassembly with Ghidra.

Also better capability for true static linking - you can make .NET NativeAOT toolchain produce static libraries with C exports that you link into C/C++/Rust compilations, or you can link static libraries produced by the latter in NAOT-compiled executables[0][1]. It is a niche and advanced scenario that implies understanding of native linkers but it is something you can do if you need to.

Binaries compiled in such a way will have its interop become plain direct calls into another section in it (like in C). There will be a helper call or a flag check to cooperate with GC but it's practically free. Costs about 0.5-2ns.

[0]: https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...

[1]: https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...

Re: Microsoft donates the Mono Project to the Wine team

#352
post #108

I always assumed Microsoft did not condone Wine or other re-implementations of their APIs (like ReactOS), but that they were protected by DMCA reverse engineering provisions and anyway too insignificant to send the legal team after. Wikipedia says, > Until 2020, Microsoft had not made any public statements about Wine. ... On 16 February 2005, Ivan Leo Puoti discovered that Microsoft had started checking the Windows R…

I think Microsoft has finally realized that its animus toward projects like Wine and pre-acquisition Mono was ultimately unproductive, and a net negative for Microsoft itself. I still don't trust MS's motives in general, but I think they at least recognize that Wine/Proton helps make the Win32 and DirectX APIs a sort of de-facto cross-platform standard when it comes to things like desktop gaming, and that this is a g…

I disagree. MS was completely succesfull in their goals. They kept a ton of developers busy learing useless Xamarin, thus keeping them from developing products that can actually compete with Microsoft products.

Next they killed of an open source competitor (Mono) of their product, stole the usefull bits to put it in .Net, and now they dump the leftover project (that's not competing with them anymore) back into the OS world.

How is that not a smart way of doing business?

Re: Microsoft donates the Mono Project to the Wine team

#353

Earlier quoted context omitted.

This is wild, apparently this stuff is in the Debian repos now? https://learn.microsoft.com/en-us/dotnet/core/install/linux-... So you can just apt install dotnet-sdk-8.0. This must be the most unfriendly Linux install documentation I've ever seen though, it was not easy to find the names of those packages.

> This is wild, apparently this stuff is in the Debian repos now? It's not. Microsoft provides its own apt repository you need to add first.

Some distributions have it in the standard apt repo, like Ubuntu.

Re: Microsoft donates the Mono Project to the Wine team

#354

Earlier quoted context omitted.

The only people wanting anyone to use MAUI are the MAUI team and even then only half heartedly. Microsoft Build this year only discussed WinUI and WPF even. https://www.reddit.com/r/dotnet/comments/1cy2u6l/microsoft_h...

Good, I use MVC and it sucks.

MVC is something entirely else?

Re: Microsoft donates the Mono Project to the Wine team

#355

Earlier quoted context omitted.

But….net is everything! And also nothing ! It’s a product? It’s a suite! It’s a system ! Visual Basic .net ! What ?

The ".NET" label was applied to a bunch of things at Microsoft. It was also an early name given to their social networking / IM things. But for the last 20-ish years it's really only been applied to things related to the .NET Framework. So, yes - Visual Basic.NET is a language - it's the language that replaced Visual Basic 6. It compiles to the Intermediate Language (IL) that the Common Language Runtime (CLR) execute…

This was probably copying Sun's "we put the dot in .COM" advertising. Yes, this is stupid.

Re: Microsoft donates the Mono Project to the Wine team

#356

Earlier quoted context omitted.

> English does have distinct words for the two connotations of free--"liberal" and "gratuitous". Sorry but no it doesn’t. These words have the other meanings you mentioned, but they don’t include either of the meanings of “free”. If you said you were giving away “gratuitous software”, native English speakers wouldn’t know what you were talking about. The only way to understand it would be to realize that those words…

"Gratuitous software" would be excessive and unnecessary software. Which I think a lot of commercial (particularly "news") websites qualify for, and "modern" websites in general. NPM makes it easy to just install something, which requires all kinds of other things, which duplicate each other, etc. Strangely enough, I think the LaTex distribution qualifies, too. I tried to install it recently, and it wanted 1 GB of di…

> Strangely enough, I think the LaTex distribution qualifies, too. I tried to install it recently, and it wanted 1 GB of disk space! That's multiple times the size of the entire system disk when LaTeX was created...

There is the TinyTeX distribution, which is smaller. (Despite its name, it isn't tiny, or small, or medium in size, but it is also large. But smaller than the default LaTeX distribution with all the possible packages, source code and documents.)

Re: Microsoft donates the Mono Project to the Wine team

#357

Earlier quoted context omitted.

> Wine/Proton helps make the Win32 and DirectX APIs a sort of de-facto cross-platform standar There are perfectly fine _actual_ cross-platform standards like Vulcan and OpenGL. If your goal is cross-platform, making a Windows app that you hope will be converted well enough is a strange way to approach it.

And yet, the win32 is the only one that is confirmed to work. Example: Game Neo Scavenger is available for linux with binaries for them. They dont work in any modern linux because (I believe) they were compiled for a 32bits version of linux. Do you know how you can play the game on linux? Yes, using the windows version with lutris, which is 32bits too.

https://wiki.debian.org/Multiarch/HOWTO

Re: Microsoft donates the Mono Project to the Wine team

#358
post #116

Earlier quoted context omitted.

Mono was, but newer versions of .NET run on Linux and Mac. You can install at the link below, and then making a project is just `dotnet new console` and run with `dotnet run` https://learn.microsoft.com/en-us/dotnet/core/install/linux

For historical context: this was before the conclusion of the antitrust case that led Microsoft to start softening its stance toward open source. https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor... . This was the same year Antitrust came out: https://en.wikipedia.org/wiki/Antitrust_(film) Any support for open source or cross-platform stuff was a bulwark against claims of monopoly abuse, but none of it wor…

I'd argue that the dominance of Linux on cloud and Azure growing business is what's causing Microsoft to have an ongoing interest in linux support.

A factoid that's shared sometimes (no idea if true) is that Microsoft now employs more Linux kernel engineers than Windows kernel engineers due to Azure.

Re: Microsoft donates the Mono Project to the Wine team

#359
post #22

I feel like I’m missing some context here. Is this a “free as in take this puppy” situation? How do the wine developers benefit from this?

How has ’free as in puppies’ not reached its rightful place on the podium?

Please tell me there is a separate French word for free (as in puppies).

Re: Microsoft donates the Mono Project to the Wine team

#360
post #108

I always assumed Microsoft did not condone Wine or other re-implementations of their APIs (like ReactOS), but that they were protected by DMCA reverse engineering provisions and anyway too insignificant to send the legal team after. Wikipedia says, > Until 2020, Microsoft had not made any public statements about Wine. ... On 16 February 2005, Ivan Leo Puoti discovered that Microsoft had started checking the Windows R…

I think Microsoft has finally realized that its animus toward projects like Wine and pre-acquisition Mono was ultimately unproductive, and a net negative for Microsoft itself. I still don't trust MS's motives in general, but I think they at least recognize that Wine/Proton helps make the Win32 and DirectX APIs a sort of de-facto cross-platform standard when it comes to things like desktop gaming, and that this is a g…

> I still don't trust MS's motives in general

I think it's the same for any global enterprise: profit.

In that regard, "trusting" something like MS is like evaluating their stock: what do they make money off, what is a threat to that. Which makes it rather easy to "trust" them: if they can make money off SomeOpenSourceProject they'll help it along, if it doesn't help, nor threat, they'll ignore it. If it's a threat, they'll put (some) money towards fighting it.

For me the difficult part, and why I still don't fully trust MS, even with Github or VScode lies in their internal competition: MS has projects that directly compete eachother. Business-wise it makes no sense to me (and is the primary reason I'll stay away from investing in MSFT). But also their internal competion between profit now and delayed profit. MS has often done things (or not done things) that increase the bottom line this quarter, but harm them over years. In that regard too, MS makes no sense to me Business-wise. I guess having a cash-cow-"monopoly" for decades kinda absolves them of the responsibility to run the entire company in a way that makes sense business-wise.

Post reply on HN