11 ms·
As someone who has (re-)implemented and shipped quite a few native applications across ecosystems (Apple, Android, Windows, Linux) all I can say about this is:
by chmod775 6y ago
As someone who has (re-)implemented and shipped quite a few native applications across ecosystems (Apple, Android, Windows, Linux) all I can say about this is:
Xcode development, the Apple Developer Program, and the whole experience of trying to ship your application on the Apple ecosystem is the fucking plague.
I will do it if I'm paid for it - I generally charge twice my hourly rate for anything Apple - but I certainly won't go through the trouble of trying to get any of my hobbyist projects into Apple's walled garden. I like to do enjoyable things in my free time, and the timesink that is Apple's proprietary clusterfuck is anything but fun.
Apple's desktop market share being what it is, I cannot comprehend how they're generally getting away with this.
- coldtea 6y ago>Xcode development, the Apple Developer Program, and the whole experience of trying to ship your application on the Apple ecosystem is the fucking plague. That's because you're a developer that works in different platforms ("Apple, Android, Windows, Linux"). So you probably spend most of the time working in some other platform, and doing macOS work for you is just an annoyance, having to context switch to another process, etc. Apple tho wants macOS developers (and users prefer apps from people dedicated to macOS). That's because such vendors (e.g. Panic, BareBones, Omni, and so on) won't do lowest common denominator apps, they keep up with the platform, they understand it, they hook in to new platform-only capabilities, etc.). >Apple's desktop market share being what it is, I cannot comprehend how they're generally getting away with this. Apple's market share is what it is, in part because they enforce things like this. This means they can add new OS/hardware features and devs will add support for them fast (instead on relying to 1000s of half-ported apps, with shared functionality on Windows and Mac, and horrible cross-platformy UIs). That's also why (forcing more people to use XCode, and thus the official APIs, BitCode, and so on), they can introduce a whole new architecture like AS, and have macOS apps support it from day one, or old x86 apps running smoothly translated.
- smoldesu 6y agoApple cannot justify their transgressions against the modern development workforce as "a matter of platforms". The future cannot be segregated by platforms - that's part of the goal of a private and secure web. We need to work together to create secure infrastructure that everyone can trust, not huddle away and say that "Apple isn't looking for people like you". I understand that you're probably pretty impartial on the topic, but even you can acknowledge that their treatment of developers is unhealthy.
- ylyn 6y agoYou mean GP is partial, right?
- coldtea 6y ago>Apple cannot justify their transgressions against the modern development workforce as "a matter of platforms". Sure they can, and I for one, am fine with their justification. I don't want everything to be "secure web apps", I want to have native apps, and I want to have a choice of different platforms (Windows, macOS, Linux, etc.) each doing its own thing their way. I don't want to use Linux as my desktop because I don't like their choices, the same way I don't want to use Windows or macOS as my server, because I don't like their choices. >The future cannot be segregated by platforms That's a monoculture dystopia then, not a future where many competing ideas about what platforms can be, what OSes offer, what their core tenets are, etc. flourish.
- JohnBooty 6y agoThat's also why (forcing more people to use XCode and thus the official APIs, BitCode, and so on), they can introduce a whole new architecture like AS and have macOS apps support it from day one, or old x86 apps running smoothly translated. It's a failure of HN culture that posts like this get downvoted. You can like it, loathe it, or feel somewhere in the middle. However, this is factually true, and it is a relevant and legitimate response to issues raised by the parent poster.
- rfoo 6y ago... Or maybe it is not factually true? You can't beat Hyrum's law by simply "forcing more people to use official API", with enough code people still depends on every implementation details in your code.
- sjwright 6y agoGiven that Apple has explicitly stated this benefit and given that Apple has explicitly utilised these exact benefits in the real world on multiple occasions, it's rather bold to propose that it might not be factually true. Obviously it's not the only reason that Apple does things the way they do. It's probably not even the number one reason. But it's certainly one significant reason which seems to fit the objective criteria of being factually true. (To be clear, I am stating no personal opinion about whether Apple's approach is "good" by any criteria.)
- coldtea 6y ago>You can't beat Hyrum's law by simply "forcing more people to use official API", with enough code people still depends on every implementation details in your code. That's neither here, nor there though. You can still beat the biggest part of fragmentation by "forcing more people to use official API". Doesn't have to be perfect, just good enough to make moving forward, porting to your new architectures and APIs, etc, easier. In fact, Apple just showcased it works with the move to M1 (and to a lesser degree earlier with the move to x64 and the move to 64bits).
- apple_innocent 6y ago
- danShumway 6y agoOkay, but then you're going to have to be content with the fact that extension developers are largely going to just ignore Safari. There's a little bit of mutual blindness that happens here both with anti-Apple commenters and pro-Apple commenters. It's absolutely true that Apple's tight integration and control over how developers work allows them to do things with their platform that no one else can do. It is also true that Apple is playing a very dangerous game with the MacOS ecosystem, and a lot of developers are looking at it and saying, "this is not a healthy relationship, there's zero reason for me to ever support this platform." To a certain extent, Mac users don't care -- many of them are happy to be part of a diverging software ecosystem and to use apps that only work on their computers. Apple critics sometimes underestimate just how OK Mac users are with the idea of living in an isolated software world. To many Mac users, being in their own isolated, incompatible world of software is the point. But, it is also true that browsers like Safari are tangibly suffering for this, that Open Source developers and tool authors are starting to look at Mac as a losing battle, and that ultimately, if things continue in the same direction, this is going to mean that there is a lot more pivotal indie software/games/tools that decide not to support Mac -- and some of those will be programs that people on Mac actually want. As an Apple critic or at least an Apple skeptic (even though I do some development on Mac hardware), I am curious what the future of Mac as a development platform is going to be. There was a period where I recommended Macs as a next-best alternative to Linux because of that Unix base. Now it is a very cautious recommendation, if it is a recommendation at all. I've run into more than a few really weird dev problems on Mac over the past year that have been kind of disruptive, and I haven't even updated to Big Sur yet -- which, from what I can tell introduces even more problems. In contrast, developing software (especially web-based software) on my Linux machines is pretty painless. And when I need to test in Windows, I can spin up free, official VMs. I don't have to have a special secondary computer to run tests on. So unless I'm building software specifically for Mac, it just kind of doesn't make sense to support anymore. And frankly, if you're a solo developer who's into Open Source development or tools development or game development, you're very probably not going to be building software specifically for Mac, and you're probably willing to drop Mac if it means you can easily target Linux/Windows -- given the choice between MacOS and Windows, most devs are not going to choose to drop Windows. I mean, we can debate OpenGL and Vulkan, but I'm sure as heck not going to write a game that targets Metal, that would just be a colossal waste of time for realistically a rounding error in market share. This is something that Mac users are currently able to just shrug off (in no small part because of 'lazy' cross-platform apps/games that use Electron, QT, and Unity), but it might be a harder problem to ignore in the future.
- ivanhoe 6y ago> That's because such vendors (e.g. Panic, BareBones, Omni, and so on) won't do lowest common denominator apps, they keep up with the platform, they understand it, they hook in to new platform-only capabilities, etc.). What about thousands of small devs/companies who are not Panic or others having contacts inside Apple and a privileged position? Here on HN there's at least one horror story a month about issues someone had with Apple, from ever changing terms, to review process that takes for ever - while still doesn't manage to catch many real offenders (especially in terms of privacy issues), but slows down legit devs trying to quickly fix bugs and close the security holes in their apps. It has become a layer over a layer of bureaucracy which more and more seems to be it's own purpose. Honestly there are much easier ways to make money as a programmer.
- onion2k 6y agoHere on HN there's at least one horror story a month about issues someone had with Apple, from ever changing terms, to review process that takes for ever.. Looking at that pragmatically, if Apple are managing to keep "media worthy" problems down to about 12 cases a year they're doing an amazing job.
- coldtea 6y ago>Here on HN there's at least one horror story a month about issues someone had with Apple With 2 million programmers, a marketplace of 100billion, and millions of apps, "one horror story a month" (i.e. "somebody was annoyed on the internet and posted about it") sounds like a huge success story. And many of these are non-stories, or stories of the kind "Me, one of 1.5000.000 programmers on iOS/macOS stores, had an app rejected for some reason". We never hear the Linux horror stories of commercial developers trying to sell native apps. If we did it would be more like: "I tried to make a living with a native desktop app - FOSS or proprietary - for Linux, but nobody seems to care and fewer would pay, plus between GNOME, KDE, XFCE, and 10 popular distros, the landscape is a fragmented mess. Oh, god I wish there was an App Store for all, and $100/year to give me access to customers who will actually pay and a way out of this mess". >while still doesn't manage to catch many real offenders Why would one expect it to? No system is perfect, it's enough that it catches most offenders, or more offenders than alternative systems. E.g: https://www.pandasecurity.com/en/mediacenter/mobile-security/android-more-infected-than-ios/#:~:text=Android%2Dpowered%20connected%20devices%20are,Nokia's%20latest%20threat%20intelligence%20report https://www.pandasecurity.com/en/mediacenter/mobile-security....
- Klonoar 6y agoThis. So many Apple complaints boil down to "it's not Windows or Linux". If you learn the platform, little about Xcode/the dev program/etc is surprising. Perhaps slightly annoying in an extra step or two, but nothing too unmanageable. IMO, the bigger problem with developing for Apple's side of things is documentation - particularly, for things that need to exist outside of Apple's "blessed" path. If you're just in Xcode, things will mostly work - if you're outside of it, it can be confusing at first, for sure.
- asiachick 6y agoI'm pretty confident the top apps for Mac include Photoshop, Illustrator, Premier, After Effects, Microsoft Word, and other cross platform apps. Mac users are just fine with cross platform apps.
- kitsunesoba 6y agoAs true as this is, when it comes to Adobe products there's also no shortage of griping about things like UIs getting progressively more glitchy and less responsive and bad or nonexistent hardware acceleration… gripes that largely didn't exist 15 years ago when those same Adobe products were more closely tuned for the platforms they ran on instead of going all-in on one-size-fits-all.
- asiachick 6y agoThose gripes are universal cross platform gripes. Nothing to do with them being Mac specific. 15 years ago was CS2, already a cross platform app
- coldtea 6y agoThose are top-tier professional staples. Mac users can't chose another Photoshop, because there's no other at that level (Affinity and co are great, but nowhere as comprehensive). But even so, Photoshop, Premier and co, has ties to native functionality, gets the native look and feel for things like file dialogs and such, is quick to move to Apple Silicon / M1 natively (and even has a native iPad version, complete with native UI) and so on. It's not some lowest-common-denominator cross platform affair, like most cross platform lesser GUI apps are. Also, Word and co. Microsoft apps are not cross-platform. They are special codebases for macOS, complete with macOS native UI and everything.
- kristofferR 6y agoTrue, but at the same time the Adobe apps certainly doesn't feel as "native" as they could have. Affinity feels much better for example.
- ramraj07 6y agoWhile you might be true in that Apple tries to cater to a different band of Devs dedicated to their eco system, let's also not kid ourselves that they have had their experience at heart when making decisions about their platform. Are you telling me that dedicated apple devs have the greatest dev enviroment and experience there is? Or are you merely saying that they have a less shittier experience because they decided to drink the coolaid and get into a one sided relationship with Apple?
- Veen 6y ago> Are you telling me that dedicated apple devs have the greatest dev enviroment and experience there is? The have some approximation of the best environment given Apple's priorities, where customer experience, security and privacy, and the bottom line are considered significantly more important the developer experience.
- saagarjha 6y agoI’ve used Xcode for many thousands of hours at this point and I have to say I actually think it’s pretty good now that I understand how it is supposed to work. But for a web developer who just shipped some JavaScript for Firefox and Chrome…just no, this is stupid however you look at it. The fact that you have to download a dozen gigabytes just to get access to what’s a glorified shell script, then packaging some web code in an app bundle for no reason and mandating that it is signed and distributed on the Mac App Store is just dumb. It’s an awful experience from Apple all around if they are trying to get people to port their extensions to Safari.
- asddubs 6y agoOr even just test things in safari. Guess I have to spend at least 200$ on an ipod touch if i want to test in some sort of version of safari, significantly more if i want to test on a non iDevice (with an actual console etc) Obviously for a business this is a neglegible cost but for someone just making a hobby app, it's ridiculous. microsoft at least offers VMs with edge and ie on it
- coldtea 6y ago>Obviously for a business this is a neglegible cost but for someone just making a hobby app, it's ridiculous. Sorry, why do you want to make a hobby app for a platform you don't own?
- asddubs 6y agoBecause you want it to be cross-platform? Just because it's a hobby project doesn't mean you don't give a shit about the user experience. I mean it's not like you have to recreate it from the ground up to make your webapp work in safari, it'll mostly be small tweaks.
- tempodox 6y agoFor scratching one's own itch? A hobby app can still be a useful tool, even if nobody else is using it.
- 6y ago
- AaronFriel 6y agoWhat does any of that have to do with supporting the WebExtension open specification? It sounds like, to me, I can't ship a WebExtension for Safari because I don't own a Mac. Is that right? Does that sound right to you?
- simplecto 6y agoYes it does sound right. Do you ship untested software?
- franga2000 6y agoYou mean like web devs ship websites only tasted in latest Google Chrome? How Microsoft ships Windows tested only on a handful of hardware configs? How game devs ship games only tested on the latest graphics card? The whole point of having standards, conventions and stable interfaces is that developers do not have to test their code on every "platform" (in this case browser). If there are platform-specific differences from the standards, that is the platform developer's problem. And keep in mind we're mostly talking about individuals here - companies rarely develop extensions and those that do can probably afford an old mac to use as a complie box. Extensions are usually developed by individuals in their spare time and rely on beta testers anyways, as it is already impractical for one dev to test them on every possible config.
- coldtea 6y ago>The whole point of having standards, conventions and stable interfaces is that developers do not have to test their code on every "platform" (in this case browser). Well, we don't have standards for native apps, only partial standards for different APIs and protocols, so there's that. And the change Apple made, to allow for Chrome-like extensions, is already more "standard" than before (where it was Safari-only extension APIs). It just requires one more step.
- franga2000 6y agoThat is my whole point though: the WebExtensions API is a standard, so it's not like you can't test your extension without owning a Mac. If your extension works on both Firefox and Chrome, it really should work on Safari too. If it doesn't, that's Apple's fault for violating the standard, not yours for not testing on their broken platform. If you want to specifically test it you can, but if you don't see a reason to, you should be able to just port it over and let people use it and beta test it for you.
- panic 6y agoAll three of those developers started writing Mac software (or NeXT software, in Omni's case) in the 80's and 90's, before Xcode or the Apple Developer Program. The wider Mac developer community was hollowed out by the iPhone in the late 2000's-early 2010's and never really recovered. Who is starting a Mac-only software shop in 2021?
- danielscrubs 6y agoAre anyone doing Windows or Linux only software shops in 2021 (web services not included)? Even the ones reaching hacker news seems to fiddle down after just a couple of years and die out. I’m starting to wonder... here around 4 out of 5 business close down within a couple of years, how is that ratio for business making a software product? Is software a victim of its own success? The market is clearly there, but the competition is ruthless, the stacks ever changing and the risk seems to increase year for year. At the same time we code on our free time and happily give away our code for free. Tried to find a study where they showed that gambling addiction and programming addiction operated similarly but it seems to have been scrubbed of the internet. IMO median(!) salaries will go down relative to other diciplinaries. coding is just too fun.
- coldtea 6y ago>Who is starting a Mac-only software shop in 2021? A lot of people? There are more Mac users (and thus app buyers) today than ever were, several times more than in the 80s and 90s. If people don't do it it's because they can make a quicker buck elsewhere (e.g. web SaaS and such), not because it's a worse market in absolute terms. It sure beats being an indie game dev, that's for sure...
- _qulr 6y ago> A lot of people? Name them. This is a serious request. I'm a longtime professional Mac developer who knows a lot of other Mac developers. > There are more Mac users (and thus app buyers) The premise is true, but the conclusion is not necessarily true. The crap store and the iOSication of the Mac have really hurt the Mac software market.
- WhyNotHugo 6y agoThe barrier for entry to the Apple ecosystem is extremely high though. Xcode is extremely hard to use. I've been programming for over 20 years, and used lots of different editors and IDEs and languages. But Xcode is just TOO HARD. Swift was nice and easy to understand. But just editing (or even typing) code on the editor is a huge pain. Even things like selecting text, or moving the cursor around are super non-standard and complicated (and this is coming from someone who's managed to become proficient with vim).
- rimliu 6y agoWell, I have been programming for 30 years now. I started with Apple when iPhone SDK was released. Had no problem with Xcode then, have nor problem with it now. How can actually IDE or editor be HARD (memes about quitting vim aside). I've used a bunch of them: HomeSite, SKEdit, Textmate, Sublime Text, PHPStorm/RubyMine/WebStorm, NetBeans, Xcode, AppCode, VSCode, Nova. I liked some more, some less, but neither was HARD. How is moving cursor not standard? Mac OS has a very consistent way doing that, across the system.
- coldtea 6y ago>Even things like selecting text, or moving the cursor around are super non-standard and complicated This doesn't even make sense. Those things in XCode are as bog standard as it gets, and I've also used vim, Eclipse, Idea, ST and nowadays VSCode. I'd buy the UI setup (with connections between actions etc) being confusing in XCode (especially things like Storyboards), but text editing? Cant even understand what you could mean. Any concrete example?
- GeekyBear 6y ago>they hook in to new platform-only capabilities Contrast the situation to Microsoft, where not even their own in-house teams are willing to add support for new platform capabilities. There was no touch native version of Office for the Surface RT, despite it being sold as a tablet. There are several of their own products that still don't have native ARM versions for the Surface Pro X. Xcode works natively on an M1 Mac. Where's the native version of Visual Studio for the Surface Pro X?
- _qulr 6y ago> Apple tho wants macOS developers (and users prefer apps from people dedicated to macOS). This is a very strange argument to make in the context of Safari Web Extensions. Safari already had its own Apple-specific app extensions API, but it seems that Apple decided this was not sufficient, so they implemented the cross-platform WebExtensions API too. Clearly Apple is trying to recruit non-Mac developers with their command-line conversion tool for existing Chrome and Firefox extensions, and automatic generation of a Mac app wrapper. If Mac developers were sufficient for this purpose, then WebExtensions support would not have needed to be added to Safari at all.
- whywhywhywhy 6y ago>instead on relying to 1000s of half-ported apps, with shared functionality on Windows and Mac, and horrible cross-platformy UIs Most people I know day to day who insist on Macs spend all their days using Chrome, VSCode and Slack with little else. The days of the Mac UI apps built by passionate Mac developers being the Mac advantage are over. People like myself who still use native Mac software like TextMate, Safari, Transmit for the Mac UI are absolutely a small and shrinking minority. I think while Apple has been looking the other way to iOS the past 10 years this moat of MacOS better 3rd party app experience through native ui frameworks has been completely eroded and now most MacOS users are just doing their work via Chrome wrappers.
- apple_innocent 6y agoWould the hobbyist projects whose development is effectively inhibited by Xcode and the Apple Developer Program, i.e., the hoops Apple makes programmers jump through, be more interesting than the apps people pay developers to create.
- sneak 6y agoTo top it off, if you put a donation link in your about box when you release your totally free software in their App Store, they will reject it in review. Free apps are not allowed to include a donation link to their own website. It's to the point where they won't even let people enrich their ecosystem for free unless you dance to their tune. It's very, very hard to take anything other than a dim view of such despicable behavior.
- vbezhenar 6y agoDonations is just another model of making money from software. So you're going to use App Store for free and make money without Apple getting their cut. It's understandable why Apple does not accept it.
- sneak 6y agoIf you believe that donations accepted by authors of entirely free/open source software are "just another model of making money from software", I don't know what to tell you. I don't understand it, so I don't think it's fair to call it "understandable".
- frou_dh 6y ago> So you're going to use App Store for free It's not free. There's a $99 membership fee every year, even for an altruistic person offering nothing but a single useful extension/app that makes zero income. --- Let's imagine a feature request on GitHub: USER: Safari supports the WebExtension API now. Please port your cool extension to Safari. DEVELOPER: Cool. I'll maybe try doing that this weekend! USER: Oh, by the way, you'll need to be on the hook for $99/yr for the rest of your life, so that Safari users can install the extension. DEVELOPER: <...RADIO SILENCE...>
- TheRealDunkirk 6y agoI still can't get my head wrapped around the complaint that the developer program costs $100/yr, as though this were some great barrier to entry. To put it in perspective, I subscribe to <deep breath> Prime, Netflix, Hulu, Disney+, HBO Now, Apple One, Office365, PS+, and Xbox Live, and that's just off the top of my head. Most of them are for purely-optional entertainment, and all of them cost more money than the developer program. I suspect most people who frequent this board pay for several of these too. In comparison, the $100/yr for the developer program is not a lot of money. It's certainly comparable with other optional digital services. It's less than a single restaurant lunch per month. You can complain that it's not right to charge for the program, but the developer program has a cover charge to keep out the riff raff. I don't think this is a bad thing. We all know how much junk is in the App Store as it is, and how long it takes to get a review. Imagine if they didn't charge for the opportunity to submit apps? How much soon-abandoned junk would suddenly appear, and how long would it take for proper apps to get approved?
- m463 6y agoI think capitalism works. That's how apple does it. That said, I was attracted to computers since an early age because it's fun to make them do things. But I think apple's ecosystem takes the MOST EFFORT of any of them to actually do anything. For example, on linux there are probably 100 scripting languages that can do fine-grained automation of just about anything you want to do. With apple.. ugh. It's either applescript, or you're into xcode and a compiler and a license agreement and high complexity and lots of only-apple-does-it-this-way. Here's a simple one: how do you have two icons in the dock - one to open an 80x25 terminal window, one to open a 140x50 terminal window. This takes way too much energy to automate. You can do it in applescript, but it's such a horrible language. tell process "Terminal" to click menu bar 1's menu bar item "Window" menu 1's menu item "Open Window Group"'s menu 1's menu item "group1" I know there are shell scripts and python, but apple treats them like the jackling mansion - no gui, cmdline is non-essential, everything is rotting.
- lycopodiopsida 6y agoWriting AS is not a pleasant experience, I agree. IMO, it was internally abandoned long time. There was a push to move the automation framework to JS with JSX, but after the initial half-broken release nothing came and as far as I understand, the team was dissolved. Shortcuts on iOS may be the model for future automation on MacOS. This said, one of the biggest reasons I still clamp to macOS is, actually, the state of automation tooling - even in this half-abandoned state. Your example would be trivial to implement with tools like Keyboard Maestro or hammerspoon. Then there are tools like Alferd/Launchbar, Karabiner elements or bettertouchtool for touchpad gestures... It is really a vast ecosystem which is to match.
- m463 6y agowell, that is their business model. Take it away and then sell it back.