We’ll stop selling our Code Editor app for iOS soon
panic.com
panic.com
> 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.
> 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
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.
try to think about it as a strong disagreement.
(EDIT: i wonder who downvoted this comment now ;-)
https://news.ycombinator.com/item?id=16131314
I wish I could downvote downvoting
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))
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.
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.
I don’t think accounts can be deleted? I tried once and was told no. :(
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?
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 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.
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 want their customers to buy both. 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.
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.
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?
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.
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.
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.
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 bad on HN, and it's much worse on other sites.
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.
Apple regularly leverages operating system calls that 3rd parties do not have access to.
Every business is just a monopoly if you consider it alone, and a single 7 Eleven has 100% marker share among its store.
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.
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.
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.
> Until/unless the two companies are caught colluding against consumers
I believe non-Google Android phones are quite popular outside of the USA.
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.
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.
Until you can find a judge willing to endorse your definition of "market", it's not just "Apple apologists" but "legal precedent".
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.
(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.
Apple just doesn’t offer cheap hardware.
Does Porsche have monopoly power just because they don’t offer low-end models?
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.
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.
0: indeed, can, without stupedous efforts of reverse engineering that they actively oppose
> 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...
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?
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.
>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.
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.
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.
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.
This sounds a bit like saying Ford has a monopoly on the Ford car market - true, but not how anti-trust cases work.
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.
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
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.
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.
Apple isn’t even a majority of the market, so laws on monopolies don’t readily apply here.
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.
1) link JavaScriptCore
2) download JavaScript code from the internet
3) provide code to JSC
4) ???
5) Profit!
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.
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...
https://arstechnica.com/gadgets/2021/05/apple-brass-discusse...
So it's impossible to have static analysis work in all cases.
(Both languages have fairly well-known and reasonably widely used alternative implementations that include JIT.)
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.
That rule is honored more in the breach though
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.
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.
"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.
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.
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.
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.
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 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/
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.
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.
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.
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/
“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.)
It is if your security model includes things like parental controls and payment processing.
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.
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.
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.
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.
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.
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...
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.
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.
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.
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.
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.
That's a feature, not a flaw.
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.
I'm left with nothing, they're left with nothing. That's fair enough.
Hoping that Affinity can come up with something. Even if it doesn't sync, I would still get it.
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.
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".
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.
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.
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.
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.
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.
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?)
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
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.
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.
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.
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.
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).
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.
I don't understand this mentality. I can run an 8 year old version of nginx just fine. Why would it stop working?
> 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.
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....
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/).
Some apps will run on device and need the full performance e.g. video editing. Other apps will be a thin client.
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?
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.
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...
Figma is crushing Adobe. Alternatives like Affinity are eating much of the casual user base.
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.
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.
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.
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.
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.
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.
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 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.
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.
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
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.
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?
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
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.
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.
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).
Please stop calling this as modern model. This is modern daylight theft
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. :/
People know this going in of course, but it doesn’t make it any less of a shame, especially now you can spec out an iPad Pro with the exact same specs as the laptop I use for work.
https://en.wikipedia.org/wiki/Surface_Pro_3
Specifically because I'm looking for something to run Blender (blender.org) on. The iPad Pro could only run it via Sidecar from a real Mac (eg tethered laptop or similar).
Android has an ancient version (circa ~2013), which isn't a real option.
Could have spent money on a new Surface Pro, but trying things out on an older model seems to be working so far. :)
From my point of view, there are more options than just iOS and Android for tablets. Apparently Linux can be installed on Surface Pro's too, though that's a future "maybe" item for this one.
https://www.lenovo.com/us/en/laptops/thinkpad/thinkpad-x/X12...
Depending on what you're after, a modern 2-in-1 laptop like the Lenovo Yoga (they have a range), HP Elitebook x360, or similar might work well too:
https://www.lenovo.com/au/en/laptops/yoga/yoga-2-in-1-series...
https://store.hp.com/au-en/default/business-laptops-eliteboo...
There's the root of the policy decision. If one device did everything, why would you buy two? Apple needs you to buy the lap AND the tablet AND the phone and maybe also the watch. Oh and they would also prefer you buy more every year, none of this decade stuff.
Or maybe, it's just as Apple says - iOS/iPadOS isn't MacOS and they're not meant to function the same way because they're intended for different use cases and security models.
No doubt they'd love for you to buy one of everything, but your chafing at the limitations of Apple's platform strategy isn't an indication of an ulterior motive, so much as an indication that Apple's platform strategy doesn't meet your needs. Alas.
If you buy an M1 MacBook Air, you spend $1000 and you get pretty much an amazing laptop that does everything except flip over and let you draw on the screen.
If you buy an iPad Pro - the new one with the M1 chip - then you have to spend $1100 to get the 13" model, which has less storage than the MacBook. And that's just the tablet - you now have to spend $350 on a keyboard case to actually use it like a laptop. You can also use a pen input with the iPad, which you can't with the MacBook, but that's another $130 please. So you can really jack up the price of the iPad with accessories intended to give you laptop-like capabilities.
So I don't buy the idea that either device is held back so you have to buy both. The device they're clearly positioning as a do-everything machine is the most expensive one in their lineup.
A) sandboxing, which they shouldn’t change or at best streamline to allow better app interoperability (the current share approach is laughably bad)
B) what is allowed on the AppStore. This is purely a policy issue. Why isn’t there an isolated XCode that at least lets me develop iPad apps? The MacBook Air is a $1000 work horse, the iPad is a pricey web browsing machine/toy. Save for, say artists and even they are extremely limited. Want to create a 3D model using several apps? Good luck with that
For you. But for the majority of the population it is.
Office, Mail, Browser, Photo Editor etc is typically more than enough for most.
This myth that "the average consumer doesn't need x" is pretty pervasive, and it's a pretty diminutive way to look at computing. The user doesn't need a graphical interface, but we still give it to them anyways. They don't need excessive, timewasting animations cluttering their UI, but iPadOS provides in spades.
Either way, I'm expanding my blanket ban on recommending Macs to include iPads. After trying out one of the new iPad Pros, I honestly can't even say it's a better choice than a shitty 2014 Macbook Pro. The ecosystem still has a long ways to go before the iPad feels like a natural part.
It really isn’t this.
But.. they just aren’t great for the same kinds of professional software that works well on the desktop. It’s not about Apple’s policies.
It that the Mac is just better for desktop style apps for obvious reasons.
I do think that this can be overcome in the end by really figuring out how to design for the platform, but we are nowhere near that today.
I have bought various editors including Coda, and I also bought prompt (which Panic is still working on). I use prompt regularly for impromptu server maintenance or quick diagnostics, but I never use the editors. This is all about what the devices are good for and nothing to do with policies.
No, the original comment argued that the limitations are the only reason a class of professional software is not successful on iOS, which is certainly false.
> Apparently, the iPhone worked just fine as a code editor
Obviously it doesn’t work as well as a Mac.
Few people would choose to edit code on an iPhone where a Mac or Linux machine was available instead, so no it doesn’t ‘work just fine’.
Here's another example: you cannot selectively block JavaScript in an iOS browser.
On Android/MacOS/Windows/Linux, you can use a browser extension like Noscript to only run trusted or necessary JS.
Safari only provides a coarse on/off toggle, and Apple forbids any browser that does not use their proprietary WebKit framework. None of the App Store content blockers allow seamless fine-grained control like every other platform supports.
You list a bunch of ‘examples’ - but what are they examples of? Nobody disputes that Apple controls iOS.
Apple's devices cannot adequately protect my privacy, because of their efforts to prevent competitors from making products in any of the markets that they participate in.
No they aren’t. They are just statements about iOS’s design. You don’t make any case for how they make a anything worse.
> Apple's devices cannot adequately protect my privacy, because of their efforts to prevent competitors from making products in any of the markets that they participate in.
This paragraph is gibberish. You might want to edit it.
Apple has targeted iPadOS to casual computer users who mainly consume content and require light content generation and editing capabilities, and as it turns out there's a HUGE market for that. But it's not for me. I'm a developer by profession and my hobbies are music and photography. All of these push the limits of what iPadOS is capable of delivering - but MacOS delivers with aplomb.
And now thanks to Catalyst if there's some must-have iPadOS app I want to run then I can run it. The MacBook Air may be the most versatile machine Apple has ever made for users like me.
The iPad is already so versatile, adding the ability to do my job or just to update a small side project every now and again (waiting at the airport etc).
I understand the hesitation in doing so, but its so frustrating. Given that the iPad now has a keyboard and mouse if you want it & a CPU that we know is fast, just unleash it!
So basically my current 13" MBP M1 with a detachable touch screen.
Main problem for me would be the iPad's single port.
Just a warning for users and devs alike: Nope, it probably won't. Apple's track record for backwards compatibility isn't terrible, but it's also not flawless. I had an app in the store from 2011 until the end of 2017.
iOS 14.5 broke this app for some reason (I don't know why). No warning for users and if Apple follows some kind of SemVer, it's weird that a minor version breaks an old app.
Note for devs: Find a way how people can export their data from the app even if it's not working anymore (for example, by writing to the Documents folder and exposing it to the Finder)
Note for users: Assume that an unsupported app can and will break in an unpredictable way. Backup your data regularly.
>Note for devs: Find a way how people can export their data from the app
At the risk of meandering off-topic; this is one of my all-time bugbears with software. Or, rather it's half of one of my all-time bugbears. I'd complete it by adding "Find a way how people can import their existing data into the app"It never ceases to amaze me how many developers produce apps which have obviously had a lot of time and thought devoted to their creation and functionality. But which provide no way of importing existing data you might have.
Unless your app is creating something completely unique and filling a completely new gap in the market, the chances are that there are other apps out there which serve a similar function. Your app may be ten times more lovely to look at and ten times more pleasing to use. But, without providing import/export facility, you're expecting potential new users to either be completely new to <whatever> your app does. Or to totally abandon all the work they have done previously, in your rivals' apps.
In my opinion, this is why the Fediverse has failed so dismally. All these rivals to Twitter, Facebook, Instagram et al. All launched with lots of high-falutin' claims about privacy and respect for users. Yet not one of them provided a way to import your existing data from the services they sought to replace. "All those years and years of 'stuff' you've already written and posted? That's all just worthless junk. Leave it all behind and come empty-handed to our exciting new platform!"
It's quite insulting really, when you think about it.
And it's not only 'social meeja' apps. One of my particular quirks is that I'm a bit of a compulsive place-marker of where I've been on holidays, camping, or just days out, etc. I have probably a few hundred such place-marks saved on the mapping app on my phone.
Every so often, I'll think to try a new mapping app and download and install it. Only to find, on almost every occasion, that it doesn't provide any way for me to import my existing place-marks. So, presumably, the target market of the developers of those apps is someone who's never left the house before. But belatedly feels the urge to travel around, marking places they've been on a map.
They don’t.
The reality becomes that those places are usually too distracting for me to be in a coding mindset, and even when not, typing code using a non-physical keyboard is tiring and cumbersome. Even just the occasional mistype stops my flow as I have to back up and fix the letter or number now that I'm several characters past it.
I've tried coding on iOS before but the whole thing is really built to push you toward chatting and scrolling. Everything is miserable down to switching between your editor and browser, copying files, and running your build tools. Not to mention the feeling that you can't build your own tools to fix problems you have.
It's totally possible to be productive on a phone but you need to not be fighting against the OS vendor to do it.
That sounds to me like the definition of living hell. Writing prose on a touchscreen is bad already, I can't imagine how bad it must be to write actual code on one. It's not an iPad(OS) problem, it's a form factor/peripheral problem.
Definitely feel for their engineering team.
Edit: I've always thought that Panic could take a similar approach with Nova. Run locally on the iPad, as a native app, while connecting to a remote machine to compile, debug and run the actual code.
PS: The whole web VSCode thing can also have very bad latency in my experience.
There is a company doing this but they do the container piece. forgot their name. If we could seamlessly pair that with VS code Remote on the iPad (or macOS) I’d try to move our developers to it to keep all sensitive customer data totally off our laptops for good.
Jetbrains has plenty of code for remote debugging and such, and other IDEs have language server support. Leveraging existing tech like this to then sell a tablet app that is basically a control panel? I could see that making it through design committees.
But writing it from scratch just for tablet? That’s a hard sell.
I do JS front-ends, back-ends in Go, I design in Figma(https://figurative.design/) and Affinity Designer/Photo. For coding my daily driver is Blink Shell(They released a free community edition if you want to try: https://community.blink.sh) with Mosh. I never had a feeling that my terminal is just connected to VPS. Whenever I open Blink, everything is still there as I left it. Slow connection? No problem with Mosh. Constantly changing networks or IP addresses? You will not lose a connection even for a minute.
After a long year after the switch to my only device at home, I can tell you that I never looked back nor needed any other machine. Maybe it doesn’t cover everyone’s needs, but you can’t say it’s close to zero. Most of current development can be done on it. :-)
> With Mosh and SSH, Blink is rock-solid, fast, and your all-day-long companion.
Okay, it's starting to get crowded but I want to know more so I scroll down to get some details:
> Mosh was built for constant mobile connectivity.
Isn't this the Blink site? Or is it also called Mosh? Why am I getting the history of an app/service/Lord-knows-what before being told what it is?
> You can flawlessly jump from home, to the train, and then to the office thanks to Mosh.
Still on about Mosh and not only is there not a peep about what it is, I still don't know what Blink is.
> Blink is rock-solid connected all the way.
Now we're back to Blink. What is it? Doesn't matter, it's good! Trust us, the people who won't tell you what it is. What is Mosh? Who knows!
If I guess that Blink is a shell and Mosh is some kind of networking facility will I a) be correct, and b) have guessed more detail about them in a few words than their home page tells me?
Disappointing.
- Tell me what it is
- Tell me why it exists
- Stop with the ad copy and buzzwords until the first 2 points have been addressed
That's what I want from a landing page / home page.
"THE PRO TERMINAL FOR iOS & iPadOS", from the front page.
> - Tell me why it exists
" You bought the latest Pro device, loved it, and then you wondered...
…Can I use it to replace my laptop?
Yes, you can
Blink was built as the tool we wanted to use all day. We were tired of User Interfaces being on our way, and of connections that couldn’t even last for 5 minutes... ", from the front page too.
> - Stop with the ad copy and buzzwords until the first 2 points have been addressed
They have been.
Then what's Mosh? Why bring it up?
> " You bought the latest Pro device, loved it, and then you wondered... > …Can I use it to replace my laptop?
No, I didn't but I know it's supposed to be appealing. The original comment about it was more appealing than that line. Still.
> Yes, you can
Can I? Because I can "code all day from the beach"? (which doesn't sound fun, actually)
It's facetious, it's anodyne while striving to be zippy, and worst of all, it's meaningless. I've seen half-arsed Github READMEs that are more informative. Do I really have to pull out alternatives to show the difference? Okay then.
There is ZeroTier[1], which I'm going to guess is a Mosh equivalent as I have zero (ha) desire to find out any more about Mosh. This is their initial blurb:
> Connect team members from anywhere in the world on any device. > ZeroTier creates secure networks between on-premise, cloud, desktop, and mobile devices.
Now that answers my questions and the rest of the page goes into more detail.
Now for a shell - let's take Fish[2] because I've heard about it but never bothered with it. This will be fun…
> fish is a smart and user-friendly command line shell for Linux, macOS, and the rest of the family.
It then goes into features which is an indirect answer to the why so I'll give them half marks there.
Oops, my mistake, it's a terminal we need. Since I use iTerm[3] nowadays:
> What is iTerm2?
> iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.14 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.
> Why Do I Want It?
> Check out the impressive features and screenshots. If you spend a lot of time in a terminal, then you'll appreciate all the little things that add up to a lot. It is free software and you can find the source code on Github.
It's like they read my mind, or they actually followed a very simple recipe that I had hoped most people were aware of. I think this can be improved but it's still miles better than the copy Blink is using.
I'd suggest employing this bloke[4], or taking some of the advice given out by fellow HNers there.
The most useful is ssh, which works as you expect (blink has code to manage keys etc). But iOS/iPadOS also terminates non-foreground apps. For example you could switch from blink to a massive web page in your browser, and then switch back again and blink would be relaunched. mosh is a connection-less protocol (setup is done over ssh first though), so you can keep sessions going across blink being killed and restarted, and even if you change IP address! I personally use tmux so this doesn't matter.
The shell commands are useful too. For example you can access iCloud files (available on every device) and local iOS files. You can do network diagnostics (ping, dig, nc etc). You can scp/sftp files back and forth. And then you can operate on them using sed/awk/grep etc.
It is quite challenging to explain all this, as you noticed at the web site. An example of a more GUI style ssh client is https://www.panic.com/prompt/ and they deal with keeping connections described here https://library.panic.com/general/ios-background/
There is a general command line with multiple commands built in at https://libterm.app/ and Blink is built on that. Note that you can even do things like compile code with clang, but the resulting "executables" are interpreted and not native code (again due to iOS policies).
Another alternative is https://ish.app/ which runs Alpine Linux userspace and interprets x86 instructions.
In short an iOS/iPadOS ssh client is more complicated than you'd expect, and they all have varying degrees of workarounds for app permissions, termination, maintaining connections in the background, etc. The blink site tells you more about one of those solutions (mosh) than describing the problem it addresses in the first place.
I have 12.9 Pro model from 2020 with only folio case and pen. I own an external keyboard but only use it at home. I also have SIM, so more or less I have always a decent internet connection no matter where I am. Feat that is impossible with MBP without hotspot from iPhone. ;-)
Yet, the whole magic for me is in applications, having native app for Netflix, HBO, Reddit (Apollo) is a game changer for someone who used only Safari, Figma nad iTerm2 in full screen on a Mac, and rest was just browser based stuff. I could lie down and read some news, respond to tweets, scroll through Reddit, code in Blink and design using pen and Figurative at the same time watching Netflix without having a MBP on my laps baking my balls. ;-)
And, yes, external keyboard isn’t as bad as most people tell.
No other dev can replicate it with the public entitlements only. (On iOS)
Swift Playgrounds actually compiles down to native code.
What is an education app? Well, that is up to Apple.
If you get screwed by Apple, why not go to the other field?
On AppStore you have 90 days to do a refund, and mostly it’s always accepted, no questions asked.
Second, differences in prices. Yesterday my friend was scammed into app(one of the top apps there) that gave him 3 day trail but only when choosing 1 year license after that. After 3 days without notification he was billed for $125. The same app cost yearly on iOS $35 and lifetime for $40. And, this is just an example of many scammy tactics that go on on Play Store. :-)
No, it doesn’t mean that Apple does not have this problem. It has, but in smaller quantity.
They don’t want to make the best tools for just any platform; they contribute the best tools they can to Apple’s ecosystem, the one they use and appreciate (and love). Apple power users have different expectations, especially around UX on the Mac; that is Panic’s forte.
I’m sure if they wanted to develop for Windows or Android, they could have years ago. But that’s not their thing, that’s not why they make these tools.
Kids who buy these new small computers from Apple, not only does it not ship with such a thing, but its not even possible to download or buy a programming environment!
We built computers with brains the size of a planet, they fit in our pocket, and they have been castrated such that they are no good for creating anything, for no good reason.
Am I missing something?
This comment seems misinformed and griping, there are plenty of ways to program on iOS. There's the developer program, TestPilot, and more.
This is off topic, but OP, do you happen to be White in this game? https://lichess.org/0dv2oS4f It recently came up while I was prepping the French from Aagard’s book, and if so: cool, and small world!
I wonder what it would take to make a Code development tool to take advantage of that.
Seeing as there is a risk it might not work within a few months that isn’t that bad of a deal I guess.
This is not true. A recent iOS update broke Transmit; it no longer launches and says it needs an update.
Either way, it was a great app and I very much disagree with their reasons for discontinuing it.
Your mileage may vary but overall I'd give it a 9/10 in speed and UX but a 6-7/10 in usability compared to Webstorm or VSCode with the right plugins.
…but is there any “pro” software like this that is succeeding on iPad that isn’t part of a larger cloud/subscription service?
I believe Office gets some actual use on iPad, and Adobe sure keeps trying, but is there really any notable pro apps that are succeeding on their lonesome?
I can take my camera, a card reader and iPad Pro and have a complete darkroom with a calibrated screen with minimum weight.
Even my iPhone X can post-process files from my 24MP mirrorless camera and create really high quality images.
iPad Pro is a multimedia powerhouse both for creation and post-processing. Development is hard, because it needs unfettered access, due to nature of the beast.
- VSCO
- Priime
- RNI films
For more advanced post processing: - Polarr
- Dark Room
- CameraBag Mobile
If I don't have my camera with me, I use Halide for taking photos. For timing, occasional astro and other stuff I use Helios and Photo Pills.On the desktop side I use CameraBag Pro and Darktable mainly. I occasionally use Luminar.
I started photography with analog in the 90s, so I really dig the atmosphere different emulsions or curves add to the photography and, I use these tools to create the feeling I want to create with my images.
Really, all the iPad does well is consume content. That's why content creators love it so much, and everyone else is either indifferent or ignores them.
Is that why on macOS I can open a window like "About this mac" or any window from a menu bar app, switch away from it with the keyboard...and then not be able to switch back to that same window with the same keyboard shortcut?
Are you aware that, for over 20 years, Apple sold an OS that only let you resize application windows by the lower right hand corner?
I could go on (and on and on) but I'll stop here: Remember when Apple swore by the single button mouse? They said it was the best thing ever. Except the first thing everybody bought for their new Mac was a multi-button mouse... Reminds me of how many dongles you need today because thin is in!
The M1 iMac is already quite close to a "iPad Desktop", I'm not sure how long it will take until Apple takes the full step and ships an iMac with iOS. My guess is that there will be an intermediary phase where the OS will only allow AppleStore apps by default but can be unlocked. And then one day the "most-affordable iMac ever" will arrive, with iOS...
On a more serious note though, Apple won't let you choose which browser you're using anymore: what makes you think it will fulfill the criterion of a "real computer"?
macOS and iOS let you choose your default browser
Ugh-oh. Not again. The last time it happened, they took the old version off the AppStore and ultimately forced everyone to re-purchase their new and shiny remake for the full price. I'm still bitter about it. You want to make a new version - fine, but taking the old one off was a real shitty move (* see EDIT below).
So despite of how it sounds, that ^ part is the exact opposite of good news.
EDIT - I misremembered, my bad. They refused to rebuild the original prompt for x64 target. That's what it was. They didn't take it off the store, they just claimed that rebuilding for 64-bit platform was such an immense hassle and monstrously complicated task that they just can't. But! Lucky for you we just happened to have this brand new version that is 64-bit. It has few things improved, but largely the same. You'll love it. $15.
I’m fairly sure that at some point those devices ran low on space (less of a problem today, but mostly because I’ve been off the music treadmill for a while) and I had to delete things to keep working.
Only routes to sustainability is this ship new version, support it for a few months then start working on a new version that will be another purchase, or well you know subscription which I'm sure we all agree is the less preferred of the two.
My educated guess would that this is simply not true. It's a convenient excuse, but a bullshit one. Either covering up engineering incompetence or the good old desire to sell the same thing more than once. And that's even if Prompt weren't a relatively expensive app with a large user base.
In any case, this is not my problem as their client. My fairly basic assumption is that what they sell will last a reasonable amount of time and it's entirely their headache to work out the details behind that.
How many apps coded 5 years ago even run on modern iOS. Apple expects engineers to ship at least one new version a year and don’t care about backwards compatibility. Have a ton of apps on my phone that no longer launch for various reasons.
Not saying I endorse it or agree with it. Just saying this is the world Apple built and don’t intend to change.
Apps on Android and windows run regardless of how many years ago they were written with very few exceptions.
Let's call a duck a duck: Apple choose this right because it was easier and made them more money, at the expense of their users. It's a fact. It just is.
I've lived through the W10 launch and that was a fucking dumpster fire. Still, adapting to whatever Microsoft broke with their brand new "update" wasn't that difficult even though these were genuine surprises. Things. Just. Broke. In comparison iOS changes are announced well in advance and they aren't too drastic. So while you can't compile an iOS app today and expect it to work in few years, keeping it updated is not that hard or time-consuming. Unless the code is a mess to begin with.
There are ways to let someone upgrade to the new version for less than retail price, but you just don’t hear if that many people doing it.
Or maybe we don’t hear because so many apps are made by very small companies, or as a loss leader for other services. And maybe the latter should give them/us pause.
I used to like Coda and Coda 2, but I was more of a Mac simp back then, and didn’t realize that they literally just plopped in some other editor (can’t think of the name at the moment). Plus, the one-window workflow was just a bad idea. Especially if you have multiple monitors at your disposal.
Insane to think that they only thing they make now that has actual utility is their FTP client. Still. After all these years.
The product I work on is $10/month and worth it to many people, and by my own admission, considerably lower quality and utility than any panic product. I just can’t make it for any less, realistically.
Is this to appeal to those who haven't heard of visual studio code?
Add touch support to MacOS and let it run on the “pro” iPads. Done.
I never looked back. Blink's GUI isn't as pretty as Prompt's, but its functionality is outstanding. There's nothing more I would add to it.
Is the source code going to be published so people can keep running it on jailbroken devices?
I remember losing quite a couple apps this way. Can't be downloaded anymore, too bad you didn't have a full backup.
Not all apps will be available for example Facebook Paper shows up for me, but can't be downloaded because of an OS incompatibility (at least that is what the message implies), but other apps that otherwise don't show up are still there, like early versions of Tweetbot.
It's not clear to me how Apple knows when apps stop working and then makes them un-downloadable, but it does appear many apps that have been taken down from the store can still be accessed if you previously purchased/downloaded them.
That's a horribly irresponsible thing to say.
Panic charged me $24.99 for a full-featured code editor. I would like a full-featured code editor or I would like my $24.99 back. It is not "horribly irresponsible" to expect what one pays for.