Hacker News new | past | comments | ask | show | jobs | submit login
We’ll stop selling our Code Editor app for iOS soon (panic.com)
353 points by krzyzanowskim on May 11, 2021 | hide | past | favorite | 436 comments



> The biggest technical hurdle is the inability to run external processes on iOS and iPadOS.

> Apps on iOS and iPadOS must use Apple’s Javascript interpreter, JavaScriptCore.

Both of these really suck because they are policy, not technical, decisions. Even setting aside the arguments of whether JIT code is a security concern (it is not unless your security model is one where codesigning exists to prevent the addition of new native code) that you cannot spawn a new process, nor can you ship another JavaScript interpreter, is really unfortunate.

Allowing apps to spawn new processes is easy (I mean, just inherit sandboxing rules and resource limits…) and allows for a lot of new usecases, like robust crash reporting, web servers, privilege separation, and more. That Apple allows this on macOS and even uses it for its own apps on iOS just shows how useful this can be and how little it affects the security model of iOS.

Likewise, not allowing other JavaScript interpreters is just…annoying. Regardless of your opinions of JavaScriptCore, this is an unfair limitation on an already slanted playing field. Coupled with the fact that the JavaScriptCore interpreter (which the framework uses for anything you run in-process) is literally designed for low resource consumption instead of than performance makes this even more infuriating.


> Likewise, not allowing other JavaScript interpreters is just…annoying. Regardless of your opinions of JavaScriptCore, this is an unfair limitation on an already slanted playing field.

Reading the actual policies reveals that other interpreters are in fact allowed, but they may only be used for code that is part of the app bundle.

The actual limitation is that apps must be self-contained, and only javascriptcore and webkit may be used to run code from an external source (e.g. downloaded or user input).

See app store review guidelines, section 2.5.2: https://developer.apple.com/app-store/review/guidelines/#sof...


Apple tries to rely on static analysis. But it does not work and the engineering premise for it to work is shaky. This was discussed in Epic vs. Apple recently

https://arstechnica.com/gadgets/2021/05/apple-brass-discusse...


Objective-C supports dynamic dispatch i.e. call methods using a string at runtime.

So it's impossible to have static analysis work in all cases.


In all cases, sure. But static analysis people have been resolving virtual function calls effectively for decades.


Apple uses some dynamic analysis as well, but of course this is limited to what they can see during review.


No, the actual limitation is that you can’t implement a JIT compiler. You can’t create executable memory blocks unless you have a special entitlement only Apples Javascript engine has.

Even using that engine your app must be self contained, you can’t download extra code, no matter the language.

As your link says:

> Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps.


> Even using that engine your app must be self contained, you can’t download extra code, no matter the language.

That rule is honored more in the breach though


With the big caveat that only JavaScriptCore can JIT, so third-party interpreters will always be performance-constrained. Not a big deal for languages like Python or Lua that are always interpreted, but things like .NET on iOS (Xamarin) have to be ahead-of-time compiled for decent performance, and it's a complete non-starter for third-party JavaScript interpreters.


Neither Python nor Lua are always interpreted.

(Both languages have fairly well-known and reasonably widely used alternative implementations that include JIT.)


JavaScriptCore can’t JIT when run in process, the entitlement isn’t there on your app, so the kernel won’t let it. I think that’s part of the reason for WKWebView (which runs the browser in a separate process and proxies it).


>> The biggest technical hurdle is the inability to run external processes on iOS and iPadOS. >> Apps on iOS and iPadOS must use Apple’s Javascript interpreter, JavaScriptCore.

> Both of these really suck because they are policy, not technical, decisions.

They are policy decisions that kind of make sense for a device like a tablet or phone though. Even though you could technically allow installing a complete development toolchain on an iPad, I can't imagine what the process would look like in practice. Download and install a complete *nix userland through the app store? Plus a compiler toolchain and each and every tool used in the build phase for your product? Who is going to maintain and distribute all these parts if the whole ecosystem is designed around the idea that apps are sandboxed and distributed through a curated app store? Imagine the customer support burden if you are the maintainer of some app that depends on external tools that can be used in a zillion different build/deploy configurations.

You could of course argue that the iOS ecosystem should not be based around a curated app store and sandboxed applications, but that would make it a MacBook...

Maybe we should put the whole idea of having one device that does everything to rest and accept that there are advantages to have a split between 'real computers' and tablets/phones. That's just my opionion though...

Edit: ah great, an immediate -3 because apparently people here think it is absolutely required to downvote straight away because they disagree with some opinion that is not their own.

Goodbye Hacker News, after ~10 years I'm finally done with the comment sections here and will deactivate my account and ask for it to be deleted


Apple advertises their own iPads as computers now, they certainly don't want their customers to look at iPads and think, "that's great, now I'm going to buy a real computer instead". They want their customers to buy an iPad. The only real way for iPadOS to go is "up", as in, absorbing more "real computer" features.

Also, what you're describing already exists, it's called iSH. It runs an x86 emulator with a copy of Alpine Linux inside. Somehow, they even convinced App Review to allow it (yes, Apple did threaten to remove it at one point, they backed down). You can use this penalty box to run pretty much any developer tool you like, you can mount file providers inside of the VM, etc. The only limitation is that it's x86 emulation is incomplete, I can't get it to run cargo so I can't compile Rust programs on it yet.


> they certainly don't want their customers to look at iPads and think, "that's great, now I'm going to buy a real computer instead". They want their customers to buy an iPad.

They want their customers to buy both. Apple has nothing to gain by killing off the Mac via the iPad.


> Apple has nothing to gain by killing off the Mac via the iPad.

If tablets are going to replace laptops for consumers in the long term, Apple would prefer that those tablets be iPads. If that shift means the iPad eats the Mac, so be it.

This already worked for them once - the iPhone cannibalized the (then-very profitable) iPod business with Apple’s explicit support, and now the company’s worth a trillion dollars.


They clearly want ipad to replace macs for consumption, not coding.


> They clearly want ipad to replace macs for consumption, not coding

I don't know what they want, but they're clearly preparing for a future where iPads are the default for consumption and creation.

There are multiple physical keyboard options, the Pencil is consistently refreshed, iPadOS has mouse/trackpad support now, and there's even an official - if very limited - iPad IDE[1] for learning Swift.

1. https://www.apple.com/sg/swift/playgrounds/


Swift playgrounds does not change their “app console” philosophy as can be seen from their documents shown in their legal battle with Epic (I’m on mobile so I don’t have the link handy)


If we’ve learned anything from Apple’s history, it’s that what they say today has little bearing on what they’ll do tomorrow.


The truest comment I've ever read. Honestly I hope you're right! How cool would that be?


The line is that the adding additional functionality requires an informed user's explicit and understood consent. This is a blurry line of policy which is not able to be limited via technology. The developers of tools like iSH and Pythonista have to tread carefully.


Apple advertises their own iPads as computers now, they certainly don't want their customers to look at iPads and think, "that's great, now I'm going to buy a real computer instead".

Just because most of us on HACKERnews write code doesn't mean your average 'computer user' does. iPads work very well as computer replacements for the majority of people who just want to browse the web/do shopping/use their favourite video and other media viewer etc etc.

It's an everyday computer for the masses. Not a developer's workstation.


Wow, you can actually use iSH to install PHP, run `php -S localhost:8080` and view index.php or whatever in Safari. I had no idea this was possible on iOS. Thanks!


Yeah, iSH is cool, but x86? Seems odd that they didn't run an ARM version of linux in a container or VM.


The iSH author had more experience with x86 than ARM.

I would not be surprised if iPadOS 15 ships with virtualization support, since the M1 has ARM EL2. If that is the case and Apple allows iSH to use it, then it probably would make sense to add ARM support to iSH for extra performance.


You cannot download and execute arbitrary files, so had to have something interpreted.

They could pick something easier to emulate perhaps, but x86 has benefits from a compatibility standpoint.

Maybe one day there would be a benefit of targetting WASM with a natively implemented syscall api?


We looked into it; the problem is that this makes system calls unbearably slow because they require IPC.


There isn’t any support for this in iOS.


I downvoted you for several reasons: while I do agree with the basic idea (an iPad shouldn’t be a MacBook with touch), I think the way you argue for it lacks nuance and doesn’t hold up. First of all, there is no reason why you can’t have both, *nix tools and a central App Store. Most people don’t use nix tools? Don’t install them. This would also work with sandboxing, e.g. I wouldn’t care if every app brings their own compilers even if it wastes memory. But even that is too much in apple’s eyes. The reason I need a MacBook that has the same processor as an iPad to develop for the iPad is completely arbitrary. Also, ideally I would like to not have to carry around multiple devices but more importantly, don’t buy them because it costs money (for some reason this argument rarely comes up, but money matters, especially in developing regions). Lastly, having devices that serve multiple purposes is a good thing for the environment. It’s also the way forward for the last 2 decades. When was the last time you had a separate MP3 player, a camera a calculator and a GPS device with you? Why shouldn’t my iPad be capable of enabling actual productive work?


"Should" in an ethical sense often conflicts with "does" in a business sense.


> Even though you could technically allow installing a complete development toolchain on an iPad, I can't imagine what the process would look like in practice.

Like every other computer ever.

> Imagine the customer support burden if you are the maintainer of some app that depends on external tools that can be used in a zillion different build/deploy configurations.

Microsoft and Google seem to work just fine. People seem to be able to ship when they have the tools to do so.

> They are policy decisions that kind of make sense for a device like a tablet or phone though.

They are strategic decision under the guise of policy decisions. Apple is "protecting you from dangerous apps" (read: dangerous apps = competition for Apple).

Apple is anti-competitive.


It's got 8GB of RAM and 3GHz processor. It runs Photoshop, for God's sake. An iPad is a small computer with touch.


An iPad Pro and a MacBook Air have the same core hardware - even the same M1 CPU. Add a keyboard and they look really similar except that the iPad has a touchscreen!

But there are lots of hybrid tablets and touchscreen laptops. What makes the iPad an amazing device for me is its outstanding software library (e.g. Procreate) and the Apple Pencil.

I could certainly imagine Apple bringing its Pro apps - notably Final Cut, Logic, and XCode - to the iPad. But I can't imagine Apple opening up iOS any time soon any more than I would imagine Nintendo opening up the Switch.


With this level of reasoning, SMS also makes sense for phones, and banning messenger apps is no big deal.

People have different needs, and a minority is always pushing the edges, and this pushing needs to happen so that the mainstream can pick and choose from the newly explored territory.


I was looking at some old notes the other day and remembering that I had made a plan for going the other direction, of slaving other devices to my IDE for faster round tripping of UI development.

That’s a very heterogenous example, but at some point we will be discussing personal clouds, where people have a little cluster of commodity/older ARM hardware that they balance a bunch of services across.

For example, you can download the server part of Don’t Starve Together as a separate app that you can then leave running even if you log off. That should be the standard for coop games, and probably for multiplayer games in general.

We are also overdue for a rethink of CI/CD pipelines, and I don’t mean As A Service.


> You could of course argue that the iOS ecosystem should not be based around a curated app store and sandboxed applications, but that would make it a MacBook...

Exactly what I would argue, and the only thing that would bring me back to iOS at this point.

> Maybe we should put the whole idea of having one device that does everything to rest and accept that there are advantages to have a split between 'real computers' and tablets/phones.

Google "convergence Pinephone", and imagine how powerful that would be with an iPhone running convergent macOS. And how much more powerful having macOS (with a mobile-optimized GUI) on the phone would make it on the go.


I understand your frustration with downvotes but it's not too bad in general in my experience. It's Apple discussions in particular that are hopeless, you have the rabid fanboys one one side and the rabbit haters on the other. I gave up on commenting on these stories, you can try to make a constructive comment only to be immediately grayed out.


Downvoting seems to turn any opinionated discussion into a stupid game/power struggle between upvotes and downvotes. As if you somehow "win" whenever someone with a different perspective is downvoted to grey.

It's bad on HN, and it's much worse on other sites.


Ive found this as well. Offering input from a highly specialized experience set (US IC community) being downvoted because I share the reality of some things that conflict with how people think things should be.


> They are policy decisions that kind of make sense for a device like a tablet or phone though. Even though you could technically allow installing a complete development toolchain on an iPad, I can't imagine what the process would look like in practice. Download and install a complete *nix userland through the app store? Plus a compiler toolchain and each and every tool used in the build phase for your product? Who is going to maintain and distribute all these parts if the whole ecosystem is designed around the idea that apps are sandboxed and distributed through a curated app store? Imagine the customer support burden if you are the maintainer of some app that depends on external tools that can be used in a zillion different build/deploy configurations.

I've got Termux running on my phone, complete with vim plugins, language server support, several compilers and all kinds of other tools. Combined with a bluetooth keyboard, it can be very useful in a pinch. It'll stop working on Android 11 because of "security concerns", but either thankfully or sadly, my phone has no stable Android 11 release yet. Everything is running inside a sandbox, I don't even have root access, and the binaries are distributed through a normal Linux package manager. With the right software you can even run a normal GUI on it through VNC or Spice, although that's something I haven't explored yet.

No need for other app developers to have any relation with Termux, that's what the sandbox is for. On Android, you can theoretically implement a system for sharing binaries and virtual files quite easily if Termux would support it, but I haven't seen such need myself.

These tools are maintained by volunteers and the Termux developer, and can be extended by adding repositories made by other people. So "who is going to maintain and distribute all these parts" comes down to the same question as "who is maintaining and distributing all of these Debian packages": the developers who want to make the ecosystem and apps function.

Most users won't use their phone or tablet like this, but I honestly don't see why they shouldn't be allowed to if they wish to. Apple is selling a complete keyboard and display stand for iPads, so these devices are clearly being targeted for productive use. Yet Apple refuses to allow developers to be productive on these devices, because they don't want competition for their crappy mobile browser engine.

As far as hardware is concerned, the touch screen, keyboard and OS are pretty much the only serious differences between the iPad and the Macbook Air. If you prefer a two-in-one tablet/laptop combo (which quite a lot of people do), the iPad is the closest Apple product to fit the description, if it would allow users more software freedom.

I do see the advantage of the curated app store, but I don't see the advantage of banning customers from not using said app store for the end user. You don't _have_ to install any apps from outside the app store, you just get the option to do so if you wish. I don't know any non-technical people who have installed apps from outside the Play Store, so it's not like allowing any lifted restrictions will make the ecosystem collapse.

I have a hard time understanding why you would want a company to tell you what you can and cannot use a device for. Their suggestions are always welcome, but why would you be in favour of their restrictions?


> I have a hard time understanding why you would want a company to tell you what you can and cannot use a device for. Their suggestions are always welcome, but why would you be in favour of their restrictions?

1. I'm in favor of locked-down devices for certain classes of users, because it reduces the technical support burden, one that I might otherwise be saddled with!

2. I'm willing to put up with walled gardens that have high-quality software, such as certain iPhone games and music apps, or first-party Nintendo games on the Switch. DRM is irritating, but I can live with it if it doesn't get in my way too much.

3. I'm in favor of several of Apple's developer restrictions that are aligned with my priorities of privacy, security, and battery life, so I'm willing to put up with the others that support Apple's business interests. Sideloading obviously makes such restrictions less enforceable.


I see. I don't think that all of these restrictions are really necessary to achieve the goals we both share for smartphones, but I can understand the rationale better now.

I actually agree with most of those reasons as long as there's a developer mode setting somewhere deep down to turn them off. I've only seen hidden settings being accessed on a large scale once, which was during the Pokemon Go hype, to allow GPS spoofing through the developer options; something that can't be easily done anymore.

With an off switch, normal users are protected and given a nice ecosystem while anyone else can benefit from the freedom of using their device the way they want to. This solves the technical support burden and the software quality issue, because to reach that audience, you still need to go through some form of accepted app store. If you prefer Apple's judgement for whatever reason, you just stick to their store and ignore the existence of any other app out there.

I have to disagree with you on the developer restrictions, though, and I think that's where my lack of understanding your mindset came from. The mandatory 15/30% cut and arbitrary rules (such as the ban on most parental control apps the moment Apple brings out a competitor) make it impossible for me to tolerate the other minor annoyances that come with Apple's decisions. Of course, Google has been going the same route, sadly.

Google has been applying many of the same protections, except for many of the privacy ones, and their platform doesn't suffer a side-loading problem at all. This indicates that the ecosystem would be fine if Apple would loosen up a bit, sticking to their privacy guns but allowing developers to still compete with whatever project they've come up with next.

Neither Google nor Apple have my best interests at heart, but in the case of Google I can at least work around their stupidity. I'll gladly lose access to some "exclusive" content if that's what it takes to install open source apps onto my phone.


Ironically, your comment was in positive when I read it...


> will deactivate my account and ask for it to be deleted

