4 ms·
Trying to ship software for OSX *in general* drives me crazy, and this seems like more. This quote: "I’ve been unable to find any information provided by Apple
by xrd 5y ago
Trying to ship software for OSX *in general* drives me crazy, and this seems like more.
This quote: "I’ve been unable to find any information provided by Apple (or anyone else) which explains what’s going on, what the errors mean, or how to address them."
That's my experience constantly.
My development build had weird behavior when I explicitly launch it? Oops, Apple launched a cached version of the app inside a private temp directory (thanks Gatekeeper!) associated with the protocol handler.
But no way to tell until I casually check the process working directory. No documentation indicating how to troubleshoot this.
Countless issues like this.
Whenever I develop for JavaScript, if I find a module that just has weird undefined and undocumented behavior, I get rid of it no matter how powerful. I wish I could do that with the Mac developer ecosystem. It's closed and Apple will say that gives them a premier experience but it's the little snags that cost me 90% of my time and are impossible to troubleshoot other than grunting through it.
- gjsman-1000 5y agoCould the same not be said for Windows developers, or Linux developers? Or, heck, almost any developer?
- deleted 5y ago[deleted]
- wila 5y agoNope. Have been a developer for windows applications for 20 and some years. Software I build back then still runs fine. Have been a developer for macOS since 2013, since around 2019 I need to bring out patches for changes in the core OS multiple times per year. macOS is not a pleasant OS for a developer. Documentation is pretty shitty and the rugs that get pulled from under you all the time are frustrating.
- xrd 5y agoGlad to know it isn't just me. Same general developer history, same experience. Windows has its quirks and bad decisions they made over the years but the developer experience is consistent, even when bad. Apple's experience is like being in an Arabian desert: sometimes you see a mysterious oasis that wasn't there before, but mostly it is shifting dunes that cost days or months.
- mst 5y agoThere was an article talking about how we train ourselves to our tools to not do the things that cause problems. This works a lot better when the set of "things that cause problems" stays relatively constant.
- ethbr0 5y agoI think this is one of the reason Microsoft leadership was historically so rabid about reminding their employees that developer experience was core (because it's the indirect upstream of user experience). Third party developers are an example of "out of sight, out of mind." It's easy to forget how a feature impacts them. And it's easy to say "We still have apps coming into the platform." But what you don't see is the frustration, resentment, or apps that were never written because developers found something better to do with their time. Mac and iOS development isn't there yet, but it sure feels like they aren't trying very hard to steer the ship in any other direction.
- rapind 5y agoAt least you aren’t paying for this sub par environment… oh wait.
- wila 5y agoActually, I'm fine with that part :) For Windows you nowadays need EV code sign certificates in order to be able to distribute without any troubles and -while you don't pay that directly to Microsoft- these certs are significantly more expensive than the "macOS developer tax". Yes, you can also distribute to the Windows App store, which is cheaper (a one time tax). But I'm not really a fan of "App Store's" be it from Apple/Google or Microsoft.
- zh3 5y agoOh and if you have an older Mac Mini, you need to upgrade the OS to run a newer Safari? (that's the first platform I've ever seen that needed an OS update to install the OS's own browser). So the kids are now using Brave.
- djxfade 5y ago> that's the first platform I've ever seen that needed an OS update to install the OS's own browser Used to be the case for Windows as well with Internet Explorer.
- gjsman-1000 5y agoAnd Microsoft Edge right after that for a few years.
- wila 5y agoYou can install Microsoft Edge right now still on Windows 2008 R2 as well as on Windows 7. [1] They even support this for WebView2, the embedded version of MS Edge that you can use in your applications. [2] Both of those operating systems have been retired for a while. Microsoft has its flaws as well, but at least in this part they are doing quite well. I just happen to be working on a WebView2 ActiveX control and this is one of those areas that really did surprise me. [1] https://docs.microsoft.com/en-us/deployedge/microsoft-edge-supported-operating-systems https://docs.microsoft.com/en-us/deployedge/microsoft-edge-s... [2] https://docs.microsoft.com/en-us/microsoft-edge/webview2/#supported-platforms https://docs.microsoft.com/en-us/microsoft-edge/webview2/#su...
- zh3 5y agoMy mistake then, I guess I never hit that despite using Windows way more than IOS (Windows has a lot better at backward compatibility, at least in my experience). Personal experience with trying to switch to Mac has been...well, both expensive and unpleasant. Single data point, but new hardware that fails every 4 minutes after power on and the fix being an upsell has really put me off.
- tonyedgecombe 5y agoWindows is much better documented and mostly stable. The main downside from a developer perspective is framework churn.
- ethbr0 5y ago> framework churn Aka "never trust Microsoft's pronouncements and stick with legacy frameworks forever, because it's the least risky option."
- Shorel 5y agoWindows? No fscking way. Backwards compatibility is Windows strength. Linux? Sometimes. Trying to run DXX-Rebirth in a modern Linux is an exercise in frustration. The Windows version still runs flawlessly in Windows 10.
- badsectoracula 5y agoDXX-Rebirth is under active development[0], it shouldn't have backwards compatibility issues on Linux. Are you trying some older version? Personally a few years ago i tried some older game demos from early 2000s from publishers like LinuxGamePublishing and TuxGames and they pretty much all worked fine after some tinkering (usually removing bundled libraries like SDL so that the binary will use the system provided libs that are more up to date and/or installing OSS support for audio). A few required some missing libraries but those were available either on the repository (Debian) or from older distros (i grabbed some RPMs and extracted the .so files manually). Two games i couldn't get run because they relied on Gtk1 though - it shouldn't be impossible to run, but lost interest (Slackware contains Gtk1 so i could have copied it from there). [0] https://github.com/dxx-rebirth/dxx-rebirth/ https://github.com/dxx-rebirth/dxx-rebirth/
- kennywinker 5y ago> Whenever I develop for JavaScript, if I find a module that just has weird undefined and undocumented behavior, I get rid of it no matter how powerful. `rm -rf Chrome.app` The equivalent between native development and web is not the quirks of a library, it's the quirks of browsers. That's the metal you're running on.
- oblio 5y ago> I wish I could do that with the Mac developer ecosystem. It's closed and Apple will say that gives them a premier experience but it's the little snags that cost me 90% of my time and are impossible to troubleshoot other than grunting through it. Might be worth reading the entire post and commenting on it in its entirety, not cherry picking.
- kennywinker 5y agoI'm not sure what you mean by cherry-picking, I'm directly addressing their comment. The kinds of struggles `xrd` mentions (Gatekeeper, protocol handlers) are not library level dependencies, they are the platform their code is running on. Comparing that to a js library is just the wrong equivalence. If their beef was with AppKit, or NSWindow or something at the dependency level then yeah it's fair to compare that to an npm package. The bulk of my experience has been with native development, so I find these struggles familiar and un-threatening. However, when I do browser-based development and I'm faced with one of those massive "Browser compatibility" tables on Mozilla.org explaining how this "standard" is implemented in wildly different ways across the major browsers, and then the reality turns out to be different from what the table suggested, I get as frustrated as `xrd` is.
- mschuster91 5y ago> The equivalent between native development and web is not the quirks of a library, it's the quirks of browsers. That's the metal you're running on. Unfortunately, the one browser causing the most miserability for web developers these days is Safari itself, not Chrome as you implied. It is the only web browser engine that's allowed to be used on iOS devices, and many people use it on Macs since it is able to use all the undocumented quirks and nooks in OS X to smash Chrome/FF in battery usage. The problem is that it has so much stuff that's outright broken (IndexedDB), is outdated (its developer tools) or just plain sucks (it won't play <video> elements if the server doesn't serve Range HTTP headers, for example - painful if you're streaming from inside a CMS). And that's been the case for years. Safari is the new IE. Apple should be forced, just like Microsoft, to de-bundle it from the OS and open up and document their private APIs to allow Chrome and Firefox to be competitive!
- dabinat 5y agoThe Apple security feature I hate the most is notarization. I get the point of it, but Apple’s execution of it is poor. Sometimes it takes 10+ mins to notarize an app and the service regularly returns random failures. My software has a feature where you can package certain files into a basic no-frills installer. This is a minor feature that pre-dates notarization in a much bigger suite of tools and it causes a lot of issues because users contact tech support every time Apple’s notarization service goes down (which is often). At this point I’m considering just removing the whole feature from the suite.
- gjsman-1000 5y agoApple did a talk recently about how notarization will be easier with MacOS 12. Might help.
- judge2020 5y ago> users contact tech support every time Apple’s notarization service goes down (which is often). Isn't notarization stapling supposed to prevent this? Or does it do a OSCP/"is this signature still good" check on every launch?
- NegativeLatency 5y agoSounds like OPs app is calling the notarization APIs directly to notarize user created installers
- dabinat 5y agoYes, it notarizes using the end-user’s Apple ID.
- tootie 5y agoSame for iOS. It's just 10x harder than Linux or android for no good reason.