Temptation of the Apple: Dolphin on macOS M1
dolphin-emu.org
dolphin-emu.org
Well, rarely completely forbidden, but e.g. I think OpenBSD has been W^X by default for quite some time (though IIRC with a WX allowed flag per… FS mount?). Now on FreeBSD it's not default but it's there, and if you turn it on, you have to mark WX-mapping binaries by running `elfctl -e +wxneeded`.
Firefox actually became W^X compliant all the way back in 2015: https://jandemooij.nl/blog/wx-jit-code-enabled-in-firefox/
They could block all execution for total security.
So if it didn’t (have this restriction), you’d be confused as to why? Or are you just praising a high-status decision for being high-status?
> arguments about third party browser security on iOS
Well, W^X is just one mitigation technique. But also, the "security" arguments have always been kinda dubious. I don't think there's that much difference (at least philosophically) between an interpreter bug causing arbitrary crap to happen inside your app's sandbox and a JIT bug doing the same.
I tried porting a much simpler JIT to M1 and ran into the problem that Rosetta 2 was simply better at translating an AMD64 JIT than my attempt at a JIT. It could’ve been related to W^X performance, but I actually suspect the real answer is that Rosetta’s optimization passes were doing things the JIT did not do natively. I don’t know how to debug that, though, because from the debugger’s PoV, emulated processes look just like native Intel processes.
* 9900k is boosting to 5ghz which is sacrificing efficiency.
* 9900k PC is delivering a much higher framerate, so it'd also have much higher GPU utilisation.
* Afaik RTX3090 will have high power draw even at low utilisation (large card, lots of memory).
From anandtech:
>Should users be interested, in our testing at 4C/4T and 3.0 GHz, the Core i9-9900K only hit 23W power. Doubling the cores and adding another 50%+ to the frequency causes an almost 7x increase in power consumption.
https://www.anandtech.com/show/13400/intel-9th-gen-core-i9-9...
Look at the 3090s power consumption during media playback: https://www.techpowerup.com/review/zotac-geforce-rtx-3090-tr...
And GPU it's much faster than the Intel integrated.
To compare efficiency you need to control for performance. What Dolphin did here would be like trying to compare CPU coolers without controlling for power consumption.
What makes the M1 impressive is its performance relative to other CPUs in its power category (eg, the M1 vs. the i7-1185G7 in this chart: https://images.anandtech.com/graphs/graph16680/117493.png ), or when it manages to be both faster and use less power. That's impressive.
But using less power while also being significantly slower (which is what Dolphin's comparison is saying)? That's... not impressive or interesting. That's some "no shit sherlock" level stuff - just compare literally any mobile CPU from Intel or AMD vs. the desktop equivalent in the same generation. You'll see a chart that looks basically the same, with the mobile CPU many times more power efficient while also being a lot slower. Especially when you're taking the top-end desktop CPU for the comparison, the CPU where power efficiency isn't even remotely a design goal.
I will use another John Deere metaphor: a Prius can cover a much longer distance on the same amount of fuel, but if I need a John Deere it's because the Prius can't do the same job and I am willing to sacrifice fuel efficiency for raw power.
In other words: how much more does the i9 consumes to produce the same FPS of an M1?
We don't know, but we know power consumption increase on these CPUs is non linear, meaning that the 60-65% of the frame rate could potentially lead to 5-6 times less energy used.
From anandtech: «Should users be interested, in our testing at 4C/4T and 3.0 GHz, the Core i9-9900K only hit 23W power. Doubling the cores and adding another 50%+ to the frequency causes an almost 7x increase in power consumption»
The i9 4C/4T 3Ghz consumes 23 watt
how many FPS can that produce?
the one benchmarked consumes more than 7 times that (it's a 5 GHz 8C/16T), and it's sure it's not 7 times faster (not even close)
They are actually not doing the same job, they ate trying to go as fast as they can.
But what if they measured how much energy each one uses to produce the same score?
> We really didn't expect this to work or we probably would have tried it sooner.
The only game rosetta is beating native on is rogue squadron 2. Since Dolphin is a JIT, this seems to be a case of where Rosetta's JIT is smarter than Dolphin's in terms of which ARM instructions are chosen when converting from the Intel instructions than Dolphin when converting from the emulated PPC instructions.
Unless you're comparison is the 8559h and not the "native" bar. I mean, the 8559h is a mid range older Intel CPU and it's hard to understate how much Intel stagnated since Sandy Bridge (and especially since Skylake).
According to the article, the AArch64 JIT isn’t as complete as the x86 one so some less common instructions are emulated, not JITed. I imagine a game that uses a lot of these is slower with the native ARM version.
From reading this blog, Gamecube games often made heavy usage of the memory-sharing capability of the hardware - which made emulation on PCs a performance challenge.
From my understanding it's not that useful for reading back either as the main bottleneck there is the fact that you need to sync gpu and cpu rather than transfer speed.
A problem that I don’t think applies to consoles is that GPUs don’t use the same texture format CPUs do - they swizzle them in proprietary ways and it needs conversion even if there are no memory transfers.
And why would software rendering be fast on the M1?
No one was competing for fastest single thread because no one needs it.
Well maybe marketers need it.
A big part of the reasons why web applications are so darn fast on the M1 is it’s single-threaded performance. Remember that JavaScript itself is single-threaded
Engineers making pronouncements like this bring me no end of amusement. Surely we've learned by now that we're pretty terrible at these sorts of guesses?
Ok, never played that game. I’ll better try not to play that on my ancient Intel powered laptop ...
Different games run differently well on Dolphin if you got older hardware. While Mario Kart Double Dash runs perfectly fine in full screen, „F-Zero GX“ suffers massive slowdown in some levels on my 7 years old CPU/GPU combination. Interestingly, both games employ the „heated air“ effect on similarly looking levels — but still I got 40 FPS vs. 60 FPS in that case. I wouldn’t mind but the sound needs to be in sync with the graphics subsystem on the Game Cube — audio is broken with even slightly slower frame rates, unfortunately.
There isn't one. Apple's silicon team is at least 1-2 years ahead of all the other ARM vendors when looking at mobile performance, and none of those vendors are even trying to do anything in the desktop space (yet).
> It isn't just because it is RISC, it's Apple magic?
It’s both. We’ve known for decades that RISC was the “right” design, but x86 was so far ahead of everyone else that switching architectures was completely infeasible (even Intel themselves tried and failed with Itanium). It would have taken years to design a new CPU core that could match existing x86 designs, and breaking backwards compatibility is a non-starter in the Windows world. So we ended up with a 20-year-long status quo where ARM dominated the embedded world (due to its simplicity and efficiency) and x86 dominated the desktop world due to its market position.
However, with Apple, all the stars lined up perfectly for them to be able to pull off this transition in a way that no other company was able to accomplish.
- Apple sells both PCs and smartphones, and the smartphone market gave them a reason to justify spending 10 years and billions of dollars on a high-performance ARM core. The A series slowly evolved from a regular smartphone processor, into a high-end smartphone processor, and then into a desktop-class processor in a smartphone.
- Apple (co-)founded ARM, giving them a huge amount of control over the architecture. IIRC they had a ton of influence on the design of AArch64 and beat ARM’s own chips to market by a year.
- Intel’s troubles lately have given Apple a reason to look for an alternative source of processors.
- Apple’s vertical integration of hardware and software means they can transition the entire stack at once, and they don’t have to coordinate with OEMs.
- Apple does not have to worry about backwards compatibility very much compared to a Windows-based manufacturer. Apple has a history of successfully pulling off several architecture transitions, and all the software infrastructure was still in place to support another one. Mac users also tend to be less reliant on legacy or enterprise software.
> It seems weird that you can emulate other instruction sets with RISC underneath and get the performance they do.
As far as I understand it, the only major distinction between RISC and CISC is in the instruction decoder. CISC processors do not typically have any more advanced “hardware acceleration” or special-purpose instructions; the distinction between CISC and RISC is whether you support advanced addressing modes and prefix bytes that let you cram multiple hardware operations into a single software instruction.
For instance, on x86 you can write an instruction like ‘ADD [rax + 0x1234 + 8*rbx], rcx’. In one instruction you’ve performed a multi-step address calculation with two registers, read from memory, added a third register, and written the result back to memory. Whereas on a RISC, you would have to express the individual steps as 4 or 5 separate instructions.
Crucially, you don’t have to do any more actual hardware operations to execute the 4 or 5 RISC as compared to the one CISC instruction. All modern processors convert the incoming instruction stream into a RISCy microcode anyway, so the only performance difference between the two is how much work the processor has to spend decoding instructions. x86 requires a very complex decoder that is difficult to parallelize, whereas ARM uses a much more modern instruction set (AArch64 was designed in 2012) that is designed to maximize decoder throughput.
So this helps us understand why Apple can emulate x86 code so efficiently: the JIT/AOT translator is essentially just running the expensive x86 decode stage ahead of time and converting it to a RISC instruction stream that is easier for a processor to digest. You’re right, though, that native code can always be more tightly optimized since the compiler knows much more about the program than the JIT does and can produce code bettor tailored to the quirks and features of the target processor.
All the experts I listened or read to, they told that instruction set doesn't matter and it is the insignificant thing. The part that matters is branch and data prediction, and caching. Also, even intel transforms an instruction into RISC like microinstructions internally.
> Apple does not have to worry about backwards compatibility very much compared to a Windows-based manufacturer
Windows is literal shit in backwards compatibility too. Try to run any windows 7 or before program in windows 10 and most of the time it won't work. Also, windows can also run in ARM and unlike mac the ARM windows didn't had emulation for years.
Neither ARM nor Itanium are RISC. RISC/CISC don't actually exist - CISC just means "x86" (variable length instructions, memory operands, 2-operand instructions) and RISC means "MIPS or PowerPC" (load store, fixed length 3-operand instructions, weird hardware exposures like delay slots.)
ARM is a load-store architecture and has a lot of registers so it's closer to MIPS but it has complex addressing modes and more instructions. Itanium is VLIW which is almost the opposite of how the M1 works.
Plus ARMv8 in the M1 is a total redesign so it's not exactly the same as older ARMs.
> Crucially, you don’t have to do any more actual hardware operations to execute the 4 or 5 RISC as compared to the one CISC instruction.
This isn't true because you can do a lot of that stuff in one step; just put an adder in the memory access unit. Some complex instructions really are worth putting in the ISA.
x86 uses this to its advantage; the µops can be very long and are not RISCy. RISC is actually harder to deal with here because it's easy to split up instructions into µops, but it's hard to fuse them together again. That's why ARM having condition codes and more complex memory operands is a win.
x86's variable length instructions also fit in memory better, which is good for performance, but they're worse on security because they're harder to parse.
Processor: $300
Motherboard: $200
good 256 gb SSD: $100(doesn't seem to come close to apple's)
8 GB RAM: $40
Case/cooling: $100
Even in the configuration which is worse in each of the spec, you are hitting more than apple including apple tax.But yeah, I agree if you want an upgrade of RAM and SSD, it is much expensive than the part.
On what metric? Single-thread performance seems to be comparable and in multi-threaded workloads Ryzen seems to be up to 50% faster.
>Motherboard: $200
Huh? AM4 motherboards seems to be available for around $70
>Case/cooling: $100
Processor includes box cooler, so you are now counting it twice.
the m1 is the renaissance of laptops
This performance would've been available on iPads years ago if it wasn't for Apple's blanket ban on JIT and the likes.
Apple is one of those companies whose hardware I'd love to have if it wasn't for their software and general corporate decisions. Until I can run a proper version of Firefox on iPad, I'll have to stick with the objectively inferior hardware for the coming years.
It is there to prevent apps circumventing the review process and security model ie. apps pretending to do X during the review process and then doing Y when in use or obfuscating their use of private APIs. Now you can argue these restrictions are unreasonable but many of us don’t want our iPads or iPhones to be like our computers.
And many of us do. I would never buy a locked-down piece of hardware like that. But I don't think it matters either way what either side wants, because it's what Apple wants that matters. They want to keep their walled garden's walls air tight, and there are apparently enough people that are OK living in that garden that it works.
I'm positive that they have done the calculus that they'll make more money in the long/short term by behaving this way. Google did a similar calculus, with a different set of values (if not an entirely different set of variables altogether) and came up with a different answer. Although it's interesting to see how their position has shifted over the years to be a bit more like Apple in some regards. Regardless, the point is they don't care what you want once they've gotten to the point of getting your money. Past that, they only care about maximizing their profit.
So even though I wish iPhone would become more open, I find it strange that people are saying that we must break the iPhones App Store requirement to increase choice, even though that removes the choice to have a safer but locked down experience from the market.
Admittedly, the same problems exist on the App Store, but not to the same why-even-try level of anything goes.
The amount of kids apps, that are marketed as kids apps, certified as age appropriate, then contain ads for zombie gorefest horror was enough to make me give up trying with Android entirely.
I have every confidence Google will eventually address this (if they haven’t already in the intervening years).
In the meantime while I dislike how restrictive iOS is I’ve begrudgingly come to accept that I need it that way, at least until my kids are older.
That said, it's not clear if Apple will win or lose this Epic suit, so who knows what happens after that if they do?
From what I've seen, Epic's primary intention is to get Apple to publicly admit the compromises they make to maintain their ecosystem, and then use that to drive a wedge between the court's interpretation of the situation and Apple's defense.
The bottom line is that the internet is scary, and your kids are growing up faster than any generation before. The more you try to interfere with stuff like this, the more animosity they'll perceive in your relationship.
This is a false dilemma. You can have both.
That said, here's a challenge for everybody (including myself) who doesn't like Apple's app store monopoly and side-loading ban:
Apple now requires apps to ask for permission before tracking users. Facebook is _very_ unhappy about that. Imagine what would have happened if alternative app stores were allowed on iOS.
How long would it take before a Facebook/Google sponsored app store would emerge that would carry all ad funded apps? How would you prevent this from happening?
Very simply - enforce security permissions at the OS level, rather than the app store level.
There's no technical reason an app store also has to handle permissions. Leave the discoverability/reviews/curation functionality in the app store, and then just move the app installation functionality into the OS - the app store delivers an app package which the OS accepts, parses the manifest file, prompts user for permissions.
Put APIs behind a sane, capabilities-like model where the OS has to approve everything.
Facebook and Google can make their own app stores - but they still won't be able to spy on you by using privileged APIs without your consent.
(yes, they'll still be able to spy on you using data collection and aggregation - but then Apple's App Store privacy labels becomes a differentiating feature that build user trust and add value to the system, and Apple could add a warning when you install another App Store "privacy labels don't transfer, etc.")
iOS malware authors tend to publish their binaries as unsigned dylibs and don't need Apple ID accounts so they aren't even banned when they're caught. instead they convince other developers to ship it in seperate apps (there are various ways, money, convenient APIs, both in the case of Facebook.)
iOS exploits are cheaper than Android exploits because iOS exploits are so plentiful[1][2].
[1] https://www.theregister.com/2020/05/14/zerodium_ios_flaws/
Hopefully if they lose this case (due to the market reality of being a duopoly) then they will be forced to at least entertain it.
Android's way of handling sideloading or multiple app stores is far from the only way to do it. I'm sure Apple could find a better middle ground between what we have now (incredibly locked down, anti-competitive, with arbitrary rules and Mafia-like enforcement of prices) and a total free-for-all.
Apple does all that for you. That's why they win. "General purpose computing" is for nerds -- ordinary people would much rather have an iPhone.
Sure this would complicate things a bit (Apple would have to have different keys for different hardware revisions), but it would allow devices to be "officially" jailbroken after support ends.
Windows Phone is dead. And what happens if Android decides to be like Apple and lock down sideloading more? There is nothing forcing them to continue allowing this "freedom of choice" for consumers if they decide it would be better for their bottom line.
So, what would be the next best choice after Android in that scenario? Basically nothing, because smartphone operating systems are a duopoly.
> So even though I wish iPhone would become more open, I find it strange that people are saying that we must break the iPhones App Store requirement to increase choice, even though that removes the choice to have a safer but locked down experience from the market.
I know many people (including Apple) prefer the iPhone ecosystem to be more locked down, but given the market realities (monopoly) it seems like a compromise would make more sense than forcing everyone to pay 30% and lose out on things like cloud gaming, emulation, "objectionable" content, etc. to cater to the lowest common denominator.
A few possible compromises that Apple likely will never agree to without being forced to via regulation:
- Apple could probably keep the singular App Store model, but lower their fee to closer to cost, add more types of parental controls and/or special "expert only" areas of the store. This way they are more of a neutral hosting platform that still enforces security via app review (frankly, if they had done this to begin with, people probably would have let the whole singular App Store thing slide).
- Apple could allow alternate payment processors and let the user decide if they want the convenience of Apple Pay vs alternatives. This would let the market dictate the real value of their IAP infra. (Hell - at least let subscription apps link to their web site to purchase if they don't want to do IAP! This seems highly anti-competitive.)
- Apple could allow federated third party app stores to enforce certain levels of spam and security prevention (even off the App Store) - if one of these trusted third party app stores falls short in terms of security they get removed.
- Apple could just go the Android route and allow sideloading, but put it behind a ton of warnings etc. Continued investment in app sandboxing and permission prompts for each and every app would already do a lot to cut down on straight-up malware. Phishing, scams, etc. are already an issue for iPhone users in the browser or email clients (plus we've seen these kinds of things on the App Store as well), so user education on how to deal with these things is already unavoidable.
I think it's fair for us as consumers to demand more from Apple and want both security and freedom with reasonable tradeoffs.
And I'm not even talking about transforming an iPhone into a potentially open computer, but here too the same principle can be applied: if it is optional, it is something more, not less. The UX can be made good enough to actually have your cake and eat it, see Chromebooks.
The same could apply with app stores—if a company, school, or other requires that you use an app that is only available on a less privacy-friendly or perhaps more intrusive app store, that doesn't sound like an optional/risk-free alternative to me. Once you open the walls there's no going back.
"Your iPhone is out of date. Tap here to install the latest security tools to stop hackers from stealing your bank account"
By default Apple devices phone home and collect data on you, and this is not optional, and they will hand that data to law enforcement. They also have the ability to change their data handling policieson a whim since there is nobody holding them accountable. THIS IS NOT PRIVACY.
Not that windows or android devices are better as they come out of the box, but at least any computer that runs windows can run linux where you have full control, and certain android phones can be rooted/unlocked and flashed with custom roms without google or run firewall apps to block outgoing data.
Niven stuff like iCloud leaks, and Apple bending over to appease China by removing the protest app from the app store (which completely makes it unable to be installed on any non jailbroken device btw), I personally don't really see a reason to trust them any more than Facebook or Google.
Yes, Windows and Android devices give users more control. But that is because their business models are totally different. We all know that Google is primarily an ad-tech company, and that Android is how they collect the data for those ads. And while a technically savvy person may be able to lock down their devices, that's just a minority of users we're talking about.
Apple's data collection is a murmur compared to the deafening screech of that of Google.
Remember that this decision was made over a decade ago, back when there were many competitors - both software and hardware vendors - vying for a foothold in the smartphone market. Google trying to flex its muscles too much would have sent its licensees scurrying toward competitors.
They have pulled back from that drastically, to the point where root doesn't really get you much control on an Android device any more. Whether that's driven by discovering that a very open approach to user control makes for a lot of security issues (which lines up with Apple's claims), or whether its about trying to improve revenue streams, well, who knows?
I think they stayed in that state for a few years, though.
For starters, it's something AT&T did with just the phones they were selling, not something Google did with the Android platform or Android phone makers like LG and Samsung did with their phones.
My point is that the mumblemumble seemed to think that Google had no choice in the matter. I think they clearly did and for the most part clearly opted to keep the third party door open at the time.
Granted, Android was much more open back then overall.
I think they might just survive without your business. And pretty sure it demonstrates that their formula of security and privacy over openness is the right one for them.
> I think they might just survive without your business.
The parent post makes some the argument that the restrictive nature of iOS makes it unappealing to certain users. You counter that with a discussion-ending argument about how much money Apple makes.
Not everything that makes billions of dollars is immune to criticism. Especially since Apple markets the iPad as a "computer", a term that traditionally referred to unrestricted computing devices.
The implication is that Apple's design decision favors far more users than it doesn't.
In other words, the same design decisions that cost Apple one HNer nets them general consumers - so Apple can definitely survive without the HNer's business.
Lots of people disapprove of Facebook's data practices, yet they still run several of the overwhelmingly most popular social networks. Apple could be in a similar position: producing an otherwise excellent product that has a limitation people tolerate.
The fact that Apple makes billions of dollars is not evidence that every single decision of theirs is the best decision for their profitability. In order for their profit to be used against the argument and comfort of a certain Hacker News commentator, we need some evidence that the revenue is because of, not despite (or unaffected by), the decisions that made the random Hacker News commentator unhappy. At best we can conclude that the decision is not such a howler that it's cost them their market viability, but perhaps if they'd made a different decision they could have owned the entire smartphone market in a way that Windows used to own the desktop OS market.
(Another logical fallacy implicit in the argument is that a decision made by a powerful person is more worthy of respect than another decision. I must admit these kinds of reactionary values are extremely far from me, and I am shocked and uncomfortable to find how common they are.)
Me: "Great, do not buy an Apple protect." HN: "But I like their HW." Me: "Well then you have to deal with their SW restrictions." HN: "But I do not want to, why cannot they not just do this for me, it's just SW."
Wash, rinse, repeat on every story on AppleHW. I would really love to be able to read the comments on the interesting aspect of the story without 80% of the comments going back to this debate for once.
Apple is NOT a monopoly, therefor you cannot force them to change this. You can buy another device that allows you to install 3rd party stuff. Do that.
They're a monopoly on imessage which most people who own iphones think is just more advanced text messaging. You'll get left out of groups if you do this.
All we want is to be able to run our own binaries, I can't believe this is even controversial especially on a forum full of software developers.
Also, Apple knows as much as anyone that terms change over time. Last week the RSA experts were angry that “crypto” now meant “cryptocurrency” instead of the historical “cryptography”.
Do they? I don’t follow their ads closely, but I can’t find the word “computer” on https://www.apple.com/ipad-pro/ (given the 8tneractivity on that page, it still may be there, but I tried looking hard, and couldn’t find it), and they have an explicit ad saying “iPad Pro — Your next computer is not a computer” (https://youtube.com/watch?v=09_QxCcBEyU)
Can you point to that marketing?
For a business that makes it's money from consumer spending habits, I think this is a perfectly valid argument. Apple isn't a utility company or something the users are locked in to. If they decided openness was more important, why are they still buying so many iPhones?
Except when it's not a computer https://youtu.be/pI-iJcC9JUc (/s)
The global fashion ecommerce industry was expected to decline from $531.25 billion in 2019 to $485.62 billion in 2020. The negative compound annual growth rate (CAGR) of -8.59% is largely due to the coronavirus pandemic. However, the market is set to recover and hit $672.71 billion by 2023
The general clothing market is even bigger, obviously:
In 2019, global retail sales of apparel and footwear reached 1.9 trillion U.S. dollars, and were expected to rise to above three trillion U.S. dollars by 2030.
It looks like you are trying to discredit the poster or accuse them of dishonesty without adding new information to the thread.
If they are wrong, you can trivially demonstrate that with a link of your own.
Do you own an Xbox or Playstation? Do you own a SmartTV?
I do own an old Kindle Paperwhite, which I assume is fairly locked down? I'm not actually sure.
The other alternative is what I can't relate to at all: the device doesn't do what they want due to being locked down, but they're ok with the trade-off. I don't have a problem with it, but I can't relate.
What's more, Google is re-doing their calculus -- and reaching the same conclusion that Apple did. More restrictions are being implemented into Android with each major release.
For many, including me, it's not some inconvenience that we are okay with. We see it as a selling point.
I've tried them all and Apple's balance of openness/security/quality is the best I've experienced. If they follow the direction of others, I'd probably jump ship.
It didn't shift. Google had the same calculus with the same answers. Only Google never had the hardware, so AOSP was a way to make sure Android is everywhere.
There's a great Ars Technica article about this: https://arstechnica.com/tech-policy/2011/09/owning-the-stack... They all want to own the smartphone stack.
If Apple allowed you to unlock your iPad, they would also be allowing my grandmother to be scammed into unlocking hers.
Building a walled garden was a great decision for consumers by Apple, and if it was profit driven then that’s +1 for capitalism.
Their answer isn't openness, it's surveillance. Google is a surveillance driven ad company.
I don't see how Google, which controls the default apps, which can give them whatever privileges it wants at an OS-level, needs an Open platform to monitor me. If anything, wouldn't Google have more incentive than iOS to lock the platform down, since it doesn't want the competition from apps like Facebook that are competing in the same data-driven ad space?
Edit: Not sure why people are taking offense at this. Google doesn't need the web to be open, that's a talking point that comes up every time we talk about Chrome -- Google only needs its own ad network to function. Android is the same; why does Google need Android to be Open? They don't need the ability to sideload apps. Google Maps is installed by default, all of their apps are contractually required to be installed by default if you want access to the Play Store. If Google removed the ability to sideload today, none of their apps would get removed from your phone.
Maybe developers could stop looking at the green grass on Apples side of the fence and bring that polish to open-source.
But I imagine that will simply devolve into the mess it already is, with flame wars, and figurative genital punching to prove how hardcore one is for the obfuscated C they cobbled together.
There was time when Linux distributions were thought of as walled gardens. Cobble together just the right collection of source for you! Don’t let Red Hat control your mind! SystemD is a cage for your soul!
Meanwhile, Apple just got the damn job done and moved on.
If it’s a choice between masochistic elitism or filtered content. Hmmm…
No, that's just a garden. A garden is where a single trusted entity cultivates the plants it wants in the way it wants. It has boundaries, but not necessarily walls.
Walled gardens are a strict subset of gardens. A walled garden doesn't let you go out and forage from the wilds to augment the produce of the garden.
Anyone pushing into the App Store specifically then complaining has their own initial choice to blame. But of course that can’t be right…
It seems to me a rather simple fix: give users an "unrestricted mode" just like Android has the ability to install from third party. By default keep it locked down, but allow the USER to make that decision, with ample warnings all over the place about what they're about to do.
Heck, for all I care make them go to an Apple store to have it "unlocked" so an employee can walk them through what it actually means and how dangerous it is so the average joe schmoe doesn't just click the button by accident.
For better or worse, the App Store being the exclusive way into the iPhone forces third parties to deal. Otherwise, they just tell the user to make the choice for them.
If you even listen to interviews with Apple engineers, it sounds like they are less afraid of willing and understanding people and locking their phones, as much as they are afraid of third parties essentially forcing their users to unlock their phone to install their products, and thus getting an unfair exemption from Apple’s protections while smaller companies probably wouldn’t have the clout to force users to do this, resulting in an uneven playing field.
I do get the Apple Store one more, but as history has shown, people literally go to the Apple store to get iCloud theft locks removed by impersonating the owner and faking receipts.
I guess I don't get your point, if a user wants to sideload fortnite or facebook, good for them? If an ex-boyfriend has your phone and your password you've probably got bigger issues than whether or not he can click a button to sideload an app.
>I do get the Apple Store one more, but as history has shown, people literally go to the Apple store to get iCloud theft locks removed by impersonating the owner and faking receipts.
I still don't follow your point, what on earth does that have to do with someone being allowed to use their phone how they want? You think someone is going to steal your phone, go to an Apple store and pretend to be you to have sideload enabled, then return the phone to you? I'm not saying it would be impossible for that to happen, but I would say: why would ANYONE go to that trouble? If this is another "well ex-boyfriend" issue you're talking about 1/10th of 1% of all users in existence. I don't think that should be the demographic with which we base all of the decisions on what an iphone can and can't do...
Like I said with Facebook. If there was a private API that Apple doesn’t allow them to use that would make tracking users easier, they would happily force users to sideload so that they could use it. Smaller companies would not have the power to force users to sideload, so they would have to follow Apple rules while tech giants would not.
At this point, for better or worse, what started as sideloading has destroyed the App Store.
Lastly, as for why anyone would go for the trouble, are you really sure that some government agency wouldn’t force users to sideload an app someday? If it had to go through Apple approval, there would be a much bigger legal fight than if they could just force people to sideload it. There are other reasons than just ex-boyfriends, I’m just trying to come up with some examples.
This will result in a few "must have" apps being side-loaded to start, and finish with people having to reinstall their phone operating systems every 6 months; to the detriment of the vast majority of users.
Do you not remember what the computers of regular people were like in the late 90's and early 2000's? I remember pretty much everyone non-technical having at least a mild malware infestation and at least one extra toolbar in their browser.
I'm quite happy that the free market created a solution that is more secure.
You mean the privacy features built in to the OS?
The situation between iOS and Android is very similar to the situation you're scared of with a theoretical 3rd-party app store. Consumers don't have a clean choice between device ownership and a managed device. They also have to consider hardware concerns, network effects, exclusive apps/games and services.
It probably sounds dismissive to you if someone says that you can just choose not to use Facebook or Fortnite if they're not on the official Apple store. In the same way, it's a bit dismissive to say that I can just choose to ignore arguably the only privacy-respecting credit card on the entire market just because I want to use NewPipe on my phone. People often don't get to choose their phone based on one specific design aspect of that phone.
> For better or worse, the App Store being the exclusive way into the iPhone forces third parties to deal.
I do agree with this, and I think this is the heart of the conflict. A lot of people are arguing about whether iOS is a monopoly. That's not really the most important part of this conversation, the important question we should be asking is: "do we want iOS to be a monopoly?"
Being a (semi) monopoly and gatekeeping access to a substantial portion of the mobile market allows Apple to force companies to do certain things. Some people want Apple to have that power, because they think Apple will force companies to be more private and to adapt more consumer-friendly policies. Some people don't want Apple to have that power because they don't trust them with it, they don't trust them not to shut down technologies like game streaming or adblocking.
Apple has used its monopoly power to do some great things with privacy, their stranglehold over browsers on iOS is one of the biggest reasons Chrome hasn't taken over already. But Apple has also hampered the open web and is stalling on PWA features, largely because those features compete with the App Store. They also (imo) almost single-handedly created a low-quality mobile games market by maintaining a strict position for years that games were not artistic statements and by locking serious games out of their platform entirely. Apple's privacy-preserving disposable email system is great, their severe neglect for adblocking is bad. Their requirements around accessibility are extremely helpful, their war against adult content is extremely harmful. It's a situation with both pros and cons.
This debate is not really about whether or not Apple has power over the market, obviously they do. Facebook isn't just dropping iOS after its recent privacy changes. If Apple didn't have any kind of outsized control over the market, then companies wouldn't go along with their changes, they would just support Android instead. If the market allowed it, they would do exactly what you're afraid of with a 3rd-party app store -- they would abandon iOS and only support Android. But they don't, because they can't.
So the debate isn't about what power Apple has, it's really about whether or not Apple should have the power over the market that they obviously do have.
You can run whatever code you want. Doesn't matter whether it has a JIT, or whether it loads all its code from a webserver dynamically, or anything else.
The sole criteria is "thou shalt not circumvent the app store review process." That means, do not change the functionality after they've reviewed it.
> 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. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.
I’d say the post you were replying to uses the wrong word (“interpreted”, I usually say it can't run "arbitrary" code), but the rule is more specific than your description as well.
I agree with you that the rule sounds specific, and I'm not sure how to reconcile that with the fact that so many apps ship with hotpatching.
I think what you're describing is simply that the App Store rules are selectively enforced.
The ban on third party browsers and JIT is so that you cannot make fully-featured or competitive apps that don't go through the store. Microsoft tried something similar in Windows 8 (certain DirectX features only available for Metro apps, strict guidelines what a Metro browser can do, ...). This is the reason Safari on iOS is lacking certain features wrt. PWAs, and the reason Flash was banned outright (instead of saying e.g. it has to be made more reliable).
If web apps were as powerful on iOS as they are on Chrome or ChromeOS, then many iOS apps including games would be written as web apps, and Apple would not get their 30% share. If someone would port a JVM or .NET CLR to iOS, then you could sideload those apps and circumvent the app store, too.
Doing this is still dead simple and in no way requires a JIT.
Well, there is no ban on interpreted code but JIT -> just in time compilation, which in many cases produces high quality (gcc -o2) code.
If Apple was actually concerned about circumventing the App Store review process for the purposes of security, they would implement OS-level sandboxing and security models (e.g. something capability-like) - this is both far more secure and allows for more freedom to make apps.
But they don't, because it's not about security - it's about profit.
I think the more specific match to what Apple is blocking with these rules is anything that resembles an App Store-like experience. Apple doesn't want anything that can download and run arbitrary apps, because that would dilute their platform control and other advantages. There's an excellent piece about why Apple is so afraid of this (https://stratechery.com/2013/why-doesnt-apple-enable-sustain...).
This motivation provides a more specific match to preventing arbitrary code execution: An App Store-like experience is almost impossible without downloading and executing code. It also matches the exception that Apple provides for "educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes" (https://developer.apple.com/app-store/review/guidelines/#2.5...).
Furthermore, this perspective is support by other policies as well:
1. This is why Apple doesn't allow third-party web rendering engines on the App Store. A third-party web engine could also be used to create an App Store-like experience.
2. See 4.2.7 (https://developer.apple.com/app-store/review/guidelines/#4.2...), the rules around what remote desktop apps can do. These restrictions seem specifically written to prevent remote desktop features from being used to create an App Store-like experience.
So, while I think rule 2.4.2 does help with the goals you listed, if it were just about those goals, these rules would be written differently (e.g., allowing downloading and executing scripting languages). And I think there's more evidence that rule 2.4.2 is more about preventing third-parties from providing App Store-like experiences.
Thats completely irrelevant to anyone else's iPad, which has no impact on your iPad's security. Would you be in favor of Apple banning whatever Mac OS app you use because I don't want to use it?
And what even is the point of having a secure iPad if you're also going to run an insecure computer?
This nails it. I want full control and the ability to run anything on my computer. I want my phone to "just work" and I never want to fuck with it or worry about what's on it. They are different devices with different roles.
What I do wish for is open ARM hardware with similar performance. I am totally certain that it is coming now that Apple has demonstrated just what is possible. Ampere, Samsung, Marvell, etc. are surely working on high performance designs now if they weren't already.
There is nothing magic about what Apple did with the M1. They built a really high performance ARM core by applying a lot of the same things that have been done for high performance in the X86 world but without the X86 dead elephant strapped to their back. The M1 can be duplicated if not exceeded.
The obvious question is why has Qualcomm failed so hard at even keeping up with the A series? They're untouchable for radio stuff but their CPUs are very average. Samsung are also trying very hard with average results.
The M1 isn't Apple's first crack at this that is some fluke which will quickly be overtaken by someone else. Everyone else has already been in a race to beat their A-series chips and failed miserably. The M1 is just the first time we've been able to benchmark it on a real OS. If someone beats it, it will be AMD retooling their cores and doing it in 3-5 years (Zen was originally battling an ARM variant internally at AMD)
Android occupies the lower-end side of the phone market, so there's less of a drive for the absolute highest performance. There has until very recently been almost zero desktop or laptop ARM market or server ARM market.
Apple also has a ridiculous amount of cash sitting around and could afford to fund R&D ahead of market demand and develop a truly killer ARM architecture. Everyone else is now behind, but what I'm saying is that there's not much in the M1 that is secret. It's just well-understood performance CPU engineering techniques deployed well on an ARM chip and the added efficiency is largely due to the lack of X86 cruft overhead and the 5nm node.
The rest of us can get on with using the otherwise wasted power of all these tiny computers.
Think of the waste caused by Apples profiteering.
Whats that about Apple waste? Its people that waste and drive waste.
Id love it if I could load my own OS and do whatever on this little phone, but only if iOS itself was still locked up. I dont need to add even more worry about the safety of my “phone” (really portfolio of everything Ive done since Ive been online)
You can execute whatever arbitrary code you want on an M1 Mac, up to and including completely custom kernels, if the user set their Mac to allow such code. It's not locked down and its not an iPad or an iPhone. I agree that the iPhone and iPad are unacceptably locked down, but the Mac is not, and there's absolutely no reason to group them together.
You can't run unsigned ARM binaries on M1 Macs. Hell, you can't run un-Notarized apps on any Mac running a recent macOS release without knowing some arcane trick to open them.
They need to be ad-hoc codesigned; ie, codesigned with a certificate you made up on the fly, unapproved by any one. This is an implementation detail and nothing more; Apple likely did it to simplify how binaries are loaded.
Running un-Notarized apps is extremely trivial if you know how to use the Terminal. IMO, anything you can easily turn off if you want to is "not locked down".
On the other hand, I see so many software developers vehemently refuse to notarize their Mac versions. Notarization is far less egregious and it pains me to see so many straight up refuse to even consider it as an alternative to the iron grip of the App Store.
Yes, Android does have some apps that can’t exist on iPhone, but I wouldn’t say that most people find them compelling or care about them. Those that do already have Android.
As a developer, I can make apps for my own device without telling (or paying) anybody and use old devices like somebody else might use a Raspberry Pi.
I can use real Firefox with real uBlock Origin.
I can get free apps from Amazon App Store. I can get verified secure open source apps from F-Droid.
I can use separate restricted accounts on my for kids and guests.
I can use a separate launcher experience for driving without needing to purchase a head unit.
I can watch videos (including the "GIFs with sound" that proliferate on Reddit) with the sound off and on-device generated captions. I can copy text from arbitrary screens, even if that text is in a picture.
I can route all my calls through Google Voice or any other calling service. I can open map links in any mapping app I like.
I can use emulators and native apps for game streaming services.
I can have my photos automatically upload in the background.
I can update my browser engine and a lot of other "system software" without a reboot.
I can use headphones without ever charging them. I can unlock my phone while wearing a mask.
I can filter notifications the same way I filter my mail.
Using iOS would be a massive productivity drain as well as an entertainment drain and security loss. Most of the people I have demonstrated these things to have found one or more of these abilities compelling enough to have switched.
I liked a lot of things about iOS. Apps for Android tablets are still largely terrible and there is some bizarre behavior around SPens and multi-touch that I don't understand. But I could never go back.
The biggest benefit is I have all my files automatically synced between my phone, tablet and laptop. I never have to manually push something to the right app, then figure out how to get that on my Windows laptop. It's just there. Whether it's emulator save files or ebooks or documents or photos or anything else.
Maybe I wrote a document on my laptop, which I don't have on me and I forgot to send it. I always have my phone, so I'm in never in a position where I don't have access to that document and can't complete that task.
Maybe I have to wipe my phone or I get locked out of it, and I don't have to worry about losing anything and I don't have to put in any extra effort into backing things up (with the risk of forgetting something).
In short, a proper mobile Linux distro is needed, as Android is already far from perfect and getting worse. Hopefully some of the projects spawned around and related to PinePhone can cover that over time. :)
That said, I mistook your comment as disdaining Android users - not saying that they were a market you were not interested in, which is more reasonable and I should've understood that initially.
Good, I'm glad I'm not the only one who does this.
> Notarization is far less egregious and it pains me to see so many straight up refuse to even consider it as an alternative to the iron grip of the App Store.
Notarization requires developers to pay Apple $100 every year if they want to notarize their software.
See https://developer.apple.com/documentation/security/notarizin... for the notarisation process and https://support.apple.com/en-us/HT202491 for the customer-facing documentation, which includes how to work around it when needed.
Gatekeeper can be totally disabled via sudo spctl --master-disable.
And there, it's not even deterministic, see https://www.digicert.com/dc/blog/ms-smartscreen-application-...
The goal of the system is to authenticate which developer made a given piece of software, to be able to track the spread of malware. An option is always given for a user to opt-out.
If you had to do this on Linux to run software that wasn't notarized by Red Hat, HN posters would write about how unfriendly and developer hostile Linux is.
Sure, Apple did it for selfish reasons and they'll keep their platforms locked up as much as they can get away with, but the end result is a benefit for all as powerful and open RISC systems proliferate.
No, not in the next few years. In 10 years? Maybe. https://news.ycombinator.com/item?id=26917136
To produce a "decent non-apple ARM desktop and laptop computers" other companies need to have started developing such a CPU 5 years ago.
The fact is that because Apple sells the iPhone for high profit margin and earns from the services and software sold on each iPhone, they can afford to stick a big, expensive chip in there. In contrast, profit margins on most Android phones are razor thin. Qualcomm has to design a chip that performs relatively well for as 'expensive' as the market can bear, as when their top chip is too expensive, OEMs will just build their phone with one of the lower tier Snapdragons.
Once you adjust for transistor count, Snapdragons et al are much closer to Apple's A-series than you'd think at first glance.
As for the M1, what shouldn't be discounted is the fact that Apple controls the entire stack, which means they could build in special features into it that together with Rosetta 2 make running X86 relatively performant.
The problem you've got here is that the iOS model has worked incredibly well for Apple. Without that you wouldn't have had the investment that has delivered the M1.
I'd love to be able to run Firefox on the iPad. I also disagree strongly with some of Apple's decisions - especially on the App Store. However, where we are now is a better outcome than a hypothetical position where iOS is less successful and Apple is using inferior CPU designs. After all I can always buy an Android tablet if I want to run Firefox.
And also you might care because we're on a forum full of developers knee deep in a thread and walled gardens and their relation to customer architectures, and it might be relevant to that thread that code that's common to every other Firefox platform target isn't as common on iOS.
If you used Firefox extensions - as many others do - then you probably would.
> Until I can run a proper version of Firefox on iPad
FireFox for iOS works just fine. The Gecko vs WebKit difference doesn’t really matter in practice.
If you want general purpose computing, just get a Mac. You can run Firefox and any other program you’d like. It would be great if there was an opt-in developer mode on iOS that bypassed certain restrictions, but I also understand why Apple chose to go with security and simplicity as 99.9+% of their customers have no need nor desire to go beyond the security and platform restrictions.
I have both an iPad Pro with keyboard case and a MacBook. Even if I could run whatever I wanted on the iPad, I’d still be reaching for the MacBook because it’s just a better physical platform for doing anything other than simple touchscreen and stylus work.
There’s even a way to get W^X memory regions on iOS by abusing ptrace: https://saagarjha.com/blog/2020/02/23/jailed-just-in-time-co...
It can’t be submitted to the App Store or deployed with TestFlight, but you can build and install an app using that hack just fine on your own device.
Open source browser vendors, like Firefox and Chromium, could provide builds that enable a full browser engine experience on iOS devices, were they to think it worth the effort.
This is why the iPad needs a way to disable SIP (and the additional security features) just like the Mac. I could give a heck about the iPhone, to be honest, there's maybe one time in my life being able to JIT Python or whatever would've been useful on my phone. But they advertise the iPad as a computer, and yet their software restrictions make it a portable TV.
https://9to5mac.com/2020/11/06/ios-14-2-brings-jit-compilati...
That's not at all true. It's not useful for some subset of what certain geeks want to use it for. It's very useful for all the other things a highly portable computer hooked up to a bunch of really cool sensors and a very capable peripherals ecosystem is.
Ordinarily I'm all for arguments that we, as an industry (software developers, that is) are laughable failures, but I don't think we've failed so badly that computers are useless if you can't—for any reason, including personal inability or lack of interest—run (e.g.) Python on them.
It's more of a death by a thousand cuts scenario at this point rather than major things being completely missing from iPadOS, which is why it's painful to watch as they sell extremely powerful hardware that could be used for something cool if not for the darned restrictions.
- Run full linux on it (both emulated X86 and via WASM magic, via A-Shell and iSH, both on the App Store)
- Coded Python, C#, Javascript and Lua on it (via Pythonista, Continuous, Scriptable and Codea) _and_ ran the code on the iPad itself
- Wrote blog posts for my old static site and pushed them to a git repo to publish them (via iA Writer for writing and Working Copy for Git)
- Connected via SSH and RDP to "real computers" (via the Remote Desktop app and Blink!, though there's many SSH clients on the AS)
- Used SFTP to transfer files to/from said computers/servers (via Secure Shellfish)
There's also an entire class of apps built upon the Shortcuts model, that allows you to extend and improve upon the Shortcuts (née Workflow, third party now first party) "coding model", which is very powerful and heavily integrated with the device and Apple services - though very different from "traditional" coding.
Is it a limited platform? Yes, absolutely.
Is it a general purpose computer? Yes, most definitely.
Can you do "geeky things" on it? Well, I've been doing them for years.
Can you run a full UNIX-like dev environment on it? Well, yes, with tricks. But why would you want to, when there's plenty of options that do it 1) natively 2) better? Use an iPad for what its purpose is, not for what a Mac's purpose is.
It's not actually usable for anything. It's also a completely arbitrary and needlessly-punitive restriction—if I've opted in to installing custom software, why limit me to three apps at a time, and why make them only last a week? What security benefit does that provide?
However, an Apple ID is needed, which requires an email and working phone number to get, along with additional EULA/terms acceptance. It's not really a mode, but an additional network service with its own terms and conditions.
Yeah; sorry - it really does - I vastly prefer Gecko’s rendering engine and notice it’s considerably speedier and more responsive on my MacBook Pro side by side to the newest Safari. The app even opens faster.
Not only that, but I imagine there are a ton of web devs here in the comments who have a requirement testing on the actual FireFox, not some light skin on top of the existing WebKit engine with bookmark sync support.
FireFox for iOS is the farthest thing from ‘FireFox’. It’s in name only.
I do wonder how the 12” iPad Pro with Magic Keyboard would compare. I haven’t used one yet, but I suspect it would be pretty good. The 12” display seems a little large for a tablet, though.
The power cables are too short and the obsolescence is too planned in modern Apple hardware.
As for RAM, you can get 13" MacBook Pros with 32GB of RAM and 16" MacBook Pros with 64GB of RAM, and if that's not enough you're probably not going to have the easiest time finding options with more from other manufacturers, especially in a form factor that isn't a gigantic brick.
Do you mean that you want a matte screen? If not, Mac screens are generally among the brightest on the market and have very good anti-reflective coatings. Almost any competing laptop in the same price bracket is likely to have a lower quality screen.
I'm fairly confident Apple hardware has a much longer usable lifespan than competing products—that's why the maintain so much value in the second-hand market.
It's not in their interest to sell/provide and support an experience they didn't make. Their success shows that experiences are all that really matter despite what the vocal HN userbase routinely shares.
As though Apple is an open source company selling to developers.
This is the same reason I don't use Microsoft or Google's stuff unless I have to. Knowledge wants to be free.
It's like arguing that we should have no laws whatsoever because they impact your freedom to do whatever you want—but no one wants to live in that society. If you don't like Apple or Google or Microsoft that is still your privilege but arguing that is what everyone should have is disingenuous.
The Internet supports your freedom to say or do whatever but people every day show that without some limits everyone suffers. You might think you are smart enough to defeat all those who will try to take you out, but there are much smarter people than you or I out there and lots more of them, and many of them are evil.
As per the article, those visiting the comments were primarily interested in discussion about JIT performance, comparisons between ARM and x64 instruction sets, GameCube/Wii emulation, etc.
Instead, every single post on HN even tangentially involving Apple is taken over by these self-important haters and their mindless takes, which are often full of false assertions anyhow.
You are a platform war spammer and nothing more. It’s a shame the admins won’t put a stop to this, as it’s turning Hacker News into a vehement cesspool for discussion.
We've marked the GP comment off topic now. Certainly it was an example of a generic top subthread, which are the black holes of HN discussion: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que....
Between this and your other recent flamewar comment on the topic (https://news.ycombinator.com/item?id=26994894), I fear you may be falling prey to the community-bias fallacy that I wrote about in a completely different context earlier today: https://news.ycombinator.com/item?id=27268490. HN isn't pro-Apple or anti-Apple — it has users who fall into both of those camps, as for any $BigCo, but unfortunately they each perceive the community as dominated by the other side, which leads to a lot of very bad flamewar comments from both camps.
Please don't post like that any more. Instead, if you see a generic comment taking a thread badly off topic in a predictable way, let us know at https://news.ycombinator.com/newsguidelines.html so we can downweight it. Giving us a heads-up in such cases is one of the highest-leverage things people can do to improve the quality of HN threads.
The only reason apple was able to pull of the M1 transition the way they were able to is BECAUSE they have such control over their ecosystem.
Windows / Microsoft tried with itanium and ARM with much less success.
The platform war folks always take the most negative view possible, cannot even IMAGINE why apple might have chosen the approach they chose.
Well, M1 is what happens when you control your platform. PowerPC / Intel / ARM -> this control has let apple evolve dramatically.
1. https://en.wikipedia.org/wiki/GameCube_technical_specificati...
But I guess it's somewhat related. :P
This is what I am looking forward to. In the case for Apple Silicon, the next generation will be even better and is not far off from announcing the newer processors that will supersede M1 in WWDC.
The M1 only shows what's possible for Apple Silicon and the newer generation of ARM-based Macs will impress further. So will skip this one for now and wait what WWDC has to offer for the next generation.