this post was submitted on 20 May 2024
218 points (100.0% liked)

Technology

70302 readers
2704 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related news or articles.
  3. Be excellent to each other!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, this includes using AI responses and summaries. To ask if your bot can be added please contact a mod.
  9. Check for duplicates before posting, duplicates may be removed
  10. Accounts 7 days and younger will have their posts automatically removed.

Approved Bots


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 152 points 1 year ago (2 children)

What Apple did for Macs when switching architectures, though, was to port their own software to the new architecture. Microsoft doesn't even port fucking Minesweeper to ARM.

[–] [email protected] 14 points 1 year ago* (last edited 1 year ago) (4 children)

this is for the transition. no point in porting your software if nobody has the hardware. This will get people to get the hardware, as they can just keep using the existing software, and wait until it's properly ported

Edit: you people really think windows is the only software that needs a translation? Do you only ever use your OS on your computer, and not a single software more?

[–] [email protected] 43 points 1 year ago* (last edited 1 year ago) (1 children)

Nobody will buy the hardware if they can't commit to supporting the software. In a previous role, I was responsible for advising purchasing decisions for my company's laptop fleet. The Surface X (Arm edition) looked cool, but we weren't willing to take the risk, because at the time Microsoft had far worse transitional support than they do now. It's gotten better, but no one in their right mind is going to make the kind of volume purchases that actually drive adoption until they demonstrate they are in it for the long haul. It's a chicken and egg problem, and Microsoft doesn't care what hardware you are using, so long as it is running Windows or using (expensive) Windows services.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago)

What better way to sell devices than by halfassing them to oblivion?

[–] [email protected] 19 points 1 year ago (1 children)

Apple released a native x86 version of Tiger with their first Intel Macs.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

Sure, but the vast majority of Mac software at the time, including loads of first applications from Apple, couldn't run on Tiger. You had to run it in the "Classic" environment - and they never ported that to Intel.

Tiger shipped just 4 years after the MacOS 9.2 and plenty of people hadn't switched to MacOS X yet.

The reality is Apple only brings things forward when they can do it easily.

Apple has done eight major CPU transitions in the last 40 years (mix of architecture and bit length changes) and a single team worked on every single transition. Also, Apple co-founded the ARM processor before they did the first transition. It's safe to assume the team that did all those transitions was also well aware of and involved in ARM for as long as the architecture has existed.

[–] [email protected] 17 points 1 year ago (1 children)

No, this won't get people to get hardware that looks horribly slow because everything needs to run through a translation layer. They do have the sources. They could just recompile them for the new hardware. If their sources are not total crap.

[–] [email protected] 6 points 1 year ago (3 children)

I'd expect there's quite a lot of assembly and endianness-dependent stuff here and there. It's Microsoft. Their culture is about pride of things being arcane-complex inside, cause if you can untangle that, you are a good programmer. They think that. I think they think that. Maybe they are just vile.

[–] [email protected] 2 points 1 year ago

You may be spot on with that. Though the assembly part can be fixed by code translation at compile time. Endianess and shitty programming habits are another thing that the cross-executor must deal with, too, so maybe this has been covered already. Or it will blow up in their faces, anyway.

[–] [email protected] 1 points 1 year ago (1 children)

Both arches are little endian btw.

[–] [email protected] 1 points 1 year ago (1 children)

I'm sure they have found something to make the port problematic.

[–] [email protected] 1 points 1 year ago

I mean, it's a Microsoft product.

[–] [email protected] 1 points 1 year ago (1 children)

Windows NT historically ran on lots of CPU architectures, PowerPC, MIPS, Alpha, Itanium, etc, and that included the bundled software like 3D Pinball. I would have expected it to still be quite portable.

[–] [email protected] 1 points 1 year ago

20 years have passed.

[–] [email protected] 2 points 1 year ago

Microsoft really never do that port if they have a translation layer

[–] [email protected] 8 points 1 year ago (2 children)

Isn't that the point? This new layer is supposed to make it easier to port everything, and they're saying that's what Rosetta did for Apple/Mac.

[–] [email protected] 67 points 1 year ago (1 children)

Translation layers aren't porting

[–] [email protected] 4 points 1 year ago (1 children)

Fair enough, but to the end user it doesn't matter if it works.

[–] [email protected] 40 points 1 year ago (5 children)

to the end user it doesn’t matter if it works.

Emulation is always slower and eats more battery. Microsoft's laziness is proof they don't care about that hardware, so may just as well buy an iPad Pro instead.

[–] [email protected] 8 points 1 year ago (2 children)

Emulation is almost always slower and eats more battery.

FTFY. There have been some cases where emulation actually outperforms native execution, though these might be, "the exceptions that prove the rule." For example, in the early days of World of Warcraft, it actually ran better on WINE on Linux than natively on Windows.

[–] [email protected] 21 points 1 year ago (1 children)

For example, in the early days of World of Warcraft, it actually ran better on WINE on Linux than natively on Windows.

WINE literally stands for "WINE Is Not an Emulator".

[–] [email protected] 13 points 1 year ago (1 children)

To be fair this is also a translation layer and not an emulator.

[–] [email protected] 8 points 1 year ago (1 children)

To be fair this is also a translation layer and not an emulator.

Prism is an x86 emulator for ARM. If you think that Prism is "a translation layer and not an emulator", I refer you to the very first word of the second to last paragraph of the submitted article.

[–] [email protected] 5 points 1 year ago (1 children)

That's assuming the writer knows what they're talking about. Last line from the second paragraph:

Windows 11 has similar translation capabilities, and with the Windows 11 24H2 update, that app translation technology is getting a name: Prism.

And first line from the third paragraph.

Microsoft says that Prism isn’t just a new name for the same old translation technology.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

That’s assuming the writer knows what they’re talking about.

Certainly more than you because Prism emulates an x86 CPU and WINE doesn't, therefore the WINE comparison is still wrong.

Edit: Please prove the writer wrong.

[–] [email protected] 6 points 1 year ago (1 children)

This article seems to conflate "emulation" and "translation layer". I don't think there is anything that confirms "Prism emulates an x86 CPU", only that it allows for running x86 code on ARM. This does not inherently require emulation as demonstrated by Rosetta 2, which is a translation layer.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

only that it allows for running x86 code on ARM. This does not inherently require emulation as demonstrated by Rosetta 2, which is a translation layer.

WINE doesn't "translate" one CPU architecture to another CPU architecture either, so the WINE comparison is still wrong, no mater if CPU translation is called emulation by you or not. WINE is a wrapper for API calls within the same CPU architecture. That's it.

[–] [email protected] 2 points 1 year ago (1 children)

WINE doesn’t “translate” one CPU architecture to another CPU architecture

Wrong again.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago)

"Windows apps are mostly compiled for x86 and they won't run on ARM with bare Wine"

What you linked is an effort to combine WINE with the QEMU x86 emulator which is an emulator because it emulates CPU calls. Hint that it's an emulator is in the name "QEMU" and an actual quote from the wiki page you linked and clearly didn't care to read: "Running Windows/x86 Applications: See Emulation"

EDIT: Let me also quote from the readme file of the Hangover project:

Hangover uses various emulators as DLLs (pick one that suits your needs, e.g. works for you) to only emulate the application you want to run instead of emulating a complete Wine installation.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (1 children)

To add to what the other person said, there are some Windows-only games even today that run better on Linux than on Windows (I don't have examples off the top of my head.)

[–] [email protected] 6 points 1 year ago

Wine is not CPU emulation.

[–] [email protected] 4 points 1 year ago (1 children)

This is a pretty interesting counter example: https://www.eteknix.com/running-yuzu-on-switch-gives-you-better-performance-than-native-gaming/

But, as others have said, exceptions confirm the rule.

[–] [email protected] 1 points 1 year ago (1 children)

Yuzu can exhibit superior performance because the Switch is rocking the Tegra X1 from 2015. Yuzu absolutely cannot beat the Switch with contemporary hardware and/or comparable power consumption.

[–] [email protected] 2 points 1 year ago (1 children)

But yuzu was running on the switch in that example. So it was beating the switch on contemporary hardware.

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

Oh yeah, clearly I did not read the article well. Still, it doesn’t mean what you think it does.

First, Yuzu is more of an alternative API implementation than an emulator in this setup. The stock Switch OS and API implementation have been entirely replaced with Linux and the Yuzu implementation of the API. Given recent performance uplifts in the Linux kernel, I’m not surprised that Linux+Yuzu beats the first-party implementation.

Second, the use of the word “emulation” in the above thread is really a misnomer: Rosetta 2, Prism and the like all perform what is called dynamic ISA translation. Yuzu need not perform ISA translation when running on ARM hardware.

[–] [email protected] 1 points 1 year ago (1 children)

I'm also not surprised and I still find it amusing. The ISA translation is something I never actually thought about in emulation

[–] [email protected] 2 points 1 year ago

It is always quite amusing to see a billion dollar corporation beaten in its own game :)

More information/context, if you’re curious:

Rosetta 2 in particular isn’t full emulation because the API is the same for both architectures - it is only dynamic ISA translation. I expect that Prism will be slightly closer to full emulation; there is simply no way Microsoft will reimplement all of the legacy Windows APIs on ARM.

WINE is a great example of something that is also not a full emulator, but for the opposite reason: it does not perform any ISA translation or hardware emulation, but rather only syscall (API) translation.

[–] [email protected] 3 points 1 year ago

Just like wine is not a windows emulator, this will not be an x86 emulator

[–] [email protected] 2 points 1 year ago (1 children)

Its not laziness, they have lost developers support over time and lets be honest here, Windows 8 arm was roundly laughed out the door. Expectations are now marketing hallucinated by copilot.

This is typical Microsoft “agile”: minimum effort and delivery.

[–] [email protected] 2 points 1 year ago

Not porting simple stuff like Minesweeper is definitely laziness on Microsoft's part.

[–] [email protected] 25 points 1 year ago (2 children)

Isn’t that the point?

No, the point of Rosetta was to be a stop-gap for 3rd party software because Apple did all porting in-house software long ago.

Prism is Microsoft's tool for staying lazy. Microsoft ships ARM-based Surface tablets since 12 years!!!!!

In all architecture transitions (PPC->Intel then Intel->ARM), Apple Chess has always been a native port from day one.

[–] [email protected] 6 points 1 year ago (1 children)

I firmly maintain that if Microsoft gave a shit about ARM, they would be defaulting every one of their compilers to produce fat x86/aarch64 binaries. The reality is, however, that they don't care about the hardware so long as it is good enough.

[–] [email protected] 5 points 1 year ago

if Microsoft gave a shit about ARM, they would be defaulting every one of their compilers to produce fat x86/aarch64 binaries

Wasn't the point of .NET once that native binary code isn't needed? I'd say if Microsoft gave a shit about ARM, everything would have been ported to .NET.

[–] [email protected] 4 points 1 year ago

The 68k to PPC transition was rough though. It wasn't until system 8 that Mac OS on a PPC mac was fully PPC code. But that was also a much different Apple that's nothing like the Apple of today.