I don’t think accounts can be deleted? I tried once and was told no. :(


I think they can, but they just refuse to. I’ve seen (a few times) some comments with the username and text as “[deleted]”. But I’m not @dang, so I can’t say for sure.


yes, downvoting hurts, and sometimes it's not fair, i got to feel that too. but it has been said repeatedly that downvoting is reasonable to voice disagreements. replying would be better, but not everyone can put their thoughts into words.

try to think about it as a strong disagreement.

(EDIT: i wonder who downvoted this comment now ;-)


I haven't downvoted you, but voicing disagreement via downvoting isn't reasonable, since it tends to have dissenting opinions not be heard at all. When we're here to have a discussion after all, aren't we?


I agree with you but HN does not. HN specifically says downvoting for disagreeing is a valid and even encouraged used of downvoting on HN. I've been informed of this by Dang when complaining about downvoting before.

https://news.ycombinator.com/item?id=16131314

I wish I could downvote downvoting


well, yes, i used to think like that too, but i changed my mind. even when i received downvotes. they don't say much, but they did tell me that there are people who disagree with me. it is a weak signal, but it is a signal, and so it's not useless nor unreasonable.

personally, i only downvote if i feel someone says something unreasonable or worse. but not if it is a good argument, even one that i disagree with. in those cases i even counterupvote other downvotes.

as for the downvote on my comment, that was more a rethorical question. i was actually just laughing at that, given the subject of the message. and the subsequent upvotes show that a lot of people agree with the comment.

(edit: it gets funnier. by now my above comment received at least 8 upvotes and 4 downvotes (or up to 4 people changed their mind))


Why is there voting at all? It's so childish.


Upvoting that.


> replying would be better, but not everyone can put their thoughts into words.

Exactly, downvoting as a way to disagree is the easy way, it’s childish, puerile, and ridiculous. But let’s put things into perspective. A comment is just an opinion in a sea of random opinions. Opinions, for the most part, are not even personal, people tend to borrow them. To think through something and come up with an original opinion takes a lot of work. A downvote is just an easy dismissal, in a sea of easy dismissals. That’s not a proper way to communicate.

Downvoting is imperfect, but that said, I understand how people can find it useful as a curating system. I never downvote comments I disagree with because it doesn’t accomplish anything. It also takes too much energy.


As long as Apple makes money from allowing people to buy "Pro" apps like IDEs, REPL , other creation apps then you wrong, otherwise Apple should reject this apps as not allowed because the device is not capable for Pro creator usage.


That sounds like the exact thing that Microsoft was slapped with in the 90s. Microsoft used operating system functionality for their browser that 3rd parties did not have access to. Microsoft was forced to open this stuff up.

Apple regularly leverages operating system calls that 3rd parties do not have access to.


I'm not sure it's the same thing. It's an arbitrary and somewhat dubious limitation, but it's less like "IE gets to hook into the OS at a lower level than Netscape Navigator can" than if the problem has been "Netscape Navigator can run on Windows but has to use IE's rendering engine."

I think a lot of iOS's limitations come from a philosophical stance Apple took at the start of the (iOS) App Store -- iPhones and iPads should be treated like consoles, not general purpose computing platforms. Despite them marketing the iPad Pro as if it's a full-bore computer replacement -- and to be fair, there are a lot of use cases where it really can be (e.g., office worker, photographer, writer[1], even video/audio editor -- on an OS level, they've stubbornly stuck with the "Mac = computer, iPad = console" approach[2] and I don't think they're going to change it unless forced.

[1] With certain limitations. I can use an iPad well enough for my fiction and non-fiction, but not for my technical writing.

[2] The "Mac = computer" part of that is why I disagree with the prevailing opinion on HN about how Apple will "inevitably" lock down the Mac to the same degree they have the iPad; I think they continue to see them as fundamentally different classes of products, even as that distinction grows ever more arbitrary.


I think there's reasonable argument to be made that smartphones are important enough that they should not ve like consoles, and should be forced to be more open. I guess a similar argument to that used to justify regulating utlities.


The problem is that there are a mix of technical and non-technical restrictions in order to keep end users from shooting themselves in the foot.

It is likely a "careful what you wish for" with regulating the platforms like utilities, because they would likely regulate much farther down - the governments would become an additional party setting app store policy to a much greater degree than we see today.


That's ignoring all the other things MS was up to at the time. They did a lot of embrace-extend-extinguish to reduce the effectiveness of competitors, a lot of dirty dealing with OEMs to block alternate OSes. The IE thing was just one piece of a much larger case.


The main component of Microsoft v. US was about this:

https://en.wikipedia.org/wiki/United_States_v._Microsoft_Cor...

Part of their punishment was to open up APIs and allow 3rd parties to audit. If this wasn't the main part of the case why was this used to remedy?


IE was used because it was a clear demonstration of MS's abuse of their market share and monopoly position to stifle competition. If they'd integrated their office applications in a similar fashion, spending billions of dollars on development and advertising only to release it for free and forced OEMs to not install a third party office application suite with strong arm tactics, that's what we would have seen.

The browser was not special, the abuse was the issue and the browser case was solid to use as a central claim against MS.

And this bears repeating again and again:

The browser was not and is not special. It does not matter. It was the abuse that was at issue, not the browser itself. The browser was a symptom of the abuse. Again, the browser was not the issue, only a symptom of abuse of their monopoly position.

Any claims against Apple about the Safari browser on mobile being like the IE situation on Windows is the result of a shallow reading of the case.


https://www.justice.gov/atr/us-v-microsoft-courts-findings-f...

>34. Viewed together, three main facts indicate that Microsoft enjoys monopoly power. First, Microsoft's share of the market for Intel-compatible PC operating systems is extremely large and stable. Second, Microsoft's dominant market share is protected by a high barrier to entry. Third, and largely as a result of that barrier, Microsoft's customers lack a commercially viable alternative to Windows.

Viewed together, three main facts indicate that Apple enjoys monopoly power. First, Apple's share of the market for smartphones is extremely large and stable. Second, Apple's dominant market share is protected by a high barrier to entry. Third, and largely as a result of that barrier, Apple's customers lack a commercially viable alternative to iOS.


How? There are many viable alternatives to everything Apple makes. There are plenty of non-Apple laptops, desktop computers, tablets (ok, this is more limited at least in terms of equivalent capability), phones, even the watch.

And Apple, unlike MS at the time, has not been conducting the same abusive policies that put competitors out of business, which is a large part of what raised the cost of entry.


>Third, and largely as a result of that barrier, Microsoft's customers lack a commercially viable alternative to Windows.

Do Apple customers have commercially viable alternatives? Apple's current customers and, not only alternatives, viable alternatives?

I personally know many people who lament, "All my stuff is Apple, I can't leave!" Of course they could leave if forced to but it is not viable. Perhaps their other devices would stop working. Those people aren't choosing Apple products because they think they're better, they are choosing Apple products because they are a victim of Apple lock-in.


I remember when Microsoft had its dominant position with Windows[0] in the late 1990s; sentiments along the lines of "this sucks, but we're stuck with it" were common. I do not hear that sentiment from Apple users often today. Even when they have complaints, they typically like the hardware and/or software better than alternatives to which they have been exposed.

In case that seems like something a fanboy would write, I should clarify that I am not an Apple user, nor do I have any desire to buy Apple products (though I do hope somebody else manages to build a fast, cool-running ARM laptop soon).

[0] Windows still has a very high market share for desktop operating systems, but there's much less lock-in for most users.


There are reasonable alternative to all of Apple's products and I'm not aware of anything except convince stopping people moving.

This sounds a bit like saying Ford has a monopoly on the Ford car market - true, but not how anti-trust cases work.


Where on Earth are you getting that Apple's market share is "extremely large and stable"?

iPhones account for 17% of the smartphone market.[0] That's less than Samsung.

iOS has 27% market share against Android's 72% [1].

Apple has a monopoly on Apple products. Yes, there is a high barrier to entry to compete with Apple on making Apple products.

But they in no sense have a dominant market position, much less one to be compared with Microsoft at their height when IE had 95% market share of browsers [2]

[0] https://www.counterpointresearch.com/global-smartphone-share... [1] https://gs.statcounter.com/os-market-share/mobile/worldwide [2] https://en.wikipedia.org/wiki/Usage_share_of_web_browsers


What is iOS market share in the US?


Over 50%.


The iOS ~50% smartphone market share is dramatically different to the 90%+ market share Windows had.

Redefining the market as "the iOS smartphone market" is what Epic seems to be trying to do. I'm skeptical about this being a workable approach in an anti-trust case.


How is it not similarly abusive to ban non-approved software from being installed without paying a 30% protection fee?


In similar way that Al Capone was indicted for tax evasion, not for the many other crimes he was understood to commit. The prosecution stands on what it can be able to proved in court, with a judge sharply listening to each detail.


That's true but consumers would definitely be empowered if Apple received a similar ruling.


Plus the fact that Microsoft had a monopoly they were abusing; Apple doesn't by any reasonable metric.


Here's a reasonable metric: who controls the market for iPad or iPhone applications, and how did that compare to who controlled the market for applications that ran on Windows at the peak of Microsoft's dominance? For the former, the only distribution method is via Apple's store and Apple gets a cut of every sale. For the latter, developers could sell directly to the public; Microsoft did not control this. Apple's monopoly is much stronger.

Apple apologists will blur this by taking about the smart phone market as a whole. But once someone has bought a device, they are no longer in that larger market. They need apps, and there's only one place to get them.

That only leaves the question of whether they are abusing the monopoly.

Google has a similar monopoly over Android applications, but it's not as tight, because of side-loading and fragmentation by Amazon and others. Still, it's a near-monopoly because few people bypass the Play Store.


> Apple apologists will blur this by taking about the smart phone market as a whole.

Until you can find a judge willing to endorse your definition of "market", it's not just "Apple apologists" but "legal precedent".


You'd have no problem finding economists to endorse my definition. As for judges, they only get to rule on cases that are brought to them, and that depends on the regulators.


So, again, legal precedent is that Apple doesn’t have a monopoly.


The legal precedent isn't that Apple doesn't have a monopoly.

There is no legal precedent on whether Apple has a monopoly. The law is entirely agnostic on whether Apple has a monopoly until it is put to a judge.


Consoles have existed for decades applying similar rules to software distribution, no?


There is no legal precedent I’m aware of that you can carve out one company’s products and claim that constitutes a market over which it holds a monopoly, in the presence of an alternative with comparable market share.


The Second Circuit has defined monopoly power as "the ability '

(1) to price substantially above the competitive level and

(2) to persist in doing so for a significant period without erosion by new entry or expansion.'

Apple's iOS platform matches both these conditions.


Except iPhones aren’t generally more expensive than phones of similar caliber hardware. Samsung offers phones even more expensive.

Apple just doesn’t offer cheap hardware.

Does Porsche have monopoly power just because they don’t offer low-end models?


Porsche doesn't provide an app platform.


I think we need two rules for the modern information economy to ensure competition.

I think it should be illegal to deliberately interfer with a devices owner's ability to run the software of their choice. This means that owners of iPhones, PlayStations, Switches, Tractors, Cars, etc should not have to treat the manufacturer as an adversary in their ownership of the devices.

I also think that content exclusivity contracts should be illegal and that all content creators that license content to a service should be required to offer reasonably similar licensing terms to that service's competitors.


> Here's a reasonable metric: who controls the market for iPad or iPhone applications, and how did that compare to who controlled the market for applications that ran on Windows at the peak of Microsoft's dominance?

Apple for iOs and software distributors and computer store retailers for the windows application market.

Microsoft dominated the market for operating systems for home computers, and they did a bunch of nasty stuff, including using their dominance to effectively restrict and/or prevent bundling of other operating systems with new computers, and there were shenanigans done against a handful specific products made by others, but AFAIK Microsoft did not make any attempt to dictate what applications computer stores sold. If you could convince distributors and retailers, your software could be on shelves. There were made for windows labeling programs, and those are now compulsory for drivers, but that's outside the Microsoft abuses time frame and there's not the same kind of pushback.

Google's control of Android is similar, but not nearly the same. Developers can make apks available for users and users can pretty easily install them; the experience seems to be getting consistently better, my newest phones will show a warning on opening that links to the checkbox and when you tick the box you can install the apk directly, without having to find it again. It's not quite as easy as running a setup program on windows, but it's darn close.

Sure, most developers don't provide apks, and most users don't use direct apk links when they're provided, but it's an available option vs jailbreaking an iOS device which requires a lot of fiddly steps. There's also a concern about Google enforcing some terms on downloaded apks that are also distibuted through the Play store, at least a few years ago, they didn't like non-google in app payment, even if it was only in the direct apk; and Google Play's security scanning apparatus runs against downloaded apks and sometimes shows scary messages which may be anti-competitive.

I think there's certainly a legal question about if Apple's captive market can be considered a market for anti-trust purposes. If so, there's a clear case of anti-competitiveness, IMHO. If the relevant market is applications on smartphones or tablets, I don't think Apple has enough marketshare that the anti-competitive things they do are prohibited, because IMHO, they only do things that are prohibited in combination with strong market power.

Google, on the other hand, probably has enough market power, regardless of segmentation, but they also are signficantly less restrictive.


Right. MS had somewhere around 97% of the desktop market for a chunk of the 90s, when the anti-trust stuff was really taking off. As an example:

They used that position to force OEMs to sell Windows only. BeOS was going to be on <vendor> desktops [0], but MS went to them and said, in short, "If you do this, you will have to pay retail price for our OS. And if you have to pay retail price, you will have to raise your hardware prices when selling Windows desktops. And if you have to do that, in this cutthroat low-margin industry, you won't be able to compete with the other OEMs."

The anti-trust case is really interesting reading (to me at least), and worth checking out. Most people only know the headlines of what was covered by it ("it's about browsers") but aren't aware of the deeper and over decade long issues that were covered by it.

Embrace, extend, extinguish: https://en.wikipedia.org/wiki/Embrace,_extend,_and_extinguis...

It wasn't just the browser's hooks into the OS (or the OS dependency on IE). It was the deliberate non-conformant manner that MS developed it in. It literally did things in the opposite way the standard described at times. See also their effort at implementing Java as part of their developer suite, where they were later forced to drop the J++ line because they were making an incompatible, non-standard Java.

[0] Compaq? It's in the suit, I may track it down before the edit window is closed.


Layman definitions of monopoly do not matter when it comes to antitrust laws[1]:

> Courts do not require a literal monopoly before applying rules for single firm conduct; that term is used as shorthand for a firm with significant and durable market power — that is, the long term ability to raise price or exclude competitors. That is how that term is used here: a "monopolist" is a firm with significant and durable market power.

Also, iOS has 60% of the mobile operating systems market in the US[2]. Apple's App Store is responsible for 100% more revenue than the Play Store[3].

Apple and Google are certainly leveraging their duopolies in both the mobile operating systems market and the mobile app distribution market in order to prevent competition in those markets and others.

[1] https://www.ftc.gov/tips-advice/competition-guidance/guide-a...

[2] https://deviceatlas.com/blog/android-v-ios-market-share

[3] https://www.businessofapps.com/data/app-revenues/


And how much of it is because how Apple runs their platform?


They are part of a duopoly and I hope Google also gets scrutinized.


Android isn't just Google though. Amazon ships Android devices that don't even have Google's Android store on them. Amazon also ships their own store which Android users can download and install even on Google devices - and they're not the only 3rd party store on Android.


What % of android phones are Amazon? Less than 1%? I think they would need a bigger marketshare before you start including them as a market player.


Phones? Probably nil. But tablets, firesticks, and kindles have to enjoy reasonable marketshare. Kindle is something like 70% of the ebook market, 85% if you include KindleUnlimited.

I believe non-Google Android phones are quite popular outside of the USA.


Ebooks aren't really the same market as phones/tablwts though. So they're not that relevant to the discussion of a smartphone duopoly.


We're not talking about a smartphone duopoly though. This post is about a major iPad app. Tablets are fair game.


Until/unless the two companies are caught colluding against consumers, duopolies aren't covered by antitrust law afaik.


The Apple store is a monopoly when you consider just iOS. It is in fact 100% market share among apple devices. There is no alternative. Android doesn't replace an iPhone in many cases.


>The Apple store is a monopoly when you consider just iOS.

Every business is just a monopoly if you consider it alone, and a single 7 Eleven has 100% marker share among its store.


The analagous situation with convenience storea is: If any convenience store chain was able to prevent other convenience store chains from operating in a geographic area, they would have a monopoly in that area. Consumers in that market segment would have no other choice unless they were willing to sell their house and move.

In your example, a consumer can easily leave 7-11 and go to a near by store at a much, much, lower cost than selling a house.

On Android, to have choices beyond the Play Store, all I need to do is change some setting and instal a 3rd party store.

On iPhone, to have choices beyond the AppStore I might be able to run some much more complicated and dangerous software, but only when Apple is behind in the cat and mouse game with jailbreakers.

The root of the question here is one we have to answer as a society. How much should consumer choice cost (relative to the price of the good/service they are choosing). Maybe 5x is reasonable, but 500x is not.

When a company deliberately does everything they can to raise those costs and thoae costs are very high (such as with Apple), I think we should absolutely call those companies to account for anti-competive and monopolostic trade practices.


>The analagous situation with convenience storea is: If any convenience store chain was able to prevent other convenience store chains from operating in a geographic area, they would have a monopoly in that area

This breaks down as there's no "physical area" preventing anything.

You can get an Android phone whether you're in Alaska or Miami or Tanzania. In fact it's easier, and most of the billions in the planet (including high income earners) do just that.


The analogy is between the cost of moving to a new physical area and the cost of buying a new physical device.


Uh, it's more like the cost of switching your preferred convenience store chain vs. your phone platform. There are alternatives and you might like one more than the other, but at the end of the day both serve the same purpose (buy milk, or computer in my pocket). If this analogy breaks down it's not because Apple has a monopoly, it's because Android ecosystem has not delivered something similar enough to 7-11.


[flagged]


And I don't have to use an Apple credit card on the iOS app store.


Ah but you have to use the Apple app store. There is no alternative.


Sure there is, don't buy an Apple device. They aren't the majority or even necessary for anything. Android is a viable alternative and you can sideload applications there.

And, in stark contrast to the MS antitrust case, Apple doesn't have 97% of the market share.


[flagged]


>You can't not have an iPhone for so many reasons.

This is the most entitled, "first world" problem, I've ever heard of.

Sure you can (not have one). The majority (60%+) of the population in the USA manages just fine without one. 90% in some Western European countries...

Pro tip: you don't need an Apple Watch either.

Pro tip 2: you might want to look up the definition of "need" and "lying".


You'd be surprised what someone who runs a food truck or works in real estate "needs" to project "success".

Actual protip: get out of your tech bubble for two seconds and talk to some real business owners.


Adding true clauses (e.g. some people want an iphone to project success) doesn't necessarily make a true argument. The conclusion must also be supported by the clauses.

In this case, an argument which amounts to:

"People need to have an iPhone because some business owners feel they need it to project success, thus Apple has a monopoly on something essential"

is so random it can't be even be called wrong.

Whether some "business owners" feel they need an iPhone to "project success" doesn't mean anything, and is an absolutely moot point as to whether Apple is a monopoly, or even as to whether the iPhone is an essential good, or whatever else you had in mind.


"I need this specific platform to succeed for some reason" does not somehow make that platform a monopoly that should be subject to regulatory action.

Apple's management of their platform is not unique, is not meaningfully different from their competitors, and not meaningfully different from the management of similar stores in different industries. Even assuming they actually have built a strong enough brand that people are judged for having a competing product, I fail to see how requiring changes to the App Store solves that problem.


A brand requirement to establish prestige seems a weak anti-trust case.

Infact, a judge might see it as a counter argument. If prestige is the reason people buy Apple then almost by definition there must be alternatives.


Well, you don't have to use an Apple credit card in the App Store either.

That said, do you remember having to use Disney money in Disneyland for every transaction?


> That said, do you remember having to use Disney money in Disneyland for every transaction?

I remember it being a fun option to use either Disney or US dollars in the park, maybe it was required at some point, but I don't remember that.


I'm curious, do you use iOS devices?


I own hand me downs I use for testing but they are usually in a pile on my desk and not actually in use.


Hopefully that will soon change. Apple/google is a prime example of why it should.


The the PlayStation and Xbox and Nintendo stores are the exact same?


Because Apple influenced them. They copied Apple’s model because Apple had been getting away with it, and will likely have to comply with whatever new regulations might result from this.


Are you sure? I thought PlayStation store opened in 2006 and apple 2008?


> duopolies aren't covered by antitrust law afaik.

What exactly do you think the 'trust' in 'antitrust' means? From here[1]:

> A trust or corporate trust is a large grouping of business interests with significant market power, which may be embodied as a corporation or as a group of corporations that cooperate with one another in various ways.

[1] https://en.wikipedia.org/wiki/Trust_(business)


Hence the caveat:

> Until/unless the two companies are caught colluding against consumers


What competition does[0] Apple have on the service of distributing iphone applications?

0: indeed, can, without stupedous efforts of reverse engineering that they actively oppose


So if Apple had had any market share in the late 90s then Microsoft+Apple would have been allowed to put a strangle hold on the web the way that Google+Apple do to apps today. In that sense we are really lucky that Microsoft had that monopoly or the open web would not exist today.


I''m really curious why this comment got downvoted. Wish I had gotten a reply. I don't see the error in my logic. If 90s Apple had had 50% of the desktop market Microsoft would not have been regulated. And Steve Jobs was no lover of open systems. In their hands the open web would not have survived.


You can do a lot of things as a non-monopoly that you can’t do as a monopoly.

Apple isn’t even a majority of the market, so laws on monopolies don’t readily apply here.


I was hoping with the announcement of the iPad Pro with the M1 chip and 16GB(!) of RAM it meant that Apple was going to give us some way of running arbitrary code inside sandboxes on the device in the next release of iPadOS. (So we could have Xcode, or at the least, Swift and Clang and a terminal). I suppose they probably would’ve told Panic though, even if under NDA since they’ve had a good relationship with Apple. Crap.


WWDC is in a month so we’ll see then. I will be disappointed if there isn’t at least XCode for the iPad. Swift Playgrounds already compiles Swift code on the iPad and has for years.


Just because it’s impossible for third-parties to write an IDE doesn’t mean Apple can’t. In fact, it seems more likely that Apple would ship Xcode for iOS as a way of trying out new API capabilities and then in a year or two allowing other devs to use some of the same capabilities. That said, I could imagine that if such an API existed, Visual Studio Code would be the first text editor devs would be excited for. I like Nova, it’s much faster than VS Code, but VS Code has all the extensions, and is cross-platform. I tend to use Nova for files, VS Code for folders and JetBrains IDEs for projects…


> it is not unless your security model is one where codesigning exists to prevent the addition of new native code

It is if your security model includes things like parental controls and payment processing.


>Even setting aside the arguments of whether JIT code is a security concern (it is not unless your security model is one where codesigning exists to prevent the addition of new native code) ...

I'm a neophyte on security issues, but this seems like a very open ended assertion.

Doesn't JIT require rwx permission on a block of memory? Haven't there been thousands of security attacks over the years that started with some kind of buffer overflow (or similar approach) that is fundamentally enabled by rwx permission on a block of memory? Like I said, I'm just an observer in this area, so apologies if I am way off base.

>is literally designed for low resource consumption instead of than performance

I would say this is the right choice for a handheld device. At least it is for my phone.


No, these are reasonable questions, they just miss the fact that Apple ships JavaScriptCore with a JIT. By not allowing JITs in third party apps Apple claims they are the only ones who can write a secure JIT (obviously false) and that their platform sandbox is too weak to stand up to arbitrary code execution. Plus, it’s not like normal code doesn’t have buffer overflows or other security issues. As for the tuning on the VM: perhaps in isolation. But again, the high performance JIT exists; it’s just not available to anyone else.


Yes, you are right that they allow their own JIT. Their position would be that they spend a great deal of time hardening that JIT and don't trust others to take that time. Their JIT isn't perfect of course, but they control it and can fix it fast if needed. (In their opinion.) They are really saying that they aren't willing to take the time to exhaustively test other JITs. That is a frustrating choice, but I do understand the thinking.

You raise the bigger point. Is there no way for their platform sandbox to handle the concerns? That is a great question.

>Plus, it’s not like normal code doesn’t have buffer overflows or other security issues.

I think normal code on an M1 only runs in rx memory blocks [0,1], so no buffer overflow attacks. At least not without another attack to remap the blocks. This might go back to A12 processors. M1 strengthened the model.

Perhaps with these newer processors, the hardware support can harden the sandbox enough to allow more flexibility. One can hope...

[0] https://blog.svenpeter.dev/posts/m1_sprr_gxf/ [1] https://siguza.github.io/APRR/


You’re exactly right about this being their position. The problem is that their position is not necessary grounded in fact: WebKit certainly isn’t a perfect browser engine, and arguably it might not even be the most secure one. However, it is not Apple’s job to test anything: it’s not like they are currently responsible for finding security issues in apps right now. Basically their position is:

“We work hard to make our engine secure. We don’t think anyone else should try.”

“But here’s a security issue in your engine. Can I use this other one which I think does a better job? Can I even try?

“No.”

FWIW, W^X is generally implemented by all good JITs these days because it’s a good idea. I’m sure the if given the opportunity browsers would adopt this, just like they’ve adopted sandboxing on macOS despite there being zero documentation or support for that interface. It’s just that Apple does not even allow them to do so on iOS. (Also, W^X does mot protect against all buffer overflow attacks.)


JITs do not require memory to be writable and executable at the same time, which is the source of those security problems.


JITs can be exploited even in the presence of W^X.


Anything can be exploited. Normal compilers too, especially if you're running code someone else supplied. But I wouldn't say there are any especially severe vulnerabilities unique to JITing.


This is also the reason why iPad Pro will never be the professional machine Apple is pushing it as, no matter how much processing power or marketing dollars they throw at it.


For a lot of users it’s more then enough, professional writers editors writers photographers and many many more do not need to “run arbitrary code” it’s a professional device for many professions, just maybe not for software development and maybe that’s ok?


So it is. The gilded cage will never rival the open field.


That depends on what field one is a professional in surely?


React native has Hermes, it’s own JavaScript engine. The key is it’s not a JIT though. It actually performs better in many facets than JSC which is impressive.

So you can run your own side process, and it can be its own JS engine.

Also, I’ll repeat this, but Im a fan of the JSC only limitation, at least for now. By not allowing v8, we are least have some hedge against a… hegemony. I like Apple over Google for many reasons, and would like to see Googles extremely hostile actions towards the web curtailed. I’ll take the trade off. I’d be less happy actually as a consumer if they allowed third party browser engines.


> By not allowing v8, we are least have some hedge against a… hegemony. I like Apple over Google for many reasons, and would like to see Googles extremely hostile actions towards the web curtailed. I’ll take the trade off. I’d be less happy actually as a consumer if they allowed third party browser engines.

Similar deal with WebKit. At ~15% marketshare between mobile and desktop followed with Gecko at ~5%, it's the only real holdout against Chromium domination. If browser engines were opened up on iOS, you can bet anything that Google is going to go bananas with marketing Chromium-based Chrome for iOS and web devs will happily back those efforts, pushing most or all of that 15% over into Google's lap. At that point Mozilla will have an even more difficult time holding on as an increasing number of devs only develop against Chromium.


Not only that, if Chrome gets enough marketshare on iOS Google could do things like taking away 5-20% of a huge fraction of iOS devices' battery life just by shipping a somewhat less efficient build, plus doing the same with any embedded versions they'd manage to convince everyone to use in their apps. I mean, Chrome's already less efficient than Safari, so that much of a penalty might happen regardless, but they could accidentally-on-purpose fail to optimize new features in their iOS code to harm their only competitor in the mobile OS arena.

"But developers and users wouldn't stand for that!" OK except I can take 4-6 hours off my M1 Macbook's battery life by using a couple Electron apps and favoring Chrome over Safari. Lots of people do exactly that, maybe not because they want to, but because they need those crappy programs to get work done.


It must be alien to you that some people do like Chrome for what it offers.


And that comes at a battery life costC I’m slowly trying to move off it myself and it is hard with chrome lockin


Why must that be the case?


Safari breaks it's debug protocol all the time and is no longer compatible with Android so it's not even really an option for my workflow.


Sure, I know lots of people in our field don't have much choice to avoid Chrome on the desktop, even if they want to (and they might simply prefer it anyway, despite the higher power use and its generally being heavier on system resource use)


I absolutely can not stand Chrome. I don't like how it doesn't tie in with native services like Keychain, I don't like how it logs me into the browser when I log into a website (Google)>

Lastly Chrome is power hungry. When I need to use Chrome for work, I go through my battery almost 2 - 3 times faster than when using Safari.

I much prefer the integrated experience I get with Safari and how it feels like it fits in with the rest of the OS over Chrome which does its best to tie me into Google services.


> I much prefer the integrated experience I get with Safari and how it feels like it fits in with the rest of the OS over Chrome which does its best to tie me into Google services.

That sentence is weird to me - you appreciate Safari for binding you into using in-house Apple built functionality but you begrudge Chrome trying to do the same with Google build functionality.


Yeah, I appreciate Safari for fitting in with the rest of the OS and integrating with the services it provides.

I can easily share my passwords with other apps/devices I own, and use it as a password manager. I don't want to cede that to another service.

So yes I begrudge Google for forcing me to use their services instead.


>you can bet anything that Google is going to go bananas with marketing Chromium-based Chrome for iOS

But Apple is a Pro at PR so Google PR should not work, the only issue would be if Safari is garbage or Google attempts to use some non standard APIs on their pages - but in this case Apple could give everyone a hand by using their expsensive lawyers and doing once in their life something good and go after Google.


> Google attempts to use some non standard APIs on their pages

Google pushes their APIs and calls them standard. And then employs "developer advocates" to bash iOS and Safari.

Here's a non-exhaustive list of APIs that are "standard" even though both Safari and Firefox are against them: https://webapicontroversy.com/


What's sad is, the current duopoly actually has a nice division of labor. Google tossing any brain drippings of some random web dev into Chrome to experiment with, Apple plays the conservative role examining what is going on and waiting for things to go through a committee. The only place this breaks down is where the Google missionaries go around and lambast Apple for not rushing out to implement every half-assed feature that ships in Chrome.


OMG I never thought about it this way. That's a very interesting and quite accurate description, thank you!


> By not allowing v8, we are least have some hedge against a… hegemony. I like Apple over Google for many reasons, and would like to see Googles extremely hostile actions towards the web curtailed. I’ll take the trade off. I’d be less happy actually as a consumer if they allowed third party browser engines.

I'm sorry but I only see "I like X and I hate Y".

Worse, you want your preference to be forced on other people.


This comment could be slapped on either side of the fanboys in this thread and it would still do nothing except be inflammatory.


It's sad that the only hedge we have against the browser monoculture problem is Safari of all things.


Upvoting you because I don’t think many people in this thread understand what kind of dangerous privilege is given to third party JIT web renderers.

On iOS, third party JIT is blocked by disabling mprotect + PROT_EXEC syscall, which allows execution of arbitrary blocks of memory.

No thank you, I don’t want rando apps to have that kind of power. Especially given the trade-off is some marginally different browser experience.


This is not a dangerous privilege, given that you can already ship pretty much arbitrary code to users…


If you want to hedge against a hegemony why not allow an actual compiler...


Because the hedgehog won’t share the hedge.


But you’re allowed to run a vm for running code. Like the “ish” shell


> setting aside the arguments of whether JIT code is a security concern (it is not unless your security model is one where codesigning exists to prevent the addition of new native code)

But, it is.

1) provide a JIT compiler

2) download code from the internet

