Apple doesn't deserve to have such careful and detail-oriented FOSS developers like Jason, developing for their platform. He is genuinely wasting time in order to work around Apple's developer-unfriendly platform. Not that I should be telling devs where they should spend their time... but I feel like so much effort is being devoted to fix Apple's issues.
> When I'm debugging these issues, I'll often times spend a few hours in IDA Pro (Apple doesn't provide debug symbols, unlike Microsoft, which makes this process even more miserable than it already is), and after identifying the issue I'll often have several ideas for "clever" workarounds. Which of them are acceptable for the App Store? Usually none!
Really, why we need to have very talented people spending their time in dealing with this, instead of contributing actual value on other parts of the project? Apple should be losing devs in favor of other better platforms, not the other way around. With less and worse products at their disposal, Apple users would then be well aware that they are choosing a platform that alienates developers.
Completely agree. Apple has nothing but contempt for its developers, and treats them like indentured servants. "Oh it took 10 years to get your app working right? Well, it doesn't work right anymore after yesterday's patch."
Also you're an open source and free project? If you want donations we're going to need a cut of that. Doesn't matter that you're providing our OS with functionality (for free) that we can't or won't create on our own.
Yes, he says it right in the post. They had a donation link in the about section that Apple forced them to remove because the payments weren't going through the app store payment system where they get a cut.
I guess Windows doesn't break their compatibility almost ever. Linux doesn't break user-space, but of course the libraries you depend on might change in a few decades.
There's a 2004 article about this by Joel Spolsky that can be found here[0]. Obviously it is a "tad" out of date (and I don't work on Windows so I can't comment on the situation right now), but it seems that at some point Windows cared deeply about backwards-compatibility.
I've actually spent about 25 years writing software on Windows, mostly desktop. Stuff breaks all the time and getting it fixed is nigh on impossible even if you happen to be a partner with contract.
What is claimed to be backwards compatibility is only partially true; reality is that bugs and their workarounds will exist forever.
As for Linux and breaking userspace, that's the kernel interface which is stable, not the whole distribution. I really wish people would report that honestly. NT's API is stable too. It doesn't mean Gtk and ComCtl32 doesn't have abhorrent stability problems and bugs in them.
The issue is, on all platforms, the thousands of libraries each containing hundreds of calls and data structures.
Microsoft broke a lot in the past few years when they got rid of their dedicated QA department(s) but they are very keen of fixing backwards compatibility issues. I can still run my desktop application that I compiled in 1998. Try that on a Mac.
Try running 16-bit visual basic, which I was still writing as late as 2000, on a Ryzen and your analogy falls to bits. I remember the entire win16 to win32 porting effort that had to go in. APIs are never stable forever.
Change is the only constant and I've learned to embrace it where possible or suffer later.
It's completely untrue in my experience working with WWW, GNU, and POSIX. Compared to Android, Apple, Facebook, Twitter, eBay, and many other platforms I've developed for, I feel supported and catered to, and if I have a problem or a question, there is an actual human on the other end to guide me, politely and helpfully.
Developing for Windows back in the day, it was about halfway there. I had zero ability to communicate back to the platform owners, but I rarely if ever felt shit on, disrespected or disregarded. In contrast, on Win32, I felt like everything I wanted to do had already been considered ahead of time, thought through, and there was an existing and elegant solution available.
Linux? It's as close to *ix as you can get without time traveling to ancient AT&T sites and beholding original Unix boxen. Good hardware exists, even if it takes more effort to learn how to source it. Penetration shows Linux is about the same minority Desktop OS as macOS is in general (even if statistics among Developers is sometimes lopsided).
Windows? Microsoft hate and distrust aside, they are a company founded for Developers, by Developers and in general the "Developers, Developers, Developers" mantra still resonates through the halls and they try to make life easy as they can for developers. (They publish debugging symbols of the entire OS just about, as a specifically referenced point elsewhere in this thread, which affected the specific complaints of the article. Even all of the "developer unfriendly" complaints about their more recent platforms/SDKs/toolkits have mostly been walked back or are still in the process of evolving.) Just as with Linux systems, plenty of good hardware exists even if it is harder to find. WSL1 and WSL2 provide a bunch of options for how "close to *ix" you want to get. It's hard to beat Windows on penetration, because it is still the majority OS for most of the mainstream world.
Edit: and don't forget that ElementaryOS gets you pretty damned close to the Mac UI experience. I personally prefer GNOME, which seemingly steals inspiration from across the industry, so it's different but also really slick (the use of Super/Winkey as both alt-tab and the launcher is genius).
Hmm...maybe. I know several people who have System76 laptops and none of them would say that they're made well. At best they seem to tolerate poor Clevo-rebrand construction out of a desire to support a libre ecosystem. Complaints like needing to reboot to switch between integrated and discrete graphics, low quality screens, extreme fan noise that then interferes heavily with the microphone, and terribly overpromised battery life are the norm. Has something changed very recently?
I have a Sytem76 Oryx as my personal dev machine and a new macbook pro at work. The System76 was much more trouble to setup initially, but has been better in almost every way since then. The Oryx fan can be kind of loud, but the fan on my new macbook is CRAZY loud when it kicks on.
I like the thicker case as well. The mac just feels too flimsy when I'm banging away on the keyboard.
I don't know about older models, but my Lemur Pro laptop (released last summer) has been pretty awesome so far, and their cousins about battery life were spot on.
Honestly, I was thinking on "better" as in "more developer-friendly", especially regarding the phrase I quoted... i.e. Microsoft Windows.
As for myself, I work on Linux systems, so my preferred platform would be a beefy PC with some Linux distro.
Yes, Apple makes good hardware. Or, at least lets say they worked hard on creating a distinctive perception about their quality on the consumer's minds. On the other hand, for some reason people tend to avoid spending similar amounts of money in the other ecosystems (or that's what I feel in my circles). I mean, try spending the same money that you would pay for the latest iPhone or Macbook, and you will get a fabulously spec'd Android phone or laptop.
Ye olde "Thinkpad + Linux" is unironically one of the best options around. I've owned 3 or 4 Thinkpads, and all of them run Linux like they were designed for it. Considering the security issues and hidden analytics in Big Sur, there are plenty of better platforms around. If you're looking to outright replace MacOS, KDE will mostly do the trick. It's super customizable, and contains all of the MacOS idiosyncratic staples (Global menu, dock bar, you get the point). With that, you get perfect Unix compatibility and software freedom, and you're only losing a few proprietary apps in the migration process.
think pads have pre installed fedora or ubuntu
dells have pre installed ubuntu
system76 was already mentioned with linux preinstalls.
and for those wanting to go a step further into the boot chain (sans chip manufacturer blobs), there is purism https://puri.sm/products/librem-14/
personally, I've been really enjoying the Thinkpad 14s AMD - 8 core / 16 thread / 32gb of ram in under 3lbs, shame about the screen though.
I wish Apple would just integrate Wireguard into macOS itself. macOS has a built-in option for VPNs in the network preferences but it's shit like L2TP over IPSec.
I don't think Apple cares very much about personal VPNs, only corporate ones.
The number of people who gate a mac purchase on the capability to speak WireGuard is tiny.
I now only connect my macs and ios devices to the internet via external VPN router/firewalls on which I have root; I can no longer invest the time to hack macOS sufficiently to permit me to ensure that no unauthorized traffic is leaving it.
This means none of my iPads or iPhones have SIMs in them any longer, as I take this approach even when mobile (gl.inet makes a travel VPN router with an LTE interface that runs OpenWRT).
I would imagine Wireguard usage in corporate networks to increase in the future, so if Apple only cares about corporate VPNs, surely there'd be reason to implement that as well.
My guess would rather be that Apple at some point cared about corporate VPNs but no longer do, and that option is mainly just legacy.
If Wireguard would be certified and you can have a contract with a company to carry the risk of this VPN solution then it will gain traction.
I know that technically it is probably superior and safer, but for regulatory things people might still chose Ipsec
To the point you feel forced to use your Android phone without SIM?
I bought my android phone for less than 150€ and it does what I need (phone calls, navigation). For everything else I use a debian based distro on my laptop (in some rare case, I dual boot windows).
I really have no issues and I spent way way less than any Apple fan ever will to do basically the same thing.
Let's be honest, most people are willing to pay hefty prices for Apple's products just because of the social status they provide.
The displays on iOS devices already ruin the experience for me nowadays. The perceivable smoothness from a 90-120Hz display still surprises me but now I can't really go back to an older display for daily use. Flagship Android devices also have far more hardware features in general (faster charging, more interfacing options, more cutting-edge "gimmicks," etc.). To be honest, I don't mind iOS, but I'm not really sure what iPhone hardware you think is better or even on par at a comparable price point.
This is exactly why I won't use or develop for Apple products for any amount of money.
I can't justify wasting that much time and stress on a platform that clearly is more concerned with meeting the needs of casual users and media professionals rather than developers or those concerned with freedom, security, or privacy.
> can't justify wasting that much time and stress on a platform that clearly is more concerned with meeting the needs of casual users and media professionals rather than developers
It’s because Apple prioritizes users over developers that they have so many users.
Apple has poorly documented APIs and locked down platforms and app stores.
Windows has decades of cruft and the OS itself is basically adware at this point with "recommendations" and shit showing up constantly, un-removable foistware, dark patterns to herd you into MS cloud, and loads of gratuitous telemetry. Windows drivers, driver signing, and installers are all horrors that can reduce one to a gibbering lunatic like the poor souls in Lovecraft's fiction. Networking is horrific too, and NTFS is slow.
Linux has fragmentation, fragmentation, fragmentation. There are at least three package formats, two or three inits (though I think we're converging on systemd in spite of its many warts), and loads of gratuitous distributions and sub-distributions and spins of distributions that have no reason to exist except for some minor holy war over some minutia or license holy wars. Oh and the most popular package formats, dpkg and RPM, are arcane nightmares from the pit of hell.
Every time I get mad at Apple I try working with another platform and realize Apple is not that bad. They all suck.
What about BSD? They tend to be less fragmented than Linux. The only showstopper for me with BSD is the lack of docker, but if you are happy not using docker or using jails instead BSD can be a good experience.
I like it, but the fact is that not many people use it and the ecosystem is small. That makes it hard to convince more people to use it due to difficulty hiring, staffing, getting answers on forums, etc.
My dearest Jason, please just stop wasting time on the closed crApple platforms with all the censorship these days. Your talents can be put to better use. If crApple users want to use wireguard, they can switch to linux or windows. In fact, this will benefit all of us.
> When I'm debugging these issues, I'll often times spend a few hours in IDA Pro (Apple doesn't provide debug symbols, unlike Microsoft, which makes this process even more miserable than it already is), and after identifying the issue I'll often have several ideas for "clever" workarounds. Which of them are acceptable for the App Store? Usually none!
Really, why we need to have very talented people spending their time in dealing with this, instead of contributing actual value on other parts of the project? Apple should be losing devs in favor of other better platforms, not the other way around. With less and worse products at their disposal, Apple users would then be well aware that they are choosing a platform that alienates developers.