Apple Silicon and losing our legacy
tacit.livejournal.com
tacit.livejournal.com
It’s also a reason I use Lisp: the spec doesn’t change and won’t change. Stuff runs forever.
Yet another example of how holding binary artifacts is not functional equivalent to “owning” software.
Of course, because Microsoft was a multi-headed chimera, Windows itself bent over backwards to keep everything not Office chugging along forever.
Epigram 120, Alan Perlis.
There is a great DailyWTF somewhere about a company that was using an early IBM mainframe, which when it died, instead of porting their code to the newer mainframe, the wrote an emulator. And when AIX came around they wrote a mainframe emulator to run their old emulator...
This maybe the story I was misremembering the details of?: https://thedailywtf.com/articles/No_Need_to_Change_It!_
Depends on the platform. I can run statically compiled Linux binaries that were released 20 years ago just fine. Similarly, I'm able play Windows games that were released over 20 years ago.
Really, you should generally be under the presumption that changing anything at all could screw up anything and everything; it’s really a marvel of human engineering anytime software runs successfully
Case in point: try running any of the Loki Linux game ports from 20 years ago on a modern distribution...
That’s a modern phenomenon. AS/400 or Solaris binaries were different.
My point is about this sort of thing:
> [...] anybody who has read the Old New Thing blog (https://blogs.msdn.microsoft.com/oldnewthing/) or Raymond Chen's chapter on Windows backwards compatibility (http://ptgmedia.pearsoncmg.com/images/9780321440303/samplech..., PDF) will be both impressed and horrified at the lengths the Windows team went to in order to avoid breaking programs.
I would like to see more companies open source their commercial products after maintaining them is not cost effective. I would like to see mostly open source code, period.
re: Lisps: I have been using Common Lisp since 1982 (and other Lisps before that) and I love it that my old code and archives of other peoples’ Common Lisp code usually runs with no problems.
"Everything is a file" only works when TXT is the file format though. When things build up to PostScript or PDF, or Claris... then things get out of hand too quickly.
I'm certain an open source x86 emulator on ARM will get done (QEMU already?), as these requirements aren't specific to Apple Silicon (although will likely accelerate it).
But if the author is concerned about PageMaker and old zines, why not run the original in something like SheepSaver that emulates PPC? Surely that port will exist (ARM -> PPC) with no need to run old Intel Mac apps.
Well, sort of. The first assignment was to write a bootloader in x86 assembly. For the second assignment we were given a bootloader and a partially-implemented kernel, and we had to finish the kernel by writing a non-preemptive (cooperative) scheduler (including implementing context switching and so on). Third assignment same thing but a preemptive scheduler. And so on. The partially-implemented kernel is very rudimentary—kernel threads but no userspace threads or forking, no filesystem, no virtual memory and no actual difference between kernel mode and user mode (until the virtual memory assignment, in which the partial kernel we were given did actually do ring transitions), etc.
Anyway all this is to say that we were running a very very bare-bones, stripped-down kernel, and even then it was annoyingly slow, so I expect that it would be still be extremely slow running a "real" OS. It's my understanding that that's not really what Bochs is for, though. If you want to run Win95 use a normal VM; Bochs is meant to be a low-level x86 development tool. Though again that's just my impression, so I could be wiong in that.
Apple could have made "Rosetta 1" open source for enthusiast to maintain. They didn't. I doubt they'll do it now for Rosetta2.
Apple does this all the time, pushing aside the old to make way for newer stuff. (MacOS before X, 32/64 bit, a lot of my old iOS apps just stopped working with a note to contact the publisher). My my old snow leopard machine stopped working getting updates from macOS and became useless, but will run windows/linux. Software support requires endless maintenance esp on mac, and Apple limits support to the last 5 years (or so) of machines.
The "WinTel" (is that still a term window/ intel) machines seem to bend over backward for legacy applications to still run, which is part of their appeal (esp to business), but probably saddles them with technical debt. The "new" cost of lower performing machines and shorter battery life, is software lifespan.
https://www.linkedin.com/company/transitive/
because http://www.transitive.com goes to IBM now....
Technology can't simultaneously progress while still remaining backwards-compatible for years or decades. As another commenter here says: just use an old computer to run your old software. When your old computer breaks, buy another on ebay. Ebay won't run out anytime soon.
Apple does not need to dominate the PC market to make money. What they deliver pushes other competitors to improve.
I, like the commenter I've replied to, can't believe that we're even able to frame a processor power shift like this in a bad light. It shows companies they can build something big without x86 - that's good for hardware in the long run, irrelevant of whether it's Apples variant or not.
It's our responsibility, as enthusiasts, to make sure legacy lives on. Plenty of people are building emulators, making home networks with old hardware.
It would be much easier if Copyright/Patents expired shorter after the big money has been made. Things should become open source to let everyone in after the inventor has reaped the benefits of their creation.
You say that as if it's about ARM. Plenty of ARM chips on mobile side - none of them come close to Apple mobile performance. Maybe I'm missing something but it looks like Apple has a good chip design department and I don't see how this translates to other ARM devices - Microsoft had their surface with Snapdragon and AFAIK the performance/usability was nowhere close.
That sucks for Intel but is fantastic for everyone else.
Other vendors using ARM chips means virtualization becomes easier between platforms. Linux servers are going to be running ARM soon with Amazon etc designing their own chips so web devs will want to be ARM native.
AMD can essentially take the high end x86 market and dominate gaming alongside Nvidia GPU's and others can experiment elsewhere!
Nothing good comes from one company owning the entire pie. You create conformance with apple's chips you're subjugating software to apples monopaly whims.
I realize that just having a lot of RISC-V hardware options available isn't a guarantee that they're particularly good in terms of their price-power consumption-performance tradeoffs, especially in comparison to ARM (the "whole universe of high-quality hardware designs" that you mention). That may well have more of a delay.
microsoft and x86 have entered the chat...
in all seriousness, there is a legitimate tradeoff to be made here. the accumulated legacy cruft can make it quite annoying to write code targeting windows. but once you get it done, you can be confident that it will work for a long time. on macOS, the APIs tend to be a lot cleaner, but you pay for that with features that are routinely deprecated, triggering major rewrites. as a developer, I do prefer microsoft's stance. I don't use macOS enough to have a real opinion as a user, but it is nice that I can run pretty much any windows software from the last twenty years without spinning up a VM or booting an older machine.
Sidenote - it's funny that Microsoft is so stable for their customer base while just constantly churning their frameworks and APIs. I worked in an MS shop, and boy, it seemed like they were introducing a new GUI or Web framework every six months, while of course slowing down or deprecating the older ones.
imagine a word processor that made breaking changes to its file format every year. there's no new feature that could be worth that amount of hassle in 2020. in markets that are still changing rapidly, it's okay to be more aggressive with phasing out support for older versions. from my perspective, the desktop OS is already mature. more than anything else, I just want it to not break things that already work.
Developing emulators is a much easier solution than preserving compatibility at the hardware or even the OS level. The fact that 20-year old windows games work fine is a product of Microsoft spending insane resources to maintain vendor lock-in.
Emulators themselves tend to be highly portable, for example I suspect that zsnes and dosbox will "just work" on arm64 macs or even RISC-V.
And x86/x86-64 supporting legacy instructions smh.
(At the end of the day you shouldn't be running ZSNES anyway. In terms of accuracy, compatibility, even security: way better SNES emulators out there.)
Except it’s really not though? OP loves technology, saying it revolutionized several industries and really appreciates the power and innovation desktop publishing specifically brought. All they’re asking for is a stronger ecosystem for porting older applications, not for Apple to go back to x86. OP is even way more open than most (surely than I would be) to all the steps it takes to convert between the various proprietary file formats over the years.
- https://www.youtube.com/watch?v=mBiQgLlgcnA
- http://spritesmods.com/?art=minimacplus, http://spritesmods.com/minimacplus/mac_full2_tmb.jpg,
Tell that to people running DOS programs: https://blog.storagecraft.com/dos-quite-dead/
It's a choice that Apple gets to make. And that consumers, who buy or don't buy from Apple, get to make too.
Yet I can run statically compiled Linux binaries from 20 years ago just fine, and play Windows games that were released over 20 years ago, too.
My last experience trying to deal with ancient Linux binaries on an ARMv5 device running linux 2.4 was pretty abysmal. There were some breaking changes in the mid 2000s, I believe regarding threading? Old executables wanted LinuxThreads while modern linux uses NPTL. Not sure though. Might have just been a userland/libc problem.
Sometimes, even Linux breaks backwards compat to progress.
Apple works hard to break backwards compatibility every few years, while other operating systems will happily run software from decades ago as they care and invest in not breaking userspace.
I agree to some extent, but at some point we (as in society) need to come up with some sort of standard for file formats and for user interfaces that will last for decades. Part of what makes technology useful is that when a tool is invented, it's function and our interface to it don't significantly change for sometimes thousands of years.
Take a hammer as an example. Even though there have been advancements in design and durability, any human who has ever used one can use another. That's why so much of the actually important stuff still runs inside the Windows ecosystem. Until the ribbon redesign, you could take anyone who knew excel, sit them in front of any newer or older version, and they could get to work.
What I don't understand is why the technology industry can't deliver one UI paradigm per decade, loosely couple the UI to the services that manipulate the state, and then allow the user to stick with one interface to get their work done for as long as their career. Then every 30 years you could break the oldest UI -- not sure why you would need to, but whatever -- and then the whole world could save trillions of hours of lost productivity instead of dragging themselves through redesigns that only exist because they give VPs a line in their resume.
(In this fever dream we all work four days a week. Programmers have time to produce immaculate, well documented, and bug free code. The hacker gods are now roboticists putting the finishing touches on fully automated luxury space communism.)
Really well put comment! People padding CVs / resumes are a huge problem in our area and everybody is suffering -- programmers, IT/sysadmins, and the users. I really can't understand why is this tolerated. I mean, I can... but it's a figure of speech.
I dream of the day when programming and UIs will be much more strictly regulated (yes, actually regulated) but I am 40 now and I am not sure I'll live to see the day.
… Yeah that's not really relevant anymore. Turns out a lot of people like their old cruft to keep working.
There is a huge amount of problems to solve before a new architecture is usable. This may be not viable at all.
It didn't actually fail, at least not yet. But it's not clear it can succeed either.
That got them started but Apple has written a ton of frameworks since 2000 when the first version of MacOS X shipped.
The point being made was that Apple didn't attempt to be backwards compatible with classic Mac OS.
The Mac didn't try to be backwards compatible with the Apple II that came before it.
The iPhone wasn't compatible with any of the phone platforms and standards in 2007.
This seems like the truly anti-technology opinion, to claim that technology lacks the ability to progress into the future without losing sight of the past.
There's no benefit to archiving the source files and demanding they be opened on new hardware because the historical interest is in the content. And the content hasn't been edited for decades and won't need to be edited in the future.
If you really need the content you can pull it out of a PDF or scan it from paper. And if you really need to preserve it you can scan or screen shot the source files - which takes work, but so does setting up old software on new machines. (Probably at least as much considering how hard it is to emulate an identical operating environment with all fonts, deprecated image formats, and so on.)
So this makes as much sense as complaining that MacOS or Windows don't support the ancient professional magazine typesetting systems that used to run on minicomputers.
The files for those are doubtless backed up somewhere - probably on mag tape, possibly in landfill - but they're culturally irrelevant because the output has either been scanned and put on the web or simply forgotten because it's of no cultural value.
The bigger question is why there's a cultural fixation with preserving every last element of the past. It makes sense for content of record such as newspapers and certain magazines, but it's hard to understand why a crossword puzzle magazine for seniors from 1982 or a zine that only ever had twenty five readers needs to be preserved.
And what's going to happen 25 years from now? Are we going to have the entire archives of YouTube, Spotify, Facebook, IG, and Twitter to sift through?
Would we want to, even if we could?
I don't mean the entirety of all social networks, of course... they follow roughly the same pattern so no use keeping 50 zettabytes of that; like 10-20 terabytes would be quite enough.
But the general point stands. If we want to evolve as a civilization, we should try and extract lessons from our past.
The time to access those files and migrate them into more durable and supported formats is right now. Or 5-10 years ago for that matter.
> In a perfect world, someone would write a Mac emulator that lets you emulate a High Sierra Mac on Apple Silicon hardware, just like SheepShaver lets you emulate a PowerPC Mac on Intel hardware.
OR... or... there are computers other than Apple's. Computers which could be used to emulate an x86-64 Mac without having to deal with ARM translation because they're x86-64 based themselves.
The author's viewpoint is so Apple-centric that the idea of this digital archaeology happening on something besides Apple hardware didn't even enter the picture.
That was my first thought as well. Also if he wanted to preserve old DTP documents, the way to do that is obviously exporting them as .pdf before moving to other software.
That being said, why write an emulator to ARM? Apple Silicon will die someday as well. Write an emulator to JavaScript. If there's a day where JavaScript isn't a valid platform, we'll probably have transcended physical matter by then. There's definitely prior art in browser emulators too.
If there is anyone to lay a duty toward, I would argue it's the developers (Big developers, like Adobe) who could contribute directly in providing code/documentation for their legacy formats.
• Never should have removed Rosetta 1.
• Should not have dropped support for Carbon and 32bit apps.
• Should not remove Rosetta 2 in a few years, as many believe they will.
I acknowledge that it's easy for me to sit here in my chair and say that someone else should be doing extra work—but we're talking about one of the most profitable companies in the world! Apple could hire engineers to maintain this stuff, if they wanted to spend the money. It would not somehow make the rest of macOS worse—no one is required to use old APIs.
If you compared the amount of effort it would take Apple to maintain these systems, with the combined effort of every single developer migrating their software, I'm pretty confident the former route would be a lot less work. The alternative is that developers migrate to systems like Electron instead of trying to keep up with macOS's changing base, and that's not good for users.
It's not about not forcing developers to use old APIs; there are lots of developers who wouldn't upgrade their existing apps because they still ran.
It's just human nature to not want to update your apps if they're working fine under Rosetta or using Carbon and 32-bit APIs.
Among the many other issues this would cause, people would expect 32-bit Carbon apps to run on an M1 Mac; trying to do so would make Rosetta much more complicated.
The other thing is by pushing the leading edge, it gives upstarts a way to enter the market against incumbents. It's doubtful Affinity, which makes fabulous design apps [1] would been able to gain a foothold at all if old versions of Photoshop, Illustrator and PageMaker/InDesign just ran forever because Apple kept backwards compatibility with old APIs and frameworks.
And unlike Adobe, Affinity takes full advantage of Apple's latest APIs and frameworks in a way Adobe never has, to make them competitive.
It also discourages developers from using newer, better APIs to move things forward. Apple developed some amazing technologies in the 80's/90's they discontinued when MacOS X became a thing, like QuickDraw GX, HyperCard, OpenDoc, OpenTransport, etc.
I've experienced every Mac transition starting from the classic Mac days (16-bit 68000) to today, with 64-bit Intel and ARM processors. There's not anything off the top of my head I'd want to use today from back then.
I also started the first Newton users group in the world at least a year before the Newton MessagePad shipped in 1993. I know people who are still pissed that Steve Jobs canceled the Newton when he became iCEO in 1997.
There does come a time when you have to move on.
And for every developer who took the time to update their apps to modern libraries (and would not have done if not forced), how many just moved to a non-native framework like Electron instead? I don't think this work the way Apple thinks it does.
Like the poster you're replying to, I've been through all of Apple's transitions from the 68K days to now. And in this context? I can't honestly think of any apps like that. The Electron-based apps I know of started as Electron-based apps. Adobe and Microsoft have their own proprietary cross-platform toolkits, but they're still ultimately building actual Windows or macOS apps; the Affinity apps are likewise native to their operating systems; many of the productivity programs I'm often in (Ulysses, Acorn, Drafts, Scrivener, BBEdit, Nova, MindNode, Safari) are actual genuine Mac apps.
I think the things here are that (a) it may be easier to port an "old" native Mac app to "new" native Mac frameworks than to completely rewrite the app; (b) Electron is relatively new compared even to the "new" Mac frameworks (Cocoa is nearly two decades old, older if you count NextStep!); (c) while Electron might be high-performance enough now to write a full-blown desktop publishing program in like the one the article poster (who is my former college roommate, it turns out, hi Franklin), it definitely didn't start out that way; (d) a lot of folks are still not super thrilled with most Electron apps compared to native ones anyway. Yes, Visual Studio Code rocks, but it's kind of the exception to the rule.
Personally, I also think Apple being more ruthless than Microsoft in deprecating old APIs is probably a good thing for the Mac platform in the long run. one of the programs I used to use more often, Dramatica Story Expert, has been tenaciously clinging to the trailing edge of technology for years: like me, it started on the Mac in the 68K days, and it has stubbornly missed every single transition, its developers doing the absolute bare minimum after the fact to get it quasi-working. This is an app which, in 2020, is not only still 32-bit, but does not run at retina resolution because they have been hacking their old codebase rather than moving to "new" -- i.e., from this century -- APIs for shit as basic as text rendering. Its text boxes don't respond to OS X key shortcuts, it doesn't support services, its fuzzy UI is in Lucida Grande. I look at its sorry ass and shudder to think what the state of Mac software would be like if Apple had gone out of their way to make it easy for developers to behave that way.
I think it's a mistake to assert that a company should always indefinitely support their software. There's certainly an upside in maintaining backwards compatibility, but there's also certainly a distinct other upside in breaking it (e.g. authentication services dropping support for HTTP and requiring HTTPS).
To restate that in a more generic way: given multiple existing constraints and you want to add on even more constraints, there's no guarantee that you can always satisfy all constraints under all circumstances (e.g. if you have to support multiple API versions, you can't necessarily always support every single one since sometimes the changes are fundamentally backwards incompatible).
And it's not "just" the software or the architecture or the OS, sometimes things like fonts (and other minor things) get in the way. But it's amazing to unpack an old Windows binary from 1994 and having it _just work_:
> I opened PageMaker 4 files in PageMaker 6, opened the PageMaker 6 files in InDesign CS6, and opened the InDesign CS6 files in InDesign 2020.
If these applications (or even just the file processing parts of them) were open source, it would be much easier for someone to port them to the new platform than for someone to write an emulator for intel macs.
OTOH, there's probably plenty of old open source apps where the file formats are inscrutable memory dumps. It's more an open format issue than open code.
In effect, these design files are the source code. InDesign/PageMaker/Quark are the compilers with a target output of PDF or some other supported doc type.
Keeping people on Windows was never Microsoft's goal - the real lock in is the .doc/.xls/.ppt (and newer "Open" XML versions that aren't really that open), and keeping them buying Office or SaaS offering year in and out so they can open older files.
GSuite and Libreoffice are more of a threat to Microsoft than Linux ever was...
Microsoft could probably sleep well if OO/LO were the best competitors out there :-)
That is an overbroad statement.
macOS is a little strict about processor generations—in order to run Mavericks (10.9, circa 2013), I had to build my Hackintosh around Haswell—but I think a kernel developer could get around this by lightly modifying macOS's open-source XNU kernel. There are custom Mavericks kernels that work on modern Ryzen processors, for instance[1].
The graphics side of things is admittedly a bit more worrisome—macOS doesn't work with all that many GPUs, and none of the driver code is open source. Graphics acceleration isn't strictly necessary, but you will have a gimped experience without it.
1: https://macintoshgarden.org/apps/custom-kernels-ryzen-proces...
If you have a .xyz file but not the ability to write software from scratch to read/write/manipulate this file as needed, you cannot consider access to that file to be permanent.
SheepShaver in particular already works on PowerPC and Intel so clearly they structured the code to support multiple platforms. Instead of trying to get Apple to open source Rosetta 2 maybe instead focus on adding ARM support.
There's no fundamental blocker to emulating x86 either - qemu does it, and will run up to Tiger. I'm almost positive the only reason we're not emulating amd64 is that the cost hasn't been worth it so far. And eventually, one day, we'll be emulating Apple Silicon on something too.
We are, for good or ill, the first generations for whom more of our 'legacy' is digital, and as much as there's the idea that anything on the net is forever, the reality is that more is lost, perhaps forever, than is magically, infinitely available.
As long as we save these old files, they'll be accessible in the future.
But, probably not everything will survive, only the most important things. I think I'm okay with that.
Then again, maybe by 2120 there will not be enough interest in a machine from 1982 to continue to build an emulator. But, maybe they will emulate the MacBook M1 and from there my great grandkids can load an even older emulator to try the TRS-80 that they read about in my programming ebook from 2019. If HTML, Kindle or PDF still exist anyway.
I ended up using a mixture of DOSBox and Windows For Legacy PCs under Parallels:
Makes reverse engineering them pretty difficult when you have to work out how the original software was laid out.
this is front page on HN?
"SheepShaver and InDesign CS6 both won’t run on Apple Silicon."
That's the issue. But, how does he know that? They don't run now, maybe they will later.
Use the old silicon until then.
But I know that's not the fault of the tooling. Sometimes it's the fault of the OS / framework vendor for aggressively deprecating stuff (like Apple does). But most of the time my observation has been that a lot of companies simply won't budge and won't even hire an intern to try and recompile their app for the new platform. Sad.
Otherwise the cycle might repeat yet again once VMware goes under.
A company like Oracle or VMware? Lots of developers are going to not just want, but need Docker to run properly. Just be patient and pipe down.
Imagine how much more we could know about the motivations of Galileo's inquisitors if we could read their archived email.
And for the specific items in this post, it's not as if anything is an emergency right now. It's reasonable to expect that working Intel Macs will be around for decades to come, just like you can find operational 68K and PowerPC Macs without much trouble right now. It's actually gotten easier to get data on/off a lot of old machines with time, due to things like floppy emulators, SCSI2SD adapters, serial to WiFi adapters, etc. The author could buy a G4 capable of running OS 9 and OS X for less than $100 if they wanted to, and it would still easily connect to modern networks, access modern USB drives, etc.
All hardware will die eventually, but that's going to happen regardless of any processor transition, and there's just no way that these same problems are going to be entirely prevented by sticking with x86 forever.
I do hope somebody comes up with a (non-Apple/Rosetta) x86 emulator for Apple Silicon Macs, sort of like VirtualPC for PowerPC Macs.
PDP->intel meant we can’t run pdp code (oh wait many banks now just emulate PDPs running cobol)
macOS: 68k->ppc, ppc->intel, and now intel->arm. macOS <= 9 to X
Etc
Does the author not realize that emulators exist?
>losing our legacy
"legacy" is mostly a bad word in the tech, so shouldn't we celebrate losing it too ? :)
It's a very cynical take on the fact that as a society we aim to design and build better products and therefore use those products over old. Particularly because the author was concerned purely because they are an archivist and historian. With seeming no productive use of the older technology aside of historical value.
Does that mean that the new PS5 should have a VHS drive to accommodate historians? No, you can still buy and own a second hand VHS drive.
I don't see why it is viable for companies to spend their time innovating and designing new products only to have to think about keeping historic software designs alive. I understand there is of course a balance between compatibility with older software and the new. But you pick and choose your battles.
Prince was, notoriously, very protective of his music. Much, perhaps most, of his output is locked away in a vault, perhaps never to be heard. And of the material that was released, he didn't allow covers except by artists he handpicked; he was also the only artist to consistently turn Weird Al down when approached for a parody of his music.
But Prince was a Da Vinci level genius. Every song he released was a treasure. So anyone who knows anything about music will admit that not only did Prince have the right to be so protective, but he has already gifted us with so much that to be angry at him for not giving us more is to be selfish.
Apple is like that. They kickstarted the personal computing revolution, and every single computing revolution to come after. GUIs in 1984, portable digital music players in 2000, smartphones in 2007, tablets in 2010. The Apple M1 Mac is the first personal computer to be developed, hardware and software, soup to nuts by a single company. It is the first machine to uncompromisingly represent a single vision for computing and how humans engage in it. It is not only the best computer on the market by a wide margin, it is the next revolution. The machines they just released are only the beginning: the future portends even higher performance desktops and laptops with lower power draw and heat/noise output than anyone else on the market. They absolutely deserve the very strict control they exercise over their platforms because that control has let them shape an impeccable vision of how computing should work. (Which becomes even more appealing when you consider the messes the Windows and Android ecosystems have become.) To demand that they turn loose of that control, for the sake of the few users still running legacy apps, is to compromise what makes Apple, Apple. Macs run macOS, and macOS runs on Macs. Demanding open source emulation of macOS compromises that. It's not going to happen.
Apple is going to ship at some point a 5k (or maybe a 6k, since they're already selling a 6k display that all of the M1 Macs can drive [1]) super thin, iMac Pro with the desktop version of the M series, with 6 or 8 FireStorm cores (instead of the 4 the M1 has) that supports 32 or 64 GB of RAM…
That will be a stunning computer.