3) provide code to JIT compiler

4) ???

5) Profit!

JIT code obfuscates the inspection of the app. It therefore is a security concern.


How is this significantly different from:

1) link JavaScriptCore

2) download JavaScript code from the internet

3) provide code to JSC

4) ???

5) Profit!


I suppose the difference is that JSC can only execute javascript (an interface which is relatively self-contained and which Apple can control) and not arbitrary machine instructions?


But you can't provide a JS JIT as well.


Apple makes sure that JavaScriptCore can safely run untrusted code, but they don't apply that same level of security to their native API.


JIT's can be made 100% secure. Inspection by humans cannot be made secure, for a lot of different reasons. So it's just the opposite.

I've run bots that executed code from the internet and while yes, I've had to learn some lessons the hard way, you can have perfectly safe JITs.


If I was a malicious developer I’d just spray my app with ROP gadgets and run arbitrary native code, just somewhat slower.


I have a different view of this than most in this topic. I am disappointed, though not surprised, that Panic is abandoning yet another of their iOS apps. They’ve done it several times before and while I am grateful they’ve continued to provide some bug fixes, feature work stopped years ago.

In my view, the biggest hurdle does not seem to have been technical, but ideological/business. These old school Mac developers like Panic and Omni have had a very difficult time adapting to (or failing to) the iOS/mobile era. I know we all hate subscriptions, but continued app development and management requires continued labor so subscriptions seem like the only business option that makes any sense to me. Panic and Omni want paid upgrades but Apple has never, ever even hinted at providing that as an option. The option is subscriptions. Even on desktop Sketch, Adobe, and Microsoft are going with subscriptions. (We’ll see how Affinity does. They charge a lot more for their apps and seem to be in a growth phase so I imagine their sales at the moment are fast enough to make up for the fact that each sale is only a one time source of revenue).

