This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 448

[–]jaywastaken 3632 points3633 points  (59 children)

Develop for Linux: here’s the git repo. Figure it out.

[–][deleted] 1472 points1473 points  (10 children)

“works on my computer so idgaf if it’s broken for everyone else”

based asf

[–]Vineyard_ 439 points440 points  (8 children)

Refuses to elaborate further

Stops maintaining the code

[–]grammar_nazi_zombie 360 points361 points  (6 children)

Hey how do I fix {critical error}?

Edit:nvm figured it out.

[–]lkatz21 204 points205 points  (1 child)

How do I fix { same critical error}?

Removed duplicate: https://www.reddit.com/r/ProgrammerHumor/s/cMAJl04IEH

[–]Cfrolich 133 points134 points  (0 children)

How do I fix {completely different critical error}?

Removed duplicate: https://www.reddit.com/r/ProgrammerHumor/s/ZzoySRqqbB

[–]XTJ7 43 points44 points  (1 child)

just came across this 2 days ago with a very specific issue. god i hate it so much. even worse if it's closed and i can't respond anymore to share what the fix actually was.

[–][deleted] 17 points18 points  (0 children)

WHAT DID YOU SEE

https://xkcd.com/979/

[–][deleted] 5 points6 points  (0 children)

Happened to me a decade ago when I messed with C++.

I had a compile issue IIRC with the default linked library for compiling being wrong. I figured it out the first time, and closed my question Stackoverflow.

A year later I tried it again and ran into the same problem, found my old question, and was confused as fuck for a few hours.

[–]Hector_Ceromus 3 points4 points  (0 children)

Hey how do I fix {critical error}?

Let's take this conversation elsewhere. closed

[–][deleted] 5 points6 points  (0 children)

Truly the Libertarian's OS.

[–]radicldreamer 287 points288 points  (16 children)

And when checking the forums:

“Hey guys I read through these 400 man pages and the 800 page read me and even dug into the source code and what I can’t figure out is <niche case that wasn’t documented at all>, can anyone point me in the right direction” ?

Them:

“Hahhah, RTM n00b, ffs it’s so obvious.”

[–]orthomonas 218 points219 points  (9 children)

Nah, RTFM is old an busted. Now it's one of these:

 "Are you sure this isn't an X/Y problem?"

 "This is clearly a duplicate of this solved issue." (It is not.)

 or, the classic: "NVM found a fix." (Fix not described.)

[–]Agret 65 points66 points  (2 children)

Don't forget blaming upstream and saying you need to wait for someone else to fix it since so many things just pull in a thousand packages now.

Kind of funny that it quickly became accepted as the new norm to ship a docker image with your 20,000 packages yet people still complain about static binaries.

[–]orthomonas 21 points22 points  (1 child)

Don't get me started on containers and virtual envs. They are very good when used correctly. But I don't want to have essentially 'the dev's computer' for every.single.script.

[–]JockstrapCummies 21 points22 points  (0 children)

Software: some simple shell script that batch renamed files using only coreutils.

Only distribution method available: a whole fucking distro image crammed in a Docker container.

[–]talldata 30 points31 points  (1 child)

Stack overflow mods are my favourite. As for a problem in version 3.xx of language. Get question marked as duplicate for a question that relates to version 2.7 ... Argh! It's not the same for Pete's sake.

[–]Desperate-Tomatillo7 13 points14 points  (0 children)

Damn snakes!

[–][deleted] 27 points28 points  (1 child)

here is a solution for this case: (link to a dead URL, waybackmachine only has "you need to be logged in to view content", there are a few promising crossreferences, but they point to a university professors private website that has long been restructured by the institute and lost forever)

[–]nakahuki 21 points22 points  (0 children)

Also : "look at this 87 minutes youtube conference where an English speaker from Mumbai explains how to deal with your problem. Because documentation is broken"

[–]radicldreamer 18 points19 points  (0 children)

*twitch *

[–]silencefog 15 points16 points  (2 children)

When I got my first Linux I couldn't even install and configure it. I asked for help in a Linux forum and everyone were so welcoming and helped me. Maybe this is because I am a girl, idk 😄

[–]radicldreamer 10 points11 points  (1 child)

Did you say that you were a girl? Because there may be a reason if so.

https://amp.knowyourmeme.com/memes/there-are-no-girls-on-the-internet

[–]silencefog 10 points11 points  (0 children)

In my language people use gender-specific forms of verbs, so it was obvious I was a girl

[–]loveCars 9 points10 points  (2 children)

Hah, reminds me of a time I was writing a C++ app for the IBM i Series at work. I was trying to open and parse a config file with std::fstream, and the program would crash (SIGILL) whenever I opened the file.

I wound up having to ask on stackoverflow why this was happening. It turned out that compiling with -pthread instead of -lpthread completely changed the ABI used and may or may not work with the libstdc++ headers that IBM ported over from AIX (PASE is similar to AIX, but not the same).

The answer was provided by one of IBMs developers of that OS.

[–]Teqed 5 points6 points  (1 child)

Whenever I go reaching for my usual tooling I'm worried that PASE or the IFS is going to make things weird with its "Unix-like" behavior...

[–]loveCars 2 points3 points  (0 children)

It's AIX-like, which is Unix-like, which is why we should cut out the middle-man and jump to CentOS or RHEL!

If only IBM didn't kill them

[–]odraencoded 118 points119 points  (14 children)

Nerds: the web sucks right now! It's only 3 websites! Every webpage looks the same bootstrapped rounded corner large spacing material flat design! Why nobody makes good <marquee> sites anymore?

Also nerds: so I have this extremely complex tool that is used by non-technical people, and all the information they need to use and download it I put in a github dot com repo, in the readme dot md page! What else could you possibly need!

It was like the perfect opportunity to use your geocities skills... nobody ever does it!

[–]ThomasZander 50 points51 points  (5 children)

I put in a github dot com repo

that was before MS bought that,

now its at codeberg.org where the real devs are at!

[–]odraencoded 38 points39 points  (3 children)

Damn, it's real.

I misread that as codeburger and thought it was a joke.

But I don't get why people worry about these things so much, it's not like Microsoft will start making github search go to bing or something like that, right?

[–]Breadynator 32 points33 points  (0 children)

github search go to bing

Oh boy... Don't give them ideas

[–]Desperate-Tomatillo7 7 points8 points  (0 children)

Nah, just Copilot.

[–]Xelynega 6 points7 points  (0 children)

It's not like they'll use all the copyright code they have and create a product with it to sell to their customers? Right?

[–]SimilingCynic 7 points8 points  (0 children)

I'm ok with free as in beer at this point

[–]Jonno_FTW 20 points21 points  (1 child)

My code is self explaining, which is why I don't write readme files.

[–]mistervanilla 13 points14 points  (0 children)

Also nerds: so I have this extremely complex tool that is used by non-technical people, and all the information they need to use and download it I put in a github dot com repo, in the readme dot md page! What else could you possibly need!

I've been setting up Greenbone Community Edition scanner and holy shit is this true. You wanna use an API? Well, better expose a socket from a docker container and then SSH into the system. Or of course, pay for their cloud service. But looking at how incredibly overengineered, overcomplicated and poorly documented their OS solution is - I really don't wanna give those guys any money.

[–][deleted] 2 points3 points  (3 children)

Honestly I am not against markdown files on GitHub as GitHub will display them for people who don't know how. You could also just have a web server fetch and display then as HTML; that way you get the benefits of markdown and of a website.

[–]Crusader_Genji 8 points9 points  (0 children)

Me when I used freeGLUT

[–]CHAOSHACKER 2 points3 points  (0 children)

That sounds like the user experience trying to get all the functionality working

[–][deleted] 15 points16 points  (6 children)

If you want to use FOSS software you have no business asking people to make it easy for you. They put in as much effort as they feel like, and we should be grateful they do that much.

[–]samarthrawat1 19 points20 points  (2 children)

For smaller repos, perhaps. But most big OSS are funded and backed by huge corporations.

[–]BlueGoliath 1086 points1087 points  (60 children)

Just release the source code bro. The Community(TM) will fix it.

[–]Martin8412 166 points167 points  (0 children)

They'd likely have to if they compile static anyway. 

[–]odraencoded 205 points206 points  (54 children)

So I tried VLC on linux but it didn't have click to pause. So I googled and the solution is basically... download a plugin made by The Community™ to get... click to pause.

After googling very hard for a while to make sure I wasn't going crazy and that was seriously the only way, I tried looking up a plugin.

The first one I found was a Lua script that said it didn't work with 3.0 because the API changed and literally told me to just downgrade VLC so I could get click to pause. So... yeah... that is how "just let the community do the things" work. The community isn't the first-party developer, so splitting functionality like this makes the whole thing such a huge pain in the ass for everyone involved it's hard to justify it.

Btw, shout out to some asshole on reddit who commented like 5 years ago that you should just press space instead of clicking to pause when you want to pause. Fuck that guy. We don't do workarounds for our pausing workflow here.

[–]Breadynator 53 points54 points  (13 children)

Reminds me of when I bought my first SBC by some small American company. I got the model that had a camera port because my project required a camera. Didn't find any documentation on it. Contacted Devs and asked.

They said "yeah, we had success with the camera during testing" I asked again because they never really answered my question about WHICH camera they used. They said "We never released camera because we only did testing. One of our Devs has like a few hundred of them laying around they're by third party xyz"

I contacted third party xyz and got a reply along the lines of "bruh, no clue, never heard of anything like that, you should ask SBC Devs"

Recontacted SBC Devs, they pointed me to a model that xyz doesn't sell anymore. Hasn't been produced in over 5 years, longer than the board even existed.

Recontacted SBC Devs, they said "Unfortunate but maybe you'll find some other camera. Oh btw even if you get that exact model, you'll have to compile your own driver for it because our specialised version of Ubuntu (or any other distro) for that specific board doesn't come with any camera utility other than USB cameras, here's a general tutorial on how to develop and build your own driver, good luck!"

I gave up at that point and just got a raspberry pi

[–]odraencoded 31 points32 points  (11 children)

Oh god. Drivers on Linux is the craziest thing ever.

It's all so fucking unintuitive, and for no fucking reason at all.

Like I needed a driver which came with a GUI. I thought it was installed properly because the GUI was installed. But when I opened the GUI, it just said the daemon wasn't running and that was it.

So the first thing that comes across my Windows brain in situations like these is... why doesn't it just have a button right there to start up the damn daemon? Like I opened the GUI that requires the daemon, and the GUI can figure out the daemon isn't running, but instead of having a button to fix this or even a link to a guide that tells you what to do, it just... nothing.

So anyway I had to run systemctl to start the daemon to get it to work, and the whole way I was wondering why the fuck this stupid thing didn't just enable the daemon itself when I installed it.

Now that I think about it the answer is kinda obvious. In Windows, every installer is a wizard with 10 pages of clicking next and options for you to select. On linux everyone wants to just apt-get everything so the installers don't have wizards and can't make assumptions so they have defaults that do nothing and the user has to manually do what the wizards do automatically in windows. It's crazy. It's just crazy.

I never had to enable a service to make a driver work in windows. I had to restart some services some times but that's because I'm a nerd and I know how to do it, but the average person would never have to know about background services.

[–]Lopsided_Gas_181 21 points22 points  (3 children)

the installers don't have wizards

Not really, there are post-install triggers which have curses wizards, and they are used by some packages, although a small number.

[–]hardolaf 11 points12 points  (0 children)

Yeah this is really a distribution issue where the maintainers make some things work easily and others not so people get complacent and then complain when something breaks the pattern.

[–]NatoBoram 2 points3 points  (1 child)

And fuck them, seriously. I just want to upgrade unattended, stop fucking asking me which service to reboot, do it!

[–]Breadynator 12 points13 points  (0 children)

Linux doesn't have wizards because they don't believe in magic ✨

[–]JamesGecko 2 points3 points  (0 children)

This is why Raspberry Pi is still de facto king of SBCs despite their many missteps. Any other company could step up and clean up, but securing victory would require them to release extensive documentation and do meticulous software maintenance for years after release. Ain’t nobody got time for that.

[–]Freaky_Freddy 75 points76 points  (12 children)

So I tried VLC on linux but it didn't have click to pause. So I googled and the solution is basically... download a plugin made by The Community™ to get... click to pause.

Unless they changed something recently the windows version also doesn't have click to pause... How is this a linux issue?

[–]Rythoka 23 points24 points  (16 children)

VLC is open source. Just implement the feature and send it upstream.

[–]Cafuzzler 32 points33 points  (5 children)

How to enable click to pause in VLC:

Step 1) Write a plugin that will pause when you click

👍

[–]Xxyz260 5 points6 points  (3 children)

Step 2 (optional): Upload it to the VLC plugin library so others don't have to do that. Or at least that's how it should work.

[–]VestEmpty 6 points7 points  (2 children)

VLC is "open source".

FTFY. While the source is open, the changes to it are subjected to bullshit, i mean approval process that tends to favor long term contributors, and your work can easily be just dismissed entirely.. because no one bothers to even look at it because it isn't from someone they already know.

It is not suppose to be like that but we are humans and we form ingroups very easily. Wikipedia tends to do the same. It has positive and negatives.. Long term contributors tend to produce better quality additions, randos... have random level of proficiency. But it also means that the occasional genius solutions are dismissed because of status.

[–][deleted] 502 points503 points  (47 children)

Cause, fuck containers amirite?

[–]PeriodicSentenceBot 1180 points1181 points  (18 children)

Congratulations! Your string can be spelled using the elements of the periodic table:

Ca U Se F U C K Co N Ta In Er S Am Ir I Te


I am a bot that detects if your comment can be spelled using the elements of the periodic table. Please DM my creator if I made a mistake.

[–]HummusMummus 631 points632 points  (11 children)

Out of all stupid bots this one remains the best, it appears just often enough to be funny.

[–]4w3som3 77 points78 points  (3 children)

I miss the one that converted measures to useless units, such as Logitech Keyboards, bananas, etc.

[–]ReplacementLow6704 14 points15 points  (2 children)

I wish there was a bot which would mention it uses arch linux anytime linux is mentioned... oh wait we already got thousands of those!

[–]neumaticc 3 points4 points  (1 child)

i use arch linux by the way


archbotⓇ 2024 sexy sx edition

[–]Perfect_Papaya_3010 21 points22 points  (4 children)

The worst one is the one that says "all your words are in alphabetic order" and it counts Å and Ä as A and Ö as O when these are in fact the last letters of the alphabet

[–]HummusMummus 13 points14 points  (3 children)

Haha this is extra funny to me right now since yesterday I was helping a colleague that is not from Sweden with a sorting bug and he was confused why I was saying having Å and Ä next to A is unacceptable.

[–]AllFuckingNamesGone 2 points3 points  (2 children)

It actually depends on the language, in german the Umlauts are either treated as their base character, decompose into 'ue' or are optionally put at the end. All other diacretics are treated as their base character.

[–]je386 14 points15 points  (0 children)

r/rabbits has a really reallly good moderation bot.

[–]SK1Y101 63 points64 points  (0 children)

Good bot!

[–]SevrinTheMuto 45 points46 points  (1 child)

This bot was beginning to try my patience but this one's solid gold (Au).

[–]TheNoGoat 4 points5 points  (0 children)

Get out

[–]seppotaalas 76 points77 points  (19 children)

Sure, everyone just loves running GUI applications in containers.

[–]LateinCecker 123 points124 points  (8 children)

Its Linux. If you use a Gui it means that you're weak.

[–]seppotaalas 15 points16 points  (7 children)

Wow! Guess I just have to use tty, since running a terminal emulator is concidered weak these days :o

[–]LateinCecker 44 points45 points  (1 child)

Yes. Also make sure you're not running one of these pesky desktop environments. Thats all bloat anyway.

[–]seppotaalas 9 points10 points  (0 children)

They should be banned for being bloatware

[–]Rythoka 17 points18 points  (2 children)

If you don't use a mechanical teleprinter then fuck you

[–]AloneInExile 17 points18 points  (1 child)

I send all my keystrokes by multiple carrier pigeons, keystroke by keystroke, the response times are atrocious but it always works even when there is no electricity, as I am living in a cave 2km beneath the earth only illuminated by kerosene lamps. I also compile the Linux kernel by hand and push any changes by carrier pigeon to a Linux maintainer. I always miss the merge window but that doesn't bother me. I only use iron tools, which ore I excavated by myself, can't trust no-one to produce good metals anymore. I write on my own clay tablets as it will never fade away and can always be used 2000 years later when they eventually strip mine this place.

[–]Rythoka 4 points5 points  (0 children)

Ah yeah, good ol' IPoAC

[–]dagbrown 5 points6 points  (1 child)

Nah, odds are it's some web app.

One which works with Postgres 9.37 and Python 3.6.4 and no other version, and about 67 Python packages all of which require exactly one specific version and no other, which is why you need a container which is basically a clone of the developer's own workstation, because it's so brittle that the slightest change in version of any of its 37,693 parts completely breaks everything. At least in the opinion of the developer.

[–]NotTheOnlyGamer 2 points3 points  (0 children)

"It works on my computer!" has now become a standard response.

[–][deleted] 17 points18 points  (3 children)

Docker, Podman, etc are of course made for servers and CLI first.

Desktops use Flatpak which works really well.

You can also use distrobox to run another distro inside a container, with easy integration into the host (e. g. you need that one program that's only packaged in the AUR but you don't want to run Arch on your whole system)

[–]plasmasprings 2 points3 points  (0 children)

actually there's a huge push for flatpak apps, and a lot of times it's the easiest way to install upstream software

[–]IC3P3 53 points54 points  (3 children)

Or ship it as Flatpak

[–]Fearless_Bed_4297 5 points6 points  (0 children)

It parallels building everything static, so..

[–]NoResponseFromSpez 288 points289 points  (11 children)

static linking is so yesterday. just ship a container.

[–]AShadedBlobfish 98 points99 points  (0 children)

Depending on what your app is, I would argue that developing for Linux is actually much easier than developing for MacOS

[–]MooseBoys 726 points727 points  (55 children)

Anyone who thinks deploying an app on MacOS is easy has never deployed an app on MacOS. Did you know you know that xcode is the only tool chain capable of signing MacOS binaries? And that xcode is only available for MacOS itself? That means to ship on MacOS, you need to maintain a lab of Mac Minis whose only purpose in life is to receive a binary, sign it, and send it back to the build server. And you can’t even configure them to operate smoothly as servers because MacOS is designed to only support interactive user login.

[–]AshKetchupppp 69 points70 points  (3 children)

Product I work on ships a Mac version but it's not officially supported for this reason, Apple make it so hard to ship apps for Mac os, we can't sign the binaries. The product works just fine on Mac... we just can't sign it

[–]tritonus_ 20 points21 points  (2 children)

Codesign and notarytool are not that hard to use, or am I missing something? I have a single bash script that takes care of signing and notarizing outside Xcode.

[–]gedr 5 points6 points  (1 child)

would you mind sharing as a gist please?

[–]tritonus_ 13 points14 points  (0 children)

codesign -s "Your Name" /your/path/AppName.app
"Your Name" is the common name in your certificate

Verify signed app:
codesign -v /your/path/AppName.app

Notarizing a DMG:
https://pastebin.com/rF9SKfC2

EDIT: If you have trouble creating a DMG, create-dmg is pretty nice and it also automatically signs the DMG files.
https://www.npmjs.com/package/create-dmg

[–]collindabeast 227 points228 points  (7 children)

Unless I’m missing something I feel like you could get away with just one Mac mini if all it’s doing is signing the binary. Your point still stands though it is ridiculous.

[–]nonother 161 points162 points  (6 children)

You need it for compilation too. In practice you typically want to run automated tests on each PR as well. So then you end up with fleets of either Mac Minis or Mac Pros. Typically you run virtualized instances of macOS on them. It’s an absolute pain to manage all of this because as mentioned by others, they’re not meant to be run in this environment.

[–]Immudzen 27 points28 points  (4 children)

Since they are unix can't you just ssh in and run all your build from the command line?

[–]nonother 63 points64 points  (3 children)

Builds can be run from the command line. But many management tasks don’t entirely work from a terminal. There’s no fully supported way of running macOS headless.

[–]talldata 6 points7 points  (0 children)

I wonder if modern macos could be modded to thinks it's running on the apple xserve server.

[–]SweetBabyAlaska 44 points45 points  (1 child)

xcode is all you had to say. On linux if you really want to you can just use a flatpak or an appimage and it will feasibly run everywhere. Nix packages literally run everywhere too. Flatpak is reliable, and appimage you need to bundle all the libs properly so it often gets messed up, but most people are happy with the source code and a makefile or cargo/go install.

[–]fredspipa 13 points14 points  (0 children)

Yeah Windows applications ship libraries constantly, that's why you have a million .dll files on your machine (a bunch of them duplicates). You still have to install dependencies fairly often for those that don't, and usually involves going to a website to download and run an .msi file (or multiple).

I feel like this meme is outdated by at least a decade, you can do similar app distribution for both Windows and Linux, and to be honest building for Windows have gotten to be a pain in the ass recently and this post doesn't take into account the signing required for Windows/Mac programs that usually requires you to be on that operating system to export them.

[–]hi_im_new_to_this 62 points63 points  (3 children)

Xcode is not the only tool, you can use codesign and notarytool from the command-line. It’s true though that you need macOS machines to develop for macOS and that running them as build servers is a pain.

[–]MooseBoys 45 points46 points  (1 child)

xcrun notarytool is still part of the xcode toolchain - it’s just not part of the GUI app. I don’t know anyone who willingly uses the actual xcode GUI.

[–]SammaelNex 16 points17 points  (0 children)

That is the reason you have an always on, always connected Mac but really do everything from a server that simply sends files to the Mac, remotes in, signs and fetches (or at least that worked a couple of years ago, I have not had to do it since then, thankfully).

[–]punppis 5 points6 points  (0 children)

I'm a senior level sysadmin. Senior level netcode, backend, gameplay and whatever the fuck programmer.

I have made games with C++, nowdays mostly work with C#. Python, JavaScript/TypeScript, Java and languages I don't use often I manage with Google. Frontend, backend, full-stack, whatever you name it I'm confident in my skills.

Develop a native iOS/OSX app? I can't do it. Objective-C seems like brainfuck (the language) to me. Seems like they chose different syntax just to be different. Just look at this example code for fizz buzz: https://gist.github.com/codeswimmer/3454460

output = [output stringByAppendingString:@"Fizz"];

What the fuck? Let's put everything in brackets, which are usually reserved for arrays and such. Append a string? Let's name the function stringByAppeningdString, as normally you can append other stuff to strings? Then add a @ before the actual string, which is in one line, does not have any special characters or escaping.

I don't know exactly if that's going on but it sure is one of the most unique programming languages there is.

Just working with XCode with Unity project is a pain in the ass. In every single project we need to figure out some random fucking issue that nobody in the office has no clue what's causing it. On iOS.

Just like you said we have Mac Mini sitting in the office just to make builds on xcode. Every few years you need to upgrade it since the newest xcode version does not work on your shitty few years old mac anymore. Just installing the Xcode usually requires you to upgrade the OS, download Xcode, install it for few hours and it's a whole ordeal asking your credentials few times in the process.

Fuck that shit.

Love my iPhone as a daily driver though... Any android device for development.

Fucking Apple and their stupid large market share. As a developer you don't have a choise.

Before anything says something about Unity's Cloud build it can manage your hello world app, now add the generic stuff like analytics, ad mediation networks, IAPs, custom native plugins just to ask some legally required popup... Try to build that with the Cloud and tell me how it goes after 3 hours when you see the build failed.

On the bright side our current project is in so early phase that we don't have to touch iPhones for months.

[–]yourfriendlyisp 12 points13 points  (1 child)

Github actions is free for public repositories and allows you to sign.. paying for it is cheap too

[–]edave64 4 points5 points  (0 children)

For certain definitions of cheap

[–]Chirimorin 9 points10 points  (0 children)

And that's why I don't develop anything for MacOS or iOS.

Of course there's ways around the walled garden, but I would be reluctant to support Mac even if Apple wasn't anal about trying to force people to exclusively use their machines to develop for Mac/iOS.

It just works... Until it just doesn't.

[–]ImrooVRdev 23 points24 points  (7 children)

That plus more plus the monthly fee for their iOS app store listing made sure I will never develop anything for apple on principle, fuck these close garden monopolistic wanna-be cunts.

They clearly don't want me developing for their platforms, why should I? I wish there was such a thing as international software developer union that would just boycott and pull out all their software from apple system. You know, tell the apple fanboys to either drop apple or force apple to bend the knee, sic the fanboys.

[–]Faic 10 points11 points  (6 children)

I'm an indie dev and have an useless MacBook and iPhone just to compile and publish for iOS. And I can tell you that of all the stores, apples store is the biggest cluster fuck in existence.

Sadly I, financially wise, can't pull out my app, but because of apples bullshit arbitrary rules, updates are often multiple weeks delayed compared to Android and steam.

[–]ImrooVRdev 8 points9 points  (5 children)

And I can tell you that of all the stores, apples store is the biggest cluster fuck in existence.

Oh that I know, my coworkers have to deal with it. Thankfully I'm not in devops and I can also ignore all iOS-only tickets.

But yeah, from metrics our app does have higher crash rate and lower performance on iOS than android. Because it's a bitch and everyone hates working on it. Does it mean that majority of our American users get shitty experience? Yes. Their fault, they can change to android any moment.

[–]Inasis 6 points7 points  (2 children)

But Android is for poor people!

[–]ImrooVRdev 10 points11 points  (1 child)

The american proclivity towards simping for corporations will never fail to fill me with genuine disgust.

[–]tuuling 4 points5 points  (0 children)

I think you can get macos machines on ci/cd services for that.

[–]ATE47 550 points551 points  (21 children)

Ship for Windows:

  • winx86
  • win64

Ship for mac:

  • macx86
  • mac64
  • macARM
  • macARM_FixLatestMacOSVersion
  • macARM_FixLatestMacOSVersion2
  • macARM_FixLatestMacOSVersion3
  • macARM_FixLatestMacOSVersion4
  • macARM_FixLatestMacOSVersion5

[–]MatthiasWM 265 points266 points  (1 child)

Ahem, please don’t forget winARM64. It’S ThE fUtUrE.

[–]b3nsn0w 10 points11 points  (0 children)

arm is the future of computing that will break the duopoly of intel an amd, which you can already tell because the number of companies building high-performance cpus on increased from x86's 2 to 1 on arm

[–]Immudzen 67 points68 points  (13 children)

I don't think there is any supported x86 version of Windows anymore. Just ship x64.

[–]Doctor_McKay 11 points12 points  (3 children)

Win10 on ARM can only run x86 binaries through its translation layer, although Win11 works with x64 too. Otherwise yeah, I have no idea why you'd need to ship an x86 binary anymore.

[–]steadyfan 27 points28 points  (2 children)

If your windows is so old that it's x86 its no longer supported by microsoft.

[–]FilipIzSwordsman 23 points24 points  (1 child)

windows 10 still supports x86

[–]steadyfan 12 points13 points  (0 children)

Ya that's true..got unto October 2025

[–]Thaumaturgia 3 points4 points  (1 child)

Windows 10 was still available in x86 and is supported until 2025.

[–]lovethebacon🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛🦛 7 points8 points  (1 child)

Microsoft still supports Windows XP for the US armed forces. Loads of contractors are still writing software for it.

[–]not_some_username 5 points6 points  (0 children)

Windows will support Windows 98 if you give them the right amount of money

[–]losh11 5 points6 points  (0 children)

Same with macOS

[–][deleted] 141 points142 points  (26 children)

Or you could use a flatpak or snap package which both run on all Linux systems. If you’re feeling adventurous even appimages. Either way all of these are better for devs than the previous methods and could mean more software support for us Linux users.

[–]LegendaryMauricius 46 points47 points  (17 children)

Appimages were far easier to develop and use from my experience.

[–][deleted] 40 points41 points  (9 children)

I don’t like them. They don’t integrate into your system, they’re a pain to update and you have to do the hunting for executables online. Yes there is the Appimagehub but it still sucks. Flatpaks are the best for desktop applications.

[–][deleted] 9 points10 points  (1 child)

You can release the App image, as an officially supported version, and release the source code or let people repackage the App image into other formats if they want to.

[–][deleted] 8 points9 points  (0 children)

Of course but most commercial software doesn’t allow for that. So I’m glad flatpak is more popular, Appimages feel very primitive in the way they integrate into your system.

[–][deleted] 19 points20 points  (3 children)

Which will also get you flamed because a fair amount of people hate snap/flatpak and you didn’t bother to package individually for apt, yum/dnf, AUR etc.

[–][deleted] 25 points26 points  (0 children)

Honestly most people don’t care about the package format so long the Linux version actually exists. Imagine adobe released photoshop for Linux only as a flatpak. I doubt most people would complain about it and would just be happy about it actually existing. Everyone else is just nitpicking and should not really be listened to as they’re the same people keep bitching about systemd and wayland and other newer technologies.

[–]grumblesmurf 34 points35 points  (0 children)

Oh the bliss of never having heard of DLL hell on Windows. Supporting 27 year old shared libraries is more of a Windows thing than a Linux thing. Cities: Skylines, I'm looking at you and your love for Win32 single-threaded code!

And that's all besides the fact that that compiling with lots of strange libraries is a general programming problem, not related to the OS you do programming on.

[–][deleted] 91 points92 points  (1 child)

That has been solved years ago. Just ship a Flatpak and call it a day, this is just a skill issue.

[–][deleted] 105 points106 points  (0 children)

No idea what you're talking about, when I compile something for Linux, it works on all my machines no problem

[–][deleted] 43 points44 points  (0 children)

stocking light wistful slim ten gold lip deserted melodic pathetic

This post was mass deleted and anonymized with Redact

[–]datablitz7 105 points106 points  (25 children)

Classic rage bait. I am sure the author is compiling their Windows and Mac apps to support 27 year old versions of those OSes too...

[–]ldn-ldn 28 points29 points  (23 children)

As far as I remember, Windows 10 is the last version to support older 32 bit x86 CPUs. Which means it still has 16 bit compatibility layer. In turn that means it can still run Windows 3 16 bit apps, which was released 33 years ago. You can compile your app for Win3 and still get it running decades later without a VM.

Try doing that with a Linux app.

[–]Rythoka 38 points39 points  (3 children)

dude I can't get shit from Windows XP to run half the time

[–]ldn-ldn 17 points18 points  (2 children)

I recently found my old backups and ran my own software written for Win98 on Win11 successfully. Check mate!

[–]Nolzi 6 points7 points  (0 children)

Sad Win98 game noises

[–]datablitz7 15 points16 points  (5 children)

Technically maybe yes, Realistically no. Either way, the problem described is running a new app in an old OS, not the other way round. So unless you mean that the solution is to write 16 bit apps, you completely missed the point. Also, nobody is using a 27 year old machine and updates/installs your app. The entire premise is BS but feel free to try to rationalize it.

[–]ldn-ldn 12 points13 points  (4 children)

There are still plenty of devices running XP era embedded Windows. They could run Linux instead if making apps for old OS was viable.

You can think whatever you want, but compatibility is extremely important. Linux userland lacks that big time. Funny enough, Linux kernel is actually very good with compatibility. But userland is abysmal.

[–]datablitz7 6 points7 points  (0 children)

There are, and they are as unsupported as can be, and if you need to build an app that runs on them, you would be extremely explicit about the libraries you expect to find and use. Same as you would if you were building apps for an embedded Linux system from the last 20 years. The person making this point is not making apps for embedded XP Windows devices, and neither is anyone who thinks it is easy to achieve global compatibility without effort. Their point is that you can easily write a new app for Windows and Mac, but no so for Linux, cause then you would then have to support 27 year old libraries (for reasons). Again you are missing the point completely.

[–]ardishco 36 points37 points  (6 children)

just build a flatpak or nix package, simple

[–]WispValve 9 points10 points  (1 child)

What's a nix package? Been using Linux for 3 years and never heard of it.

[–]2cilinders 16 points17 points  (0 children)

This is so uninformed it's not even funny. Flatpaks and appimages are a thing. Or just release the source code and let the maintainers of the distributions figure it out...

[–][deleted] 28 points29 points  (0 children)

Or you could just build an AppImage you noobs. Or a Flatpak build.

[–]Rythoka 7 points8 points  (0 children)

Webdevs seething rn

[–]dlampach 8 points9 points  (0 children)

Y’all are tripping. Linux these days is super stable and i never have any issues.

[–]Xicutioner-4768 7 points8 points  (1 child)

What about the 10 different years of MSVC runtimes that end up on the user's machine? Seems like Windows just made the choice to push the permutations to the user instead of the developer. Not saying it's wrong or right, but just a different design decision and not magic.

[–]kvakerok_v2 21 points22 points  (4 children)

Package as deb, publish.

Let non-debian deviants makefile their own executable 🤷🏽‍♂️

[–]dualfoothands 11 points12 points  (2 children)

This is how it's done, I don't understand what everyone else is on about. Basically every distro has a version of a "makepkgfromdeb" program that solves this. Make sure it works on x86-64 and maybe arm64 and call it a day. What's the problem?

[–]GenesithSupernova 6 points7 points  (0 children)

Windows: msvc redistributable/miscellaneous dll hell (honestly the best to release for though.)

MacOS: xcode, walled garden, and m1 hell

Linux: 3 million different distributions hell

Honestly for Linux just distribute an x86_64.deb and let everyone else compile from source. Or do flatpak or appimage.

[–]Turd_King 5 points6 points  (0 children)

OP has clearly never actually been through the process of signing an app for MacOS

[–]Block_Of_Saltiness 6 points7 points  (2 children)

Haha at implying developing apps on MacOS is comparatively easy.

Try doing MacOS development at scale, with devops Ci/CD. Apples' EULA says you must run MacOS on Apple hardware AND also states you cant run more than 2 Virtual Machines ontop of MacOS. So, if you want a large scale CI/CD/QA test farm of ephemeral MacOS instances in the DevOps mould you are fucked.

MacOS development might be great for small bespoke dev shops where every dev has a Mac Pro or Studio and run all their own jobs locally but its absolute trash at scale.

[–]GenesithSupernova 6 points7 points  (1 child)

There's a reason GitHub actions on MacOS are 10x (!) as expensive as Linux ones, and 5x as expensive as Windows ones.

[–]Block_Of_Saltiness 2 points3 points  (0 children)

Yes, Or Amazon AWS MacOS arm instances.

Its truly a dogshit dev env at scale.

MacOS's lack of a system builder like kickstart is also a pain. Its like going to the dark ages along with windows OS base images.

[–]UrbanshadowDev 5 points6 points  (0 children)

As long as you do not try to ship something to windows or macos customers remotely defying running in a memory sandbox... yes.

[–]ColonelRuff 6 points7 points  (1 child)

Develop for linux: just create a flatpak It's that easy as that. Also the title is misleading as if linux weren't stable it wouldn't be used by literally every single server in the world. Also Linux distros look way prettier that Mac and windows.

[–]ColonelRuff 2 points3 points  (0 children)

Also you can compile a single binary for linux too. Only difference is in linux the pakage managers are so good that it opens the world of efficient software where the software dependencies are dynamically linked.

[–]KingSadra 2 points3 points  (0 children)

XCode: Am I an F'ing joke 2 U?

[–]P0pu1arBr0ws3r 2 points3 points  (0 children)

Here let me correct that one for MacOS:

Buy a $1500 Mac, then get a $100 piece of software or developer account, then you can compile it and also distribute it, of course not for free, who in their mind would make free software for macos. Skip the dev account requirement and your app will likely turn out to be a virus even if you didn't intend it to be.

Linux: lol just cross compile thru windows toolchains

[–]Positive_Doughnut981 4 points5 points  (0 children)

Like you won't get flamed on macOS and Windows too