The most timeless thing here is Linux retaining its "highest hacker to user ratio".
The most timeless thing here is Linux retaining its "highest hacker to user ratio".
Hardware compatibility was a major issue. Even if hardware was compatible with Linux it often wouldn't work out of the box. Most homes had only a single internet connected device so if you borked your system you had to have friends that would know how to guide you to fix it over the phone or you had to travel to someone else house to check the internet then come back and try what you wrote down. Users who had no patience for this would get filtered out of the userbase.
If you really want 1:1 hacker-to-user ratio you'd need to go to Haiku.
I would argue that in this case though the kernel is more relavent. So I'd still say Android is Linux based.
Really?
What do you think hackers are using now?
If they just meant "the hacker to user ratio" diminished, they should've said that, but it seems like a weird way/phrasing to acknowledge that linux-using-hackers sell to non-hackers (and is a no duh).
Carmack's point was that linux was a good place to get hackers, so it's good for him to target as a business, but maybe it's better to get them on mac now (in 2025). I don't know: I use a mac laptop outside of my office, but I mostly just use it to browse the web and remote to my linux desktop inside my office. I wonder sometimes if it is important to target mac to get smarter users, and so I might believe mac has the "highest hacker to user ratio" now when in 1997 Linux definitely did. Depending on what I'm doing the bsds might be a better focus.
That is, I suspect that Linux might not actually have the "highest hacker to user ratio" anymore, which is what I think the person I am replying to meant as well. I don't know; and I don't have good reasons for believing such a thing that beyond my own experiences, but I'm curious and willing to be convinced, and so I ask questions.
Windows stuck as the id tooling platform. I'm guessing by the time OS X was relevant, id Software had grown and all the tooling that would've benefited from Interface Builder was maintained by different folks. And Carmack was focused on getting the most out of various graphics cards, where Win32 drivers were both the cutting edge and what consumers had.
Are they though? Except for Windows everything else has become a UNIX (even on game consoles, Xbox runs a Windows derivate and PlayStation runs on a BSD kernel, only Nintendo is still doing their own thing).
The OS diversity in the 90s was much bigger than today, AmigaOS, RiscOS, AtariTOS, BeOS and the original MacOS were all siginificantly different from each other, much more different than Linux vs macOS vs Android vs iOS.
Windows still rules the roost, though it wouldn’t be referred to as Win32 today for various reasons. Linux is even more important today, given the Steam Deck and Proton; but still a smaller market than Windows. And macOS is even more of the third-option today given their antagonistic support to OpenGL/Vulkan and non-Apple-first developers (in general).
If anything, Linux would probably be switched to first since Carmack was always a hardline supporter and it seems to have the most capture velocity; but that’s still quite unlikely. And obviously all the other platforms would be missing from the list altogether given the triopoly/triculture that the modern desktop OS sphere has evolved into.
Win32 is stable, supported and will stay supported forever, as various technologies built on top of it come and go. It is the API for the OS.
> Linux is even more important today, given the Steam Deck and Proton
Which uses Win32 under the hood!
There is a running joke that Win32 is the Linux's most stable API.
And “Win32” as a reference to the platform is well gone, as it’s exclusively “Win64” on the x86 side these days.
Thus why I said it would be unlikely he would refer to it as “Win32” specifically today. But yes, if you conflate “Win32” to “native Windows API” (even that term will be controversial, so replace “native” with “legacy” at your preference), it’s all the same today as then.
Except for the 3D API, the requirements for game development on the OS haven't changed much since around WinXP, and the fact that Win32 hasn't changed much since WinXP is still the greatest quality of Windows (since anything that came after the classic Win32 APIs was pretty much a shitshow - with the notable exception of DirectX).
Though judging from how CS2 is going, it seems that the quarantine measures aren’t particularly airtight.
And that's a good thing because for game development you don't need much more from the OS, just enough to get a window, input events, audio and networking. All the interesting stuff all happens in the 3D APIs, and those have changed a lot since the early 2000s.
Since Windows Vista, most new APIs have been introduced as COM libraries, exception being DDK and extending versions of existing ones with new nummeric or Ex suffixes.
Besides COM, other ones have been based on WinRT, which is COM upgraded to use .NET metadata instead of type libraries, and an additional base interface for reflection, IInspectable.
It's genuinely true. With the exception of the Linux ABI, everything else is in constant flux. I think systemd has slowly taken over the world to the point that it's not going anywhere but beyond that it gets really thin.
I wouldn't assume that. The journey towards the web as an application delivery platform is making Win32 less relevant as time goes on.
Windows is a legacy OS that isn't developed anymore and only exists to support the Excel cash cow.
It’s the biggest Vulkan target, by far.
Is John Carmack the Ja Rule of programming?
Everything else is either Java/Kotlin based or the set of official NDK APIs.
https://developer.android.com/ndk/guides/stable_apis
It is hit and miss if using unstable APIs works across devices.
More so than BSD? Or still more than just the OSs Carmack listed?
Whereas it was a niche but still relatively common for teenage hobbyists to install Linux, get X11 running, read the HOWTOs and surf the web with Netscape for Linux[1] on the home (or school) PC and geeking out on all the Unix things that you heard the older kids got to use at the university lab workstations.
You could argue those users had the hacker spirit of course and many of them did learn programming as well after a while since you still ended up building stuff from source half the time when you wanted to install something.
It helped that you could easily get your hands on cheap Linux install CDs in bookstores and computer shops.
[1] Netscape seems to have been at version 4.0 by 1997. WP thinks version 2 was already available for Linux.