Honestly, Panic and Omni and other old school Mac developers really, really need to adapt to the modern era. They’ve had years and it feels like the runway is about to end (see Omni’s recent layoffs.) Wishing for paid upgrades and writing “only AppKit apps are real Mac apps” blog posts isn’t going to change anything.


The post gives an specific technical limitation for why Nova wouldn't be possible due to iOS apps store policies. So they wouldn't be able to make a subscription version even if they wanted to?

> The biggest technical hurdle is the inability to run external processes on iOS and iPadOS. There’s just no way around it: this is required for modern web development. For example, the TypeScript extension is one of the most popular Nova extensions right now, and it launches and runs the TypeScript compiler. While we could attempt to build the TypeScript compiler into Nova, we can’t possibly anticipate and include every such tool that might be needed by a developer. We’d need to bundle compilers, interpreters, and language servers for just about every programming language in existence, not to mention tools like linters, JavaScript transpilers, and bundlers. The scope would quickly become unmanageable, and we’d always be lagging behind the latest versions of these tools.


That complaint doesn't quite make sense to me because things like "language servers for every programming language in existence" don't exist for iOS in the first place, even if you were allowed to run external processes.

To me the logical solution is something like Replit, where your arbitrary programming environment is running off-device. You want to program Go or Python on your iPad? Okay, but the actual code is executing in some cloud machine. Apple should be happy with that, and it'll be a lot easier to maintain all this stuff off-device anyway, than on iPads, where nobody else is maintaining a toolchain.

Of course that doesn't work with a "one-time-purchase" business model....


> That complaint doesn't quite make sense to me because things like "language servers for every programming language in existence" don't exist iOS in the first place, even if you were allowed to run external processes.

Yes, they do exist for iOS, they're the existing language servers. iOS is Unix on ARM, it can run most of (all of?) the Node ecosystem (including the existing LSP implementations) just fine. The problem is Apple doesn’t provide the APIs to run them, and bans apps that create their own workarounds to run them (unless they’re in the app bundle, which my understanding is allowed, e.g., that’s how something like play.js works https://playdotjs.com/).


Apple is building desktop-class processors for iPad so that it can operate as a thin network client for a Linux server somewhere? That strategy doesn't make too much sense.


It only makes no sense if you have a black/white view of the world.

Some apps will run on device and need the full performance e.g. video editing. Other apps will be a thin client.


But the iPad could be so much more. It is a highly performance platform. Great CPU, GPU, SSD ... So yeah it's just being held back by Apple


> Honestly, Panic and Omni and other old school Mac developers really, really need to adapt to the modern era.

A counterpoint: how intense would the outcry be if Panic were to make the next versions of Transmit & Coda subscription only (the Mac versions, that is, not their baby iOS counterparts)? I'm probably almost a model Panic customer -- I've paid for every major version of both at release, along with Prompt & Coda for iOS -- but even I'd balk at paying a subscription for a code editor. A paid upgrade every few years? Sure, take my money (see also: Jetbrains). But a monthly subscription for a tool that updates only semi-frequently (e.g. Transmit)?

Yeah, I'm out. Developers (and tech folks in general) are the cheapest, orneriest market. How can I justify to myself a monthly sub to Transmit & Coda when scp & VSCode are free?


> A paid upgrade every few years? Sure, take my money (see also: Jetbrains)

JetBrains has all but deprecated this AFAIK. I pay for my JetBrains tools annually and I'm perfectly ok with that. If I ever want to stop paying then I just fall back to the version of software at time of renewal [0]. I'm more than happy with this situation as it lets me get the newest features ASAP while giving JetBrains the "guaranteed" income stream. Major versions every year or so lead to a feast/famine situation for the developer and I'd rather get a feature right away instead of having to wait till they have enough features to justify a paid release.

Can subscriptions allow bad actors to act poorly? Yes, but then I can just cancel my subscription and find someone better. Maybe I'm in the minority but I don't mind subscription-based things if I feel like I'm actually getting value out of them. It lowers the barrier of entry, encourages/incentives continuous improvement, helps developers plan for the future better, and it lays stark the realities of development (if you want ongoing features/fixes you need to pay for them).

[0] https://sales.jetbrains.com/hc/en-gb/articles/207240845-What...


I'm ok with subscriptions as long as I get to keep the latest version forever. I'm not ok with being locked out of my work when I can no longer pay for the subscription.

Now if I'm working for someone else, then sure! But, say, an author, who can no longer edit their old works for a republication? Not a chance.


I pay for Jetbrains subscription as well. They offer a bargain compared to many others. There are products I pay 66% of the amount I pay to JB for far less overall functionality. I don't mind subscriptions but I am weary of some of the higher prices. I also don't want to subscribe to everything some things one and done is what I want. No updates just buy it and move on and it continues to work.


Yes. Though I recommended subscriptions, I do have a price limit. I really like the interface of Cinema4D but it’s over $100 a month! No thank you.

I also think there just are hard limits in what’s a sustainable business. E.g. Small, indie, bespoke notes apps probably can’t support even one person long term regardless if it’s a one time purchase, subscription, paid upgrades, or any other pricing model.


Unfortunately this model can't be implemented on iOS

Your app updates go to everyone, even if they've stopped paying their subscription.

So it becomes really tricky to sell a subscription on iOS where, once lapsed, the user can continue to use the latest version available at the end of their subscription.

One way to do this is to have feature unlocks based on a timeline (Working Copy, an iOS git client, does this). Where users continue to receive a subset of features but some new features are locked behind a yearly upgrade payment. This requires littering your codebase with checks that certain features are unlocked based on the user's latest yearly purchase.

I'd love official support for the JetBrains / Sketch subscription model on iOS. As a developer, I would feel bad locking my paying users out of features they paid for just because they stopped subscribing. But I also really can't be bothered spending months developing a robust in-app-purchase feature locking mechanism to work around Apple's limited set of purchase options


I completely agree with everything you've said. The big problem (as I see it) is even if there was a way for Apple to provide the infrastructure for "hasPaidForSubscriptionInPast" or "lastSubscriptionActiveDate" or similar, the limiting fact is that Apple only allows 1 version of your app to exist in the app store (under the same identifier, obviously you could release seperate apps). The whole thing breaks down if you need to ship a nasty bug fix for a previous version.

Sure, Apple could stop letting users get updates if they stop subscribing but then you have no way to ship ANY updates to that user on an older version. I'm honestly not sure if JetBrains ever ships bug/compatibility fixes for older versions but for apps that are half-free/half-subscription this would be a huge problem. How can I convince people to restart their subscriptions if from their perspective the app has been stagnant since they stopped subscribing? And/or do they even have the option to go to the latest version and just use the free features? Now we are back into the "littering your codebase with checks"-hell that I agree would be terrible to maintain. I'm not giving Apple a pass in the slightest, but I'm having a hard time coming up with what the "gold standard" would be where you could support something like this.


Adobe had an intense outcry when they moved to a subscription model, and it worked out great for them. You are basically changing your customer base. People who would happily spend $20/month for a good code editor will love the change to a subscription model in the long run, because it lets you invest more effort in making the product great. And I think there are a lot of those people - if you spend hours and hours every day programming, and you make good money at your job, aren't you willing to spend money to use the best tools? People who don't want to buy a subscription will be angry, but in a couple months they won't be your customer any more so it won't matter that they're angry.


I'm probably missing it. I've used Photoshop since version 1 and owned a personal copy since version 3 (mid 90s). When new features were added i'd evaluate if I wanted them. I generally upgrade every 2 versions for $199 or which is ~$50 a year.

Subscriptions raised that to $240 a year, a 480% increase. Further, since subscriptions were added no features I want have been added. But, I can't just stop and use some version, stop paying and the software stops working.

I see no evidence that Adobe's subscription model has let them invest more effort in making the product great. In fact it's the exact opposite. Before they had to add some features to entice you to pay for the upgrade. now they can just do nothing because you're "renting" the software.


stop paying and the software stops working

This is the major problem. I do know indies who have used workarounds just so they aren't held hostage. I wouldn't use subscriptions for my own personal creative work. So, yes, the customer base is indeed changing- to those who mainly work for others.


Adobe's products are not trivial.

And yet they have ported them not only to iOS but also to M1.

Just because you don't see changes in the UI doesn't mean there hasn't been significant engineering effort spent.


Porting is a feature, and they already charged for it under the pre-subscription model.


> I see no evidence that Adobe's subscription model has let them invest more effort in making the product great. In fact it's the exact opposite.

It's hard to define cause and effect, but Adobe's R&D spend is definitely increasing:

https://www.statista.com/statistics/794840/research-developm...


Because their competition is catching up.

Figma is crushing Adobe. Alternatives like Affinity are eating much of the casual user base.


Figma is crushing Adobe XD, not Adobe. But we will never know the exact reason for the increase in R&D spend - but without the increase in revenue they would not have been able to afford this investment in R&D (R&D is approx 60% of their revenue).

Again it's impossible to define cause and effect, but OP's claim that they are investing less in product after introducing subscriptions is spurious - R&D has dramatically increased almost exactly in line with revenue.


> Adobe had an intense outcry when they moved to a subscription model, and it worked out great for them

That remains to be seen, actually. There used to be an "Adobe pipeline" where kids in high school and college would pirate Photoshop, become familiar with it, then be ready to use it when they got a real job. That pipeline shut down when Adobe moved to a subscription model: now all the kids use Figma instead. It'll take a little while to bubble up, but eventually all these design shops are going to find that their new hires know how to use Figma and not Photoshop, and start wondering whether Adobe software is worth the cost on top of retraining.

None of this shows up in quarterly reports but it's a real phenomenon and it will catch up to Adobe sooner or later.


>now all the kids use Figma instead.

This is only true if in your entire world bubble Photoshop only exists to design mobile UIs. Figma, like Sketch before it, is a simply a part of Photoshop's total market. There's no replacement for Photoshop yet for creative agencies, photographers, and content studios.


Give Affinity Photo / Designer a try. It's a fantastic photoshop replacement, many of the keyboard shortcuts are even the same.


Yeah I've seen designers switching to the whole suite.


nothing is stopping any of these kids from pirating photoshop in 2021


> People who would happily spend $20/month for a good code editor will love the change to a subscription model in the long run, because it lets you invest more effort in making the product great.

That’s almost double what I pay for Jetbrains’ stuff and I figured the forced subscription from Jetbrains was 3x what I had been paying by skipping 1-2 versions between updates.

You’re right about changing the customer base though. All the suckers that can’t figure out prices just when up 3-4x seem to love subscriptions and financially flippant people like that are probably the best customers to have.

And Jetbrains is the only subscription software I’ve used that doesn’t keep adding bloated trash features to justify their subscription.


For some crazy reason Photoshop users are so crazy loyal to that product they're willing to pay for it. I'm totally guilty of this, just yesterday I needed to scale and crop an image and I had to download the whole Creative Cloud installer to my new laptop and install Photoshop. I'm positive I could have done this in a number of different tools even built into the OS, but for whatever reason I'm just hooked on Photoshop.


FYI If you’re on a Mac you can do that right in Preview


Some people have been working with Photoshop for decades, it's integrated into industry wide workflows. For me some complex 4-key shortcuts (the legacy save for web claw) are second nature. It's the devil we know very very well.


> [...] but even I'd balk at paying a subscription for a code editor. A paid upgrade every few years? Sure, take my money (see also: Jetbrains).

Funny you bring that up - Jetbrains only switched to its current model after a massive outcry. Their original plan was to completely brick your IDE when your subscription lapsed. That did not go down well[1]. Fortunately, they abandoned the plan within a day

1. https://news.ycombinator.com/item?id=10170089


There is an amazing plugin for Visual Studio that makes searching blindingly fast almost instantaneous and the price was $10 for the longest time (now $20) and trying to get developers to buy that thing was a chore. They didn't want to pay for any software tools. This is in the US not somewhere that $10 is a huge price and yet they balked. I have to ask why anybody who makes a living writing software is so repulsed by the idea of paying someone else for software especially something cheap and time saving.


Cause that's free in Linux and you kinda resent paying extra for something that should be built into something like visual studio. And now even vscode does it out of the box.


What does "that's free in Linux" even mean in this context? You're talking about an IDE plugin that's "free" in an operating system?


In Linux updatedb and locate are built in so you can do the search on terminal and it's instant so putting a gui over something like that should really be part of visual studio imo to begin with.


I think Nova is already on a somewhat similar model. You can buy it and use it forever, but you only get support/updates for a year. A subsequent year is (I think) $49.

If iOS supported this model I think most devs would be ok with it, pay upfront X amount, and then a slightly smaller amount yearly for continued support/updates/development. I wonder if we'd have more 'pro/dev' iOS apps if the App Store supported models like this?


Jetbrains default way is a subscription model that leaves you with a one year old "perpetual fallback".


If you thought scp and vscode were perfect replacements for transmit and coda, they already lost ;-)


The problem is that many people, even in developer circles like here on HN, are still very negative when it comes to subscriptions.

From a consumer point of view that's understandable: Everyone wants to keep their recurring costs low.

But from a developer point of view, this is an antiquated way of thinking about software. Software that is not actively maintained (which is expensive) eventually stops working. Even more so on platforms like iOS, where you're beholden to the whims of the platform OS. So you need recurring revenue to offset that maintenance cost.

I wish consumers would understand this better.


In the great subscription exodus of 2018, about 10-15 of my apps moved to this "sustainable" subscription model. Only two are still being maintained with proper new features and improved (those would be 1Password and Jetbrains tooling).

All the other apps pretty much stopped feature work and are now mostly more broken than they were before switching to the subscription model. There's an occasional update, but it's all pretty much dead.

So out of that deal I (as a user) have gotten pretty much nothing - the developer is constantly taking my money with nothing to offer in return. If I stop paying, they'll take away the app I've paid for.

Compare this to something like VMWare Fusion or Parallels Desktop model - I pay license every year to get support for new OS and new feature. But it's MY choice whether I want to pay and if the updates actually offer me VALUE for the money.

And this keeps us honest - honest money for honest value delivered with incentive for developer to keep maintaining their software and not just sitting on their rent-seeking vendor lockin. It seriously sucks that Apple and Google don't allow for that sales model in their stores - it makes the market worse for all of us.


Could you name and shame some of the apps your are talking about? I pay for 1Password and JetBrains and similarly am happy with them but I also pay for a number of other subscriptions and I haven't felt the same "resting on their laurels" that you are describing.


Out of top of my mind - Evernote, Lightroom on Desktop. A PDF reader on my Android phone (still doesn't support dark mode, years after introduction). Boostnote, another note-taking app. LastPass also doesn't really justify their costs considering their poor engineering.


Sincerely, what do you mean by including Evernote? You can see here they’re pretty busy. Aren’t they also doing a bunch of behind-the-scenes re-architecture? https://help.evernote.com/hc/en-us/articles/1500001700002

I haven’t been a user for years; I’m just a perplexed bystander.

Lightroom has some updates but I’ll agree the pace is slower. They are a market leader for certain kinds of commercial photographers that will happily pay a couple hundred a year for a critical business expense. I wish they’d see more competition.


Evernote is one of the few that might at least have a legitimate case for having a recurring monthly fee since ostensibly you're paying for cloud storage and synchronization across all of your devices.


I really want to move out of Lightroom CC. However, there are no competitors out there that has cloud sync on my Mac and iOS devices.

Hoping that Affinity can come up with something. Even if it doesn't sync, I would still get it.


Boostnote is still free and open source. They also have a paid version but there is no real reason to switch to it.


>So out of that deal I (as a user) have gotten pretty much nothing - the developer is constantly taking my money with nothing to offer in return. If I stop paying, they'll take away the app I've paid for.

That's a feature, not a flaw.


I fail to see how this is a feature for me as a user in any way.

I get it - developers want to rent-seek and suck on that sweet passive income without actually having to constantly provide any value for users. But from a users perspective, I get nothing, especially when the response from developers is to just stop development.


It'd be acceptable if the developer in turn were to refund me all the money I've given them when I was subscribed.

I'm left with nothing, they're left with nothing. That's fair enough.


A feature for the seller, not for the user. We've moved on from personal computers to computers as a service, but it's getting pretty clear who they're serving.


Just speaking from personal experience, app updates are generally bad things aside from compatibility fixes. Either they're adding a feature that I'm not going to use because I was happy with the app already, or they break something. Probably 25% of the apps on my phone are now decoupled from the Play Store because the developers either broke them or sold out to an adware company looking for a new vector.


I wish businesses would understand that inflicting subscriptions on consumers is a lot more onerous than they think.

A subscription means one has to use the software they paid for. You can't have it sit on a shelf for those once-every-few-months use cases. It means having to manage a million stupid business relationships with vendors that one doesn't want to have to deal with. It means trolling credit card statements after-the-fact to make sure the subscription was actually cancelled when that comes time, and it means dealing with the cancellation process (and whatever dark patterns the vendor throws down) on a fairly regular basis.

The old paid-updates model isn't "antiquated", it's customer-centric. Subscriptions are the opposite: customer-hostile.

The service worker earning minimum wage can't afford a million subscriptions. Your subscription means they are a lost customer, and it means they cannot invest in their future in a way that they can effectively control their costs. It's a great way to get your stuff pirated.

Photoshop is a great deal at a fixed cost of $1000 or whatever it was, because when I needed it it was there for me and I knew it would solve my problem. Photoshop cloud is a fucking rip off, I'm not going to pay their ridiculous monthly fees, nor deal with their onerous subscription terms, for an app I use maybe once every six months.

I don't want to live in a future where I am beholden to a million rent-seeking wantrepreneurs because they forgot how to finance their business the old-fashioned way, or because they are afraid of being "antiquated"

The SAAS mentality really, really, really needs to die.


> Photoshop is a great deal at a fixed cost of $1000 or whatever it was, because when I needed it it was there for me and I knew it would solve my problem. Photoshop cloud is a fucking rip off, I'm not going to pay their ridiculous monthly fees, nor deal with their onerous subscription terms, for an app I use maybe once every six months.

How is paying $1000 better than paying $32 every six months and getting access for the entire month? $1000 better if you'll use it for 30 months without interruptions but it sounds like that's not your use-case.


Photoshop is $10 per month in the photography plan on adobe's site, but only on an annual basis. MSRP and business users pay $30+ a month by itself. In either case where are you getting $32 every six months?

I guess the photography plan is competitive, but it's still a subscription. I hate paying monthly fees for anything, especially for something I don't use. Much prefer to pay a higher fixed cost and finance that on my own... and yes I preferred this when I was a poor student; I bought a lot of expensive software back in the day by saving what I could from my $12/hour (in 2004 money) day job.

And believe it or not, being able to open the program and have it simply work, without going through a bunch of login/update/subscription hassle, is really important for creativity. Technical crap regularly derails my creative process when I'm manic with an idea, so the possible premium is worth it.


$10 is annual which is not useful when you need it once every 6 months. You wrote that you need Photoshop every 6 months. It means that you can pay $32, get access for a month and cancel subscription afterwards.

I get what you're saying, but my point is that $1000 is ludicrously expensive when you only rarely need that software and in this case cheap subscription is a good option. I would not consider $1000 for Photoshop at all, but $32 is something I could pay if there's no free or cheap alternative.


The process of activating and then deactivating the software is too much, in the heat of the moment.

Art is weird. I have a perpetual license for Lightroom. It's great because I can click the LR icon and boom, there it is, ready to download my photos and serve me. I don't have to measure my photography out by it, don't have to consider whether or not my LR subscription is current before I pick up the camera, I don't have to hassle with it when I need something... it's simply there.

Same with music: if an idea pops up in my head, I can click the FL-Studio icon and... there it is! Ready to go. I have a couple of plugins that need to periodically reactivate interactively, and in all honesty they simply don't get used. In the moment even load times matter, I'm not going to sit around and finagle with logins or activations or anything... I'll just move on.

I purchased a data recovery program that used to be called R-Studio a little while ago. It's great software, I used to pirate it back in the day, and its demonstrably better than most of the free data recovery apps out there. I've used it once, but again I am confident that it is there and it will run, and that I can confidently offer a data recovery service/favor to friends or customers without awkwardly futzing about or checking before-hand as to whether the software will work or not.

These are all cases where having software ready-to-go is better, and a subscription just gets in the way. I could even argue that having this stuff on-hand helped me get through some really lean times where even $10/month was a difficult price to pay.


I wish it would as well but honestly I think a lot of vendors treat their software as gym memberships - and hope that customers forget about that seemingly innocuous five dollar fee every month on their credit card.


You're completely right. I can't count the number of paid apps I bought and then barely used. Two dollars here, five, sometimes ten. Thing is, I can play that game now, or tomorrow, or ten years from now and it still cost me the same amount.


>The SAAS mentality really, really, really needs to die.

It won't. This is evolution. People are voting with their wallets, and subscription providers are making the money while "pay once and forget" people are going out of business one by one.

Or let me put it another way: Looking at the world, habits of people around you, and the software pricing strategy landscape, which method do you see "surviving"? (not asking which one you want, but rationally, which one has the demonstrated advantage?)


It may be, but wider technological trends are taking everything good about computing out of the picture. What good is computing for all when the computing all sucks?

You call it an evolution, I call it a cycle. It's arrogant to think that SAAS' time in the sun will be forever. Remember mainframes? When the pendulum swings back, the power users will be ready for it.

There are already cracks in the foundation. Internet fragmentation, increasingly onerous data regulation, sloppy 5g rollouts, societies with regimes that like to cut net access... hell there are even some new WiFi vulnerabilities that are on HN today. One day some business revolution is going to come along and eat SAAS's lunch... I can't wait to cruise the net on a highway paved with the corpses of dead subscription companies


> I wish consumers would understand this better.

No. I routinely buy software and lifetime subscriptions in the $10 to $100 range without batting an eye, but if I had to pay $5 a month for every piece of software or service I use, I would spend thousands of dollars every single month and it'd be ridiculous even if I'm lucky enough to be able to afford that.

There's a place for recurring subscriptions and a place for fixed priced software that is supposed to work for eternity, even if without upgrades.

Don't blame the consumer if they don't want to pay $5 a month for a standalone app.


What grinds my gears is when an app goes subscription and then jacks their prices. Fantastical 2 was a $50 one-time purchase. Fantastical 3 is $60 per year.

If you switch to a subscription model, your new price better be no more than your expected amortized purchase price. If you use to launch paid major version upgrades every 2 years at $100 a pop, your rental price needs to be less than $50 per year to make up for the lack in functionality. Don't try to be a used car salesman and emphasize the "low monthly payment" when your customers are used to considering the total annual cost.


This sums it up. Even for people who make great money, how many subscriptions do devs really think we want to have?


Not many, but that just reveals a more painful truth - how much time do people have to invest in using apps?

The answer is not much, that’s the real bottleneck. You can’t expect people to pay for what they can’t use, and we just can’t use all that much software because we don’t have time for it.


Very few people object to paying for updates as an option.

The expectation is that if you got a version now and it works fine, then you should be able to keep using it without paying. It's only fair, because after all developer costs here are exactly zero. If later on you see an update with something you like, then you pay again.

That's the model a lot of Windows desktop software is rapidly converging to and it's a good fit for subscriptions, as a convenience option. In comparison, any software that drops completely dead once you stop paying comes across as a rip-off and quite rightfully so.


I wish consumers would understand this better.

Developers aren't consumers, they are producers. And producers understand that durability and longevity are more important than enabling the rent-for-life, own nothing, subservient economy.


I understand what you mean. I also think that durability and longevity are very important. But wouldn't you agree that those qualities are very difficult to achieve and thus expensive?

Part of the problem is that software development is still in its infancy in my understanding. Average software quality and reliability just isn't very high.


But wouldn't you agree that those qualities are very difficult to achieve and thus expensive?

I don't think I would agree with that. With software, durability is the default. I can write a program once, and run it on the same hardware until the capacitors fail. It takes active intervention in the form of forced upgrades and planned obsolescence to make software "decay."

For a producer as I'm using that term in my previous comment, software is a tool. If I buy a physical tool, I will pay up front for fine craftsmanship, but from there on that tool belongs to me, and I expect it to last as long as the care I give it allows. I expect to do the same with software. If a software vendor wants more money, they need to provide more value in return.

Note that this does not mean I would never pay for subscription services, but I will not stand for companies trying to blur the line between service and tool.


First comment in this thread that's hit the nail on the head with regards to why software requires maintenance. After all, if I write an algorithm, how on earth does it just stop working after a while?

Fixing flaws is a separate and legitimate concern, but whether feature or security, this is solved by the idea of a warranty where the purchase price includes the product, and some time-limited obligation to ensure that it is fit for purpose. Once that's up, it's up to the developer to determine whether it's worth their while continuing to support it - but at least the end user can run it on the platform they originally purchased it on. Theoretically.

Then comes the hiding-in-plain-sight pernicious moneymaker mentioned: platform planned obsolescence. It comes in many forms, forced upgrades as mentioned, but also things like "turn on auto-updates because that's just what you do these days", "oh this is a 32-bit app so you can't run it anymore - pester the developer". Then there's all the developer-side stuff like "32-bit apps don't work anymore, update", "Oh neither does the older SDK, update that too", "Oh didn't we mention there's this new screen shape and you have to add support for that too", and "oh if you don't do all this stuff your app will disappear from the store in X days". What about the less obvious stuff like "this new SDK/toolkit/platform library is the way to build new apps! There's not really a clear upgrade path, but it's the one true way. Until the next one."

It's next to impossible for developers to solve this problem because it is an externality imposed on them by platform vendors. It is the main reason why software, in the short term, needs to be maintained. Of course, long term you expect that big developments and innovations would result in some level of obsolescence, but the devices and software industries have an incredibly fast rate of churn even for the pace of innovation. It's very interesting using systems from 5, 10, 20 years ago just to see how far we've come (or in many cases, how far we haven't).

Apple in particular has driven this by consistently eschewing backwards compatibility, constantly churning their SDKs, and continuously breaking older platforms. It's no surprise, they have two strong financial incentives to do so: if new software requires new Apple hardware, that's new revenue for them, providing they can convince us to buy it. If new hardware requires new software, that's new revenue for them thanks to their app stores. If they can get developers to move to subscription models well, that increases the recurring revenue via IAPs. Force them to use your payment and accounting services too, clipping the ticket along the way? More revenue!

We're the suckers though - we've been conditioned so hard to expect their stuff to be somewhat fragile, expensive to repair, and severely limited in lifespan that we almost like it. You dropped your phone? Oh the glass on the back has all broken. That's integral to the chassis, so it's a really expensive repair - over half the cost of a new one. Might as well treat yourself. No don't listen to that Rossmann guy, he's obviously <unsafe/counterfeit/untrustworthy>, eyes over here buddy, look at my pretty blue shirt. Oh hey, if you go to him Face ID won't work, because a nation-state actor might have installed an intercept on his dodgy counterfeit screen. You want to keep secure right? Anyway what were we saying again? Oh yeah, the new one. Oh you also ran out of storage? It's only been 5 years, the base model still has the same amount, so why don't you pay a bit more and get the upgrade. After all it only makes sense that you'd accumulate stuff over time right? What did you say, SD card? RAM stick? nVME SSD? No no no, they're way too slow/insecure/low-tech/dangerous to work with iPhone/Mac. No no your friend who put one in his computer has a PC - these are Macs, entirely different type of thing. Of course software needs to be maintained, of course it does. How could it possibly work on your new machines, how on earth! I digress...


The problem is that many people, even in developer circles like here on HN, are still very negative when it comes to subscriptions.

It's always going to be that way, and that's okay. It's still the right move for professional iOS tools to move to a subscription model. Some fraction of your user base will complain and refuse to subscribe. But if you actually make a good tool, you will fairly quickly see an increase in revenue, which lets you invest more in making a good product. A bunch of people will periodically complain on HN that they don't like subscriptions and it's not too hard to just ignore that and move on.

Don't look at 10 people complaining on HN and conclude "this must not be the best business model".


As a consumer when I buy a product I expect it to be a finished product with minimal bugs. If it does have bugs it should be remedied/fixed and I shouldn't have to pay for it (similar to a warranty). If there are new features, I'll pay for them if I want them.


That's only feasible if the platform is relatively stable. The problem, especially with 'modern' platforms, is that it doesn't even remotely work that way anymore. On iOS and Android, for example, they make breaking changes nearly every major release of their respective platforms. So for an application to look like it's standing still (i.e. just to keep working from release to release) takes a non-trivial amount of work.


This is one the larger reasons iOS (& android) gaming is such a vapid wasteland of exploitative f2p trash.

https://variety.com/2019/gaming/features/android-ios-apple-g...

The 'Pay Once' model used for quality self contained games that you see on windows or consoles are unsustainable for constantly incompatible os updates.


Well iOS Transmit still works just fine, 3 years after it was discontinued…


I hate when software changes. When I'm buying software, I want for it to stay as it is. All new features don't bring anything but bloat. All I need is bugfixes and security fixes. It does not require a significant investments. So my ideal software is when developer spends some time, builds a program, sells it and spends a little time keeping it alive.

There are some exceptions. For example Intellij Idea should support new Java versions which might require significant development. But those are exceptions (for example I hate almost all new Intellij Idea features, thankfully most of them could be disabled).


> Software that is not actively maintained (which is expensive) eventually stops working.

That's only true in the context of the environment the software is in. The environment is very hostile to supporting old versions of software. We keep pushing out operating system updates and updates on linked libraries and so on, mostly in the name of security and feature creep.. and software that worked perfectly fine at one point are gradually murdered. It's kind of a tragedy.


What possible advantage do subscriptions have for users over license upgrades? The incentives of license upgrades are much more tuned towards developers adding meaningful features, and also more tuned towards developers finishing development on a product when it is mature. Beyond that, license upgrades allow users to actually keep what they have paid for.

I'm convinced a major reason Adobe made the switch to a cloud subscription was because they recognized their products were maturing and the window was closing on locking in recurring revenue before the licensed product was so mature there would be little incentive for users to subscribe.


All these points are correct, but you leave out the counterpoint which is that once a company has recurring revenue, the incentive to update the software in ways that benefit the existing users can be lower.

Increasing the size of the user base becomes a priority over refining service for existing users, and that often means developing features that existing users don’t need or changing the UI in ways that make things easier for new users but worse for power users.


>>Software that is not actively maintained (which is expensive) eventually stops working

Funny because I know many many many business that run entirely on old unmaintained code, code that can not be maintained because upgrading it will break things, will make things stop working.


> Software that is not actively maintained (which is expensive) eventually stops working.

I don't understand this mentality. I can run an 8 year old version of nginx just fine. Why would it stop working?


Apps keep working for years though. On Android anything since KitKat still works.


If you're talking about apps via Google Play, only for some kinds of apps (ironically, the ones that make minimal use of platform specific features tend to fare the best... typically games) Also, Google is actively culling apps from the app store that don't upgrade to recent Android SDKs which often forces additional development to make the migration. For many apps, that means they will die/disappear since the economics of mobile don't justify their continued development.


There's a tool I use called Dash for quickly looking up documentation of coding languages and frameworks and it works offline. It does not have a subscription model, but it does have very frequent paid upgrades; without charting them out, I'd guess they are roughly yearly. I grumble every time because the upgrade cost isn't cheap and the updates rarely have groundbreaking new features, but then I consider how much use I get out of that tool and hand my dollars over. But the times when money has been tight or I've just been lazy and haven't upgraded when a new release comes out, the old one continues to work just fine. I'd much rather see Panic and other developers use a model like this; trick/incentivize me into re-buying your product every year without calling it a subscription or breaking my old versions.

I used Coda pretty much since its launch and paid for upgrades to Coda 2 and Nova. I've built my career around these editors, so it's kind of scandalous how little I've paid Panic in proportion to how much money I've made using them. I would be fine with them having more frequent paid upgrades. But the day they try to rope me into a forced subscription model is the day I start looking at alternatives (which is too bad, because the last time I looked at the market when Coda 2 was getting a bit too long in the tooth and it was looking like Nova was never going to actually be released, it was clear that there are no serious alternatives for Mac-native code editors out there except for maybe the crusty old BBEdit, which I do not have fond memories of).


The problem here is that Apple does not support that license upgrade model for iOS.


Sorry. Subscription isn't for me. I don't want to be in a jail of non ownership as an illusion.

Please stop calling this as modern model. This is modern daylight theft


> panic is abandoning yet another of their iOS apps

Exactly. I don’t understand why anyone would buy their apps. For the money you’ll get an app riddled with bugs, zero useful updates that actually fix those bugs, and near zero support from panic. It happens over and over and over again.

I guess I thought the saying started with “fool me thrice” because it took that long for me to figure it out. :/


I agree completely. Panic have, to be blunt, screwed me over about four times with various pieces of software over the last decade on both iOS and Mac, and Omni are not exactly much better. As cool and shiny as a lot of their software looks, I cannot trust them enough to buy the thing when I know that they will abandon support at the drop of a hat.


Many developers just release new apps as "upgrades", or lock new features behind in app purchases to remedy the no-upgrades problem. I think that only cannot be the reason. I think there's just too many free alternatives in code editors and you have to be really amazing (like jetbrains) to be able to make users pay.


Can you point to indie developers that have been successful developing iOS apps, etc?

The likes of Microsoft and Adobe, whose strategy isn't to sell products as much as it is to establish and maintain market control, are not good comparisons.


Omni in particular started off very strong on iOS but failed to adapt their products.

Their failure to support the system file sharing / iCloud for so long was a killer for me. They were simply technically wrong about how to do it.

There are many other ways in which they simply failed to adapt as the model changed, which I find perplexing.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: