this post was submitted on 18 Mar 2024
107 points (90.8% liked)
Technology
59653 readers
2807 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Software tends to be written against an operating system or slightly more high-level API, not against an instruction set. We're not in the 1960s, any more, compilers exist.
Even back during the x86 to x86_64 switchover people didn't re-write software, we mostly just cleaned up legacy code, removing old architecture-dependent tricks that wouldn't work in 64 bit mode and hadn't been necessary to achieve proper performance for a couple of hardware generations, anyway.
There's always going to be exceptions but if your calculator app needs more work than a recompile you did something wrong. Possible sources of nastiness in otherwise well-written software include anything that relies on manual memory layout, mostly alignment issues (endianness isn't an issue x86 vs. ARM) and very occasionally some inline assembly for the simple reason that inline assembly has become exceedingly rare. I say "well-written" because there's e.g. C code out there hitting so much undefined behaviour that it compiles on exactly one compiler and runs on one architecture but even then it's a case-by-case call on whether to rewrite or clean it up. I'd tend towards rewrite in Rust but there's conceivable exceptions. Also you should've fixed that shit up years ago.