Post B2izGl7psDFacAZeL2 by aeva@mastodon.gamedev.place
 (DIR) More posts by aeva@mastodon.gamedev.place
 (DIR) Post #B2iwuiXcbIYQJxzssi by glyph@mastodon.social
       2026-01-27T21:21:20Z
       
       1 likes, 0 repeats
       
       I think #Python packaging drives most people insane because they implicitly think "packaging" and "deployment" are the same thing.Python packaging is a process for producing an intermediary artifact that can be consumed by Python programmers and organized according to community rules.Python *deployment* does not really exist. You deploy to a platform, not a programming language. Which is double-maddening: Linux, the place where most people think they want to deploy, *also* isn't a platform.
       
 (DIR) Post #B2iwupIdTPj5HW2Vzk by glyph@mastodon.social
       2026-01-27T21:23:57Z
       
       1 likes, 0 repeats
       
       Python packaging is a *prerequisite* to deployment, but it's only one of the prerequisites. The other, gigantic, implicit prerequisite is cobbling together your own platformoid out of Linux and a hundred other tools, which are *probably*, *mostly* the same as a whole bunch of other people deploying to a similar platformoid and calling it "Linux" (or "Ubuntu" or "Docker" or "Kubernetes" or something). But every one of a thousand different details could differ. It *probably* doesn't! But it might.
       
 (DIR) Post #B2iwuvG1K3CPl8rVke by glyph@mastodon.social
       2026-01-27T21:27:16Z
       
       1 likes, 0 repeats
       
       Your other options? macOS and iOS *are* platforms, but the vast majority of community knowledge of how to deploy to them involves deploying to the decrepit UNIX emulator buried in macOS, and giving up entirely on iOS. The first-party tools for properly deploying to these platforms are restrictive, weird, buggy, slow, and encumbered with a bunch of corporate ideology which heavily conflicts with the intellectual heritage of Python, so most Pythonistas (who mostly want Linux anyway) ignore it.
       
 (DIR) Post #B2iwv2nbHbDf9JcvZ2 by glyph@mastodon.social
       2026-01-27T21:29:39Z
       
       1 likes, 0 repeats
       
       Windows is barely a platform, one which even Microsoft seems keen to slowly destroy. It's comparatively "easy" to deploy to as compared to macOS, because of its atrocious security posture (mostly no need for integrity checking of any kind, so you can skip all the faff with certificates). But Windows is a platform which is very easy to pollute with implicit dependencies, and verifying that your artifact will work on someone *else's* computer mostly means buying a second computer for testing
       
 (DIR) Post #B2iwv9dDsa4sL9pErQ by glyph@mastodon.social
       2026-01-27T21:31:30Z
       
       1 likes, 0 repeats
       
       All of these platforms have a wide common surface area for _executing_ code, but properly _deploying_ code (getting it on your PATH, making an app icon show up, talking to the system secrets store, acquiring relevant permissions for networking, automatically starting up, automatically shutting down) are wildly different. So, once again, we have developed a culture of flinching away from the pain and just assuming a sysadmin will open a terminal window and type "python run_program.py"
       
 (DIR) Post #B2iwvLw68EJ2VAkTwm by glyph@mastodon.social
       2026-01-27T21:49:50Z
       
       0 likes, 0 repeats
       
       What makes a "platform" is a set of strict guarantees about what will be present, that your application can rely on, and what format your application needs to be presented to the user in. A "platform" is a description of a boundary between your artifact (not just your program!) and the system which will absorb that artifact. "Linux" is not a platform not merely because "it's just a kernel" but because the shared idioms even between different desktop distros do not encompass such guarantees
       
 (DIR) Post #B2iwvRBsaytunZAejw by glyph@mastodon.social
       2026-01-27T21:52:05Z
       
       1 likes, 0 repeats
       
       There *might* be an emergent platform that's something like "Linux-wayland-dbus-systemd-flatpak" but trying to define the boundaries and properties of such a thing is an incredibly labor-intensive project. Or maybe "Linux-6-docker-ipv4-no-firewall". Perhaps somewhat narrower than the earlier example, but still *shockingly* fraught with weird failure modes and undocumented inconsistencies between providers
       
 (DIR) Post #B2ix9Oab41dkmiO6rI by aeva@mastodon.gamedev.place
       2026-01-27T21:54:16Z
       
       2 likes, 1 repeats
       
       @glyph this aligns well with something I was thinking about last night.  Someone on here trying to relitigate "actually Linux is just a kernel GNU/Linux is the operating system" again, but imo there's no operating system called GNU/Linux that you can just install on your computer, it's a family of operating systems that have names like "Debian" and "GUIX" that are mutually incompatible with one another, which makes "porting to Linux" a nightmare.
       
 (DIR) Post #B2ixICe0qOnQLQBXzE by glyph@mastodon.social
       2026-01-27T22:05:19Z
       
       2 likes, 1 repeats
       
       @puppygirlhornypost2 @aeva they're not. you can't even get a guaranteed full enumeration of all the symbols in *libc*, let alone a clear understanding of what distro-agnostic instructions to give users to install your software on "linux". it's best to think of even the vague cloud of systemd-adjacent stuff as a platform construction kit, rather than a platform
       
 (DIR) Post #B2izGl7psDFacAZeL2 by aeva@mastodon.gamedev.place
       2026-01-27T22:10:48Z
       
       1 likes, 0 repeats
       
       @puppygirlhornypost2 @glyph I think distros putting everything in different paths, picking different init systems, different audio subsystems, and little things like glibc backwards compatibility breakages are very significant differences.  That is a massive permutation space!  I can't just simply make a linux build of a game for example.
       
 (DIR) Post #B2k03njJAnro2WRk1Y by aeva@mastodon.gamedev.place
       2026-01-27T23:39:38Z
       
       1 likes, 0 repeats
       
       @mia @puppygirlhornypost2 @navi ah, ok - so I'm understanding your meaning correctly, your point of view is that one shouldn't provide prebuilt binaries for linux *ever* even when the full source code is available, and that distro package managers distributing prebuilt binaries is essentially an implementation detail?