Hacker News new | ask | show | jobs
by eigenspace 404 days ago
It's honestly nuts that so many developers continue to try to make software on MacOS. I understand the appeal of their current hardware, and I used to even be a big fan of the user experience, but it really seems like attempting to build software in MacOS is like trying to build a house on a sandbar.

Apple has done nothing and continues to do nothing to engender any confidence in their platform as a development target.

4 comments

> Apple has done nothing and continues to do nothing to engender any confidence in their platform as a development target.

You're missing the forest for the trees. Apple is very difficult to work with indeed, but they have a shit-ton of paying users. Still to this day, iOS is a better revenue maker than Android. Same for macOS compared to Windows. You want to make a living? Release on macOS. People there pay for software.

> Same for macOS compared to Windows.

This hasn't ever been my experience. Maybe if you're in a really specific market niche where most of the userbase is on Mac. Only 5% of users on Windows paying for the software still absolutely dwarfs 100% of Mac users paying for it. We have more sales on Linux than we do Mac.

I deploy to iOS, iPadOS, macOS and Mac accounts for around 25% of downloads
> We have more sales on Linux than we do Mac

That's interesting, what's your product? There are a few pieces of software on Macs that I would love to pay for on Linux but the option isn't there.

I don't believe this. For iOS, sure. But for MacOS? The number of people that uses Windows dwarfs MacOS.
Dwarfs MacOS, sure; but the user base has been conditioned, like Android, to never purchase anything. Why would they purchase anything, when most of their time is spent in the web browser and maybe a few Adobe apps?

iOS is 27% of the mobile market; but total revenue through the App Store in 2024 was $103 billion. For Google Play, it was $46 billion. Double the sales, from a market 1/3rd the size. Whether we like it or not, the whole open platform of Windows being a breeding ground for viruses and piracy, and the ongoing cultural expectations that set, caused a direct effect on people's willingness to buy Windows software from unknown publishers without a third party (Steam, Microsoft Store) vetting them.

I expect it's highly situational. Don't expect to sell many games on Mac. However, I do find it interesting that services like SetApp exist on Mac, but nobody has tried anything with that level of quality on Windows. SetApp also hasn't shown any interest in expanding to Windows.

Paying users is the key.

I’d imagine that people have failed to attract users who pay on Linux or windows and developers know that people use their software via piracy.

It is still better engineered that dealing with the distribution of the day, reinventing the way to do sound, graphics stack, UI, ......

Once upon a time I thought either GNOME or KDE would win, and we could all enjoy the one Linux distribution, I was proven wrong.

Then again, I have been back on Windows as main OS since Windows 7.

I don't know why you are downvoted here.

The engineering standards, and churn within the Linux desktop, are hilariously bad.

Nobody who uses it has a right to complain about how node_modules has a thousand dependencies and makes your JavaScript app brittle. Their superior Linux desktop won't even be capable of running the same software build outside of a Flatpak without crashes in three years.

As for lack of documentation, good luck pulling together all the pieces you need to write a fully native Linux application without using Qt, GTK, or a cross-platform solution. Maybe you have your own UI stack that needs porting. A simple request, fairly accomplishable on Mac. The lack of documentation on Linux outside of that privileged route will make Apple's documentation look like a gold standard. Heck, even if you stay on the privileged route, you're still probably in for a bad time.

Desktop Linux is so good today that I have not turned on my Mac in 4 years. Sorry your experience has been so bad, but for ease of programming it is a black-and-white decision. Even Windows is a less excruciating Linux development environment, modern MacOS is a veritable dumpsterfire.
Unless one does 3D development, or real time audio processing.

My Asus Linux netbook, bought with Linux support, never had the same OpenGL support level as on the Windows drivers.

And in what concerns hardware video decoding, it only worked during Flash glory days, never managed to get it working with VAAPI.

Speaking of development workflows, has Apple finally implemented a scan-resistant LRU cache within their VFS layer? Last I checked performance would fall off a cliff once you started scanning more files than can fit in the cache.
> good luck pulling together all the pieces you need to write a fully native Linux application without using Qt, GTK, or a cross-platform solution

Isn't those the native stacks? Unless you're going for system programming. The nice thing about GTK and Qt is that you have access to the source code when you're trying to find the behavior of a component (if the docs is lacking). No such luck with AppKit.

>Once upon a time I thought either GNOME or KDE would win, and we could all enjoy the one Linux distribution, I was proven wrong.

Linux users don't want one to win. As soon as one gained any traction, the users would switch just for the sake of it. It's also crazy how neither ever actually improves because they are so focused on copying whatever windows and mac are doing instead of continuously improving. The linux desktop experience isn't any better now than it was 20 years ago.

> The linux desktop experience isn't any better now than it was 20 years ago.

You can't say that with a straight face. 20 or so years ago you would barely have hardware support for anything you wanted to use, or have to go trough a battery of guides just to get 50% of your computer working. Nowadays you just boot a live environment and likely 99% of your computer works out of the box, even tough your OEM gave ZERO shits about linux support.

Wi-fi was between impossible or pray it works and use a bunch of disparate of cli commands to properly join a network. Nowadays I see linux being casually used on random machines without a single problem regarding Wi-fi, and the GUIs for managing it are as cromulent as what you get on other OSes.

X kept being patched to make it do modern things it was never meant to do, thus creating a huge technical debt that is finally being payed off with proper wayland implementations.

Linux audio went from a complete turd to best in class with the "merging" (more of a complete rewrite but with full backward compatibility backed in) of pulseaudio and jack into pipewire.

It's now easy to acquire random linux desktop apps, and they keep working between upgrades! What a concept! Developers are actually finally having a decent time developing apps for desktop linux. Maybe it's no WIN32 but hey, you can run those too with WINE and PROTON trough Steam, Lutris, Bottles and so on :)

I could keep going... Honestly, just give it a try if you haven't in a while.

Thing is many of us actually do, as it happens we have to reach out to GNU/Linux deployments on a daily bases.

So audio is the best in class, how many industry DAWs support Linux, and are used at any random audio studio? Not that many.

The netboook I had until 2024, never handled our router without issues, rebooting the wlan daemon was a common activity during "heavy" downloads, like e.g. a new Rust version.

What works without issues on my place are Android/Linux, WebOS/Linux, and Sony/Linux (BlueRay).

Proton is Valve's failure to nurture developers to target GNU/Linux, even though Android/NDK has the same technology stack for game development, and Sony's OrbitOS is close enough with its FreeBSD roots, even with its proprietary 3D API.

>You can't say that with a straight face. 20 or so years ago you would barely have hardware support for anything you wanted to use, or have to go trough a battery of guides just to get 50% of your computer working.

Sure on weird hardware, but it you had something that was decently supported like a thinkpad, everything mostly just worked, same as now. A lot of your "linux improved..." stuff doesn't matter to end users for the most part. It's nice that they're growing the tent, but it doesn't change the fact that actual desktop experience hasn't improved much, despite it having been "year of the linux desktop" for the last 20ish years.

Have you programmed using the Windows APIs?

For example there are over a dozen ways to define a string and you constantly are having to convert between them depending on the API you are using.

https://www.reddit.com/r/cpp_questions/comments/10pvfia/look...

The problem is that this could be easily applied to many things. To paraphrase:

It’s honestly nuts that so many developers continue to try to make software using a bloated JavaScript framework and thousands of Node dependencies.

That might also be true but that misses the point - programming is not engineering; nothing is done to an engineer’s preferred standard; and probably never will.

It’s like being a CNC Technician and complaining about how 90% of stuff on store shelves is plastic. A metal gallon of milk would be so much more durable! Less milk would be spilled from puncturing! Production costs, and how they go downstream, are being ignored.

(Edit for the downvotes, dispute me if you care enough, but literally nobody other than computer programmers ogles your clean code. Just like how nobody other than CNC mechanics are going to ogle the milk carton made on a lathe.)

Software engineering is not programming and is not about clean code. Using electron is building a skyscraper when you want to rest or a suspended bridge for crossing a small river. Even if you can order almost everything and you're just assembling, it is a wasteful and lazy solution.
It's very easy to understand. More platforms makes more money - your tinkertoy MacOS native frameworks aren't worth shit for nothing when Windows users will account for 90% of their customers.

Wasteful? Wasteful is whichever solution takes the most money while giving the least in return. From the perspective of any rational business, not using Electron is an opportunity cost. Any Mac user knows the truth well, the web has been a more reliable runtime than native since Mojave.

> Any Mac user knows the truth well, the web has been a more reliable runtime than native since Mojave

And we've got Sketch, Things 3, Bear, Omnigaffle and the whole Omnigroup suite, cleanshot, Alfred,... I'm not trying to defend Apple's ecosystem, but if opensource can deliver Libreoffice, calibre, VLC,... on all platforms, there's little defense for others to burden users with Electron.