Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Brilliant move. Show what is possible. Let individual developers download the source & build themselves, and run it. Make it real, make the only obstruction a legal one, one that is increasingly full of holes as a small exterior/outside hobbyist community bypasses the longstanding trenchancy Apple has dug, has moated themselves in with. Give people that first whiff of freedom.

And if someday hopefully some of the anti-trust anti-competitive legal moats do get torn down, Google will be ready.



As far as I know, JIT is disabled on iOS at the moment, so one thing developers would notice right away is abysmal JavaScript performance. (Early versions of V8 didn't even have an interpreting or bytecode path, to my knowledge, so it wouldn't even run without major modifications!)


Even if Firefox and Chrome used Gecko and Blink with JSC, that's still a marked improvement from the state of things today. Most of what I dislike about Safari are its weird rendering issues, which would be solved.


Just to be clear though, you will just be getting Blink/Gecko’s rendering issues instead.


You'd be getting the ability to choose which rendering issues you went to experience for any given website, which is actually quite useful.


Which is true, but they're much less prominent overall. Mobile Safari is quirky to say the least and is truly the IE of the present day.


Are they really? Safari is currently leading Interop 2022 https://wpt.fyi/interop-2022


Given how vast the modern web specifications are, you could really be 99% compliant but provide a pretty mediocre experience to your users, or vice versa.

For example, I use Firefox as my main browser, and the lack of e.g. proper WebAuthN support on macOS has a much, much higher impact to me (and is making me consider switching), whereas I couldn't care less about e.g. WebUSB (which I do occasionally use, but I'm fine switching to Chrome for that use case).

To get an accurate picture, you'd have to somehow weigh all of these various standards and features in a way that not only accurately presents actual users, but also their relative importance (i.e. do websites trying to use something fail gracefully, or do I effectively have to use another browser to get achieve what I'm there for).


Ideally or potentially Firefoxes or potentially say Servos or any other browser of choice. As opposed to the very-low not-so-common denominator of this anti-invested in naughty stepchild of the Apple 30% rent-stealing profit-garden that is modern Apple.


That's not how it works; to use JavaScriptCore's JIT you need to load up a WebKit web view (which runs in a separate process).


That's objectively untrue. Even the most basic Google search shows that this is untrue.


Just Googled it and it looks like you’re the one who’s wrong… did you actually Google it yourself before posting this?


Can you show a source, then? I‘m also pretty sure JIT (i.e. write+execute) permissions are enforced at the process level.

Some apps work around this by running JavaScript in an invisible WebKit view, but that approach has IPC overhead, so is probably only worth it for processes that interact with the UI and rest of the app infrequently (which is the opposite of what you‘d want from a JS engine interacting with the DOM).

a-Shell uses it for performant WASM execution of CLI executables, for example.


I think that you just need a special entitlement to enable w+x page. I could be wrong though, haven't dug too deep in this.


That's only officially available for macOS, I believe: https://developer.apple.com/documentation/bundleresources/en...

I've seen some reports of it also becoming available for iOS, but it seems to come and go between minor version upgrades and I'm not sure what the current status is.


It's not available for iOS and never has been.


Maybe not officially, as I mentioned, but it does seem to have been available at least for one minor version: https://9to5mac.com/2020/11/06/ios-14-2-brings-jit-compilati...

Might have been a bug; might have been a feature available earlier than planned.


It’s a bug.


Not an iOS developer; what does available mean in this case? Are you talking actual OS support, or simply that Apple has never approved any app attempting to do it? Because Safari obviously does it so my thinking is the OS must support it, but I guess Apple has a policy not to approve it.


Apps that want to JIT need an “entitlement” from Apple (in other words they have a signature from Apple that the operating system validates before letting the APIs work). So the OS supports it, Apple grants that entitlement to Safari so it can use it, but no third party app can get this entitlement.


But surely once "sideloading" (I hate that term, we used to just call it "installing"...) is enabled, apps not installed through the App Store will be able to utilise this entitlement?


No, all apps (including those that are sideloaded) must be signed with a provisioning profile that comes from Apple.


I have a hard time believing Apple will get away with such a scheme. But time will tell I guess.


Hope so. There should be some developer capability somewhere. And we should build for the reasonable good future, & show whats possible. Not what we can mete from the iron mailed fist of Cupertino in the real world if this or that, but what actual good is.

It'd be a mean spirited system to simply mark everything no-execute, always forever in any env. But that'd be distinct Apple flavored. Think Different, R.I.P..


> And we should build for the reasonable good future, & show whats possible.

Android is 70% worldwide market share. Chrome is 80%.

What's stopping you from showing us this good future? Where are these glorious web apps?


no


Stupid question: does JSC have a JIT?


Yes. On iOS you can only use the JIT through an out-of-process web browser (WKWebView or SFSafariViewController) so it’s likely Firefox and Chrome would use non-JIT in-process engine (even if that were JSC!) unless the JIT restriction is lifted.


I'm sure they'll just use their own bytecode interpreters. Blink in particular has one that they've worked pretty hard on.


Thank you!


>so one thing developers would notice right away is abysmal JavaScript performance

That's actually a good thing! If a substantial chunk of iOS users would use third-party browsers without JS JIT, then webdevs would be forced to better optimize their sites, because the perf ceiling would be lower on these browsers. This then would lead to stellar performance for those who stick with Safari which does have JIT! Kind of how using an M1 is so good today, because there's still a large number of Intel machines out there, so devs can't yet afford releasing software that's only usable on M1 from a cpu/energy point of view.


>performance

In 2021, Microsoft added the "no JIT" option to Edge for additional security [0], and here's the quote in their blog post:

>We see that most tests see no changes with JIT disabled. There are a few improvements and regressions, but most tests remain unchanged. Anecdotally, we find that users with JIT disabled rarely notice a difference in their daily browsing

[0] https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec...


Ah, good point – Apple has this too, on iOS [1]!

[1] https://www.apple.com/newsroom/2022/07/apple-expands-commitm...


Not sure if you’re kidding, but if not – why would users switch in the first place, if that means abysmal performance?


Because Google would be pushing it hard? E.g. when you click a link in the YouTube app, it doesn't open it in Safari, rather it shows you a "helpful" dark-pattern prompt about opening it with:

- Chrome (mind you, I don't have it installed, so this would send me to the AppStore)

- the "Google" app (again, not installed)

- Safari (which does not open Safari, rather an in-app WKWebView, so that Sundar can still milk your precious eyeballs)

- and finally at the bottom the "Default browser app" (this is what you want)

Of course, there's no setting to save this choice once and for all, so this is done each and every time you try opening a link in the YouTube app. Wait, actually, I'm 99% sure it would suddenly remember your choice if you had installed one of their browsers. From that moment they would duly open all links in Chrome/Google, without this annoying prompt.

I bet every Google app does this on iOS to get you install their crap. Disgusting practice.


> Of course, there's no setting to save this choice once and for all, so this is done each and every time you try opening a link in the YouTube app.

To be clear, the one in GMail does have a "remember this" setting, and it doesn't work.


Google is incredibly aggressive in promoting Chrome yes, but every time I've seen "Safari" as an option in a Google app it isn't WKWebView, but SFSafariViewController which is for all intents and purposes real Safari — it's essentially an out-of-process Safari tab with its own separate cookies, storage, etc. Apps using it can't snoop on your browsing session and they can't dig around in your cookies, etc from standalone Safari.


It’d be useful to see the difference clearly as a user. Personally I try really hard not to use any in-app browser because I have no clue how trustworthy the developer is (except for Facebook and Google, for which the answer is “absolutely not”).


SFSafariViewController is very distinct. Apps can't really change its UI at all.


> Because Google would be pushing it hard? E.g. when you click a link in the YouTube app, it doesn't open it in Safari, rather it shows you a "helpful" dark-pattern prompt about opening it with: Chrome

Ironically the reason this dark pattern exists is because Apple refused to implement support for user-controlled URI handlers in the first place.


“Safari” has always opened in Safari for me.


They're AB testing. Safari used to open Safari for me, but with a new phone now I too get the menu as described above.


This and the ads is why I use YouTube in Safari now.

It's annoying, as websites always have worse UX than native apps.


This has already happened. The walls have already been torn down. The EU's Digital Markets Act has made it mandatory for Apple to implement those changes by Q1 2024


Anyone care to speculate as to whether Apple will take that opportunity to permit users in other regions that same liberty? Personally, I would not bet on that outcome without similar legislation forcing the issue.


No chance of Apple implementing this outside of the EU if they are not forced to.

They are getting billions from Google every year because Safari is the most used browser on iOS, and they will do what is necessary to make this last for as long as possible.


Chrome for iOS switching to Blink from WebKit will have next to zero effect on Safari’s share of iOS browsing.


Only if you assume that the change will not cause people to switch from Safari to alternative browsers, eg Chrome.


Over time it will, but not at the speed we saw Chrome take over on desktop back in the days.


They probably will. Google "Brussels Effect"


I can see how that applies for hardware manufacturers that don't want to build multiple versions of their products; however, software can easily be region locked using a simple flag without the same economic consequences.


The issue with that is the resulting negative PR. And of course other countries are taking notes and sometimes use EU regulations for inspiration.


Most people don’t give a shit about 3rd party app stores. I doubt 90% of iPhone users even know this is happening. (I say this as an iPhone user myself). So, I’m not sure negative PR is that much of a motivator.


Note this already happened with some software, e.g. Windows EU editions excluding Windows Media Player.


I will just ask somebody to purchase iphone from Eu.


You might also need an EU iCloud account and an EU SIM.

There are many ways Apple could region lock it and the source of the iPhone would probably the least likely.


I don't think Mozilla & Google both start working on iOS browser engines just to show what's possible. They might be speculatively developing these, but I think it's definitely based on an expectation that they have a really good chance of shipping these browser engines.




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

Search: