Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is way back about a decade ago, when Valve was very Windows-centric and barely even had macOS ports of Steam running. Windows 8 was announced with an entirely new application type, APIs, and distribution model intended to support tablets. Existing applications were shoved in the Desktop penalty box, while new applications had to be fullscreen or side-by-side, like a tablet. Furthermore, Windows on ARM was announced, with the Desktop penalty box further restricted to only Windows apps (though you could jailbreak it). If you wanted your app to work as a tablet app, you had to rewrite it for XAML and distribute it through the Microsoft Store, with similar technical restrictions to that of Apple's.

The very clear message from Microsoft was that the future of Windows was in fullscreen tablet apps and that the desktop - as well as third-party app stores - was going away. Valve would proceed to launch a Linux version of Steam a few months before Windows 8 RTM'd, their own Linux distro a year later, and consolized PC hardware another year after that. Basically, the whole company made a very clear pivot away from game development (which they still haven't fully gone back to) to ensure Steam had a lifeboat if Windows 9 were to drop the Desktop or enforce app lockouts on it.

Of course, what actually happened is that Windows 8 became the laughing stock of the entire PC industry. Microsoft was trying, like, five developer transitions at once and nobody was interested. (Not even Apple can do that, and they actually did try. Ask me about Rhapsody sometime.) So the end result is that app developers never wrote anything to the new native XAML APIs, users just used the Desktop app, and nobody had any interest in Windows on ARM tablets. That's why you don't remember the Windows Store lock-in; in Windows 10, Microsoft got rid of it.



No it didn't, in fact the new revamped store also includes Win32.

https://blogs.windows.com/windowsexperience/2021/06/24/build...


Steam can be installed on all editions of Windows 10, unlike Windows 8 where you could not install it on the RT edition.

(Yes you might have to switch out of S mode, but that wasn’t an option in RT)


RT was also only arm.


And why should I care about it?

Windows store is already in place.


Valve certainly cares about it


Well that is their problem, they can drink beers together with Epic.


Right, and the whole discussion was about Valve's motives, not whether or not you like the Windows store.


> Ask me about Rhapsody sometime

I'd actually love to hear what you think about rhapsody, a quick google search doesn't tell me too much about it


After Apple bought NextStep to serve as the basis of their next gen OS, Rhapsody was a developer preview that was a reskinned NextStep running on Mac Hardware.

Existing Macintosh software could be run under emulation, and the original plan was that everything going forward would need to be rewritten using the NextStep APIs. (All those NS frameworks still used on iPhones and Macs today)

Eventually Apple decided they would have to create an additional set of APIs (Carbon) based on the existing Macintosh APIs that would allow software vendors an easier path forward.

Developers could adopt Carbon with much less effort and eventually transition to the NextStep APIs as part of a future large scale rewrite.

Carbon never transitioned to 64 bit, so those NextStep APIs did eventually become the default for native software.


In very, very short terms, Rhapsody is Apple's Windows 8.

In order to explain why that comparison makes sense at all, I first need to go over some basics.

After shipping the original Macintosh in 1984, Apple's investors got really mad about how the computer wasn't selling, and more or less forced Steve Jobs out of the company. Jobs decided he was going to build another computer company called NeXT, which was going to out-engineer Apple and make the next big thing. It didn't actually work out that way, but conveniently for Steve, Apple had been mismanaged into the ground and drowning in technical debt. So Apple basically bought NeXT because OPENSTEP (previously NeXTSTEP; at this point Steve was trying to turn it into a cross-platform API) was a functional operating system and all of Apple's attempts at System 8 (including asking IBM to finish Copland, which is another boondoggle called Taligent) weren't.

So, right when Apple announced the NeXT buyout, they also announced that the next version of the Macintosh's OS would be built on top of OPENSTEP, with all existing Macintosh software running in a fullscreen "Blue Box" VM. The "Yellow Box" would hold new software written to the OPENSTEP APIs, and these apps were properly memory-protected. (Context: At this point in time all System 7 apps ran in kernel mode with separate segmented heaps. It's exactly as bad as it sounds.) This new OS was code-named "Rhapsody", and it even came in an Intel port that would install and run just fine on most PCs (albeit without the Blue Box).

Apple's plan was basically to continue the NeXT business as-is, with some quick rebrands (including rebranding the Windows NT port of OPENSTEP as "Red Box") and hastily-written compatibility bridges so that Macintosh users wouldn't be completely left out in the cold. Users were anticipating the new OS, but developers were utterly furious that they were being told to basically abandon all of their software and rewrite it to this entirely different and far more complicated API. They called the Blue Box the "penalty box", because they felt punished for staying loyal to the Mac.

I call Rhapsody "Apple's Windows 8" because it basically tried the same thing Windows 8 did a decade later: foisting a technically superior but entirely incompatible API on developers who weren't interested in any of it. Some might disagree because, well... Apple never actually shipped what they announced. A year after assuming control of Apple, Jobs would come up on stage again and announce that Rhapsody was "cancelled". Instead they'd build an entirely new OS called Mac OS X, built exclusively for the Mac, with three new subsystems; "Cocoa" (OPENSTEP APIs), "Classic" (Mac Toolbox APIs), and now "Carbon"; the latter being specifically intended for quickly porting existing Macintosh software to OSX without rewriting your app. This made developers a lot happier and saved the entire transition.

In the meanwhile, because Mac OS 8 was terrible for running servers on, Apple would ship another """unrelated""" OS called "Mac OS X Server", which was literally just the cancelled retail release of Rhapsody with some extra server applications bundled in. It even called itself Rhapsody in uname.

If you're wondering what happened to the Intel version of Rhapsody, well... not counting the two developer releases before Rhapsody's faked death, Apple would maintain Intel ports of everything up until actually announcing a proper developer transition from PowerPC to Intel years later. Just as proof of how much Apple had learned their lesson of how not to handle a developer transition, Carbon would actually get ported to Intel, and there were Intel OSX apps that needed it. It was ultimately removed only in macOS Catalina.


The funny thing is that Carbon was based on the modified Toolbox APIs that were intended for Copland! There used to be a header with a big comment block telling the whole history. AFAIR, they had tried changing the System 7 APIs so they could run on a system with memory protection, then they gave up because Copland had failed (and I think part of it was a mandate to be able to use the System 7 API _without_ changes, which was impossible), then Mac OS X came along and the comment changed to "we're doing this after all, lol".


Thanks, I've never heard of this before so it was cool to learn about.


You don't remember the Windows Store lock-in because there wasn't one. (Except for the arm based Windows RT and even that because of no x86 emulation). It was mostly FUD by companies that already had app stores (EA/Valve) or were preparing one (Epic).


No, it absolutely did exist, but it only applied to the new tablet/store app environment and APIs exclusive to it (such as native/WinRT XAML). Win32 apps weren't locked out from running, but they also couldn't use these new APIs. If you wanted to rewrite your app for the tablet environment (perhaps because Win32 was entirely inadequate for developing apps even back in 2012), then you had to also distribute that app on the store, as AFAIK there was no easy way to sideload AppX packages. In fact, games that were packaged for the store couldn't support things like G-Sync, Vulkan, or overlays because the lockout technology also firewalled off external DLLs.

You might not have noticed this because nobody cared about the store and just used Windows 8 like Windows 7 with some annoying tablet UI duck-taped to it.


The lock-in they were talking about was that of the only way to get software to Windows would be from Store. On the other hand all the half baked "modern" apis were Sinofskys revenge for not getting the CEO job.


> Except for the arm based Windows RT and even that because of no x86 emulation

No, even native ARM executables weren't allowed to run if not downloaded from the Store.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: