First of all, fuck Apple and their continued anti-competitive and anti-consumer bullshit. They have pulled this same kind of nonsense for over a decade now on the web platform and it’s always been about trapping people onto various lock in schemes and never once about doing the right thing.
I personally refuse to develop for their platform at this point. The first thing I do when building a flutter app is to remove osx and iOS support out of spite and because I’m never going to pay them 30% of my revenue.
However, I digress, so despite this news, I’m actually under the impression that this doesn’t impact simulators and so a lot of common development workflows aren’t impacted and additionally that there are other ways to approach this that essentially use a interpreter or some kind of dynamic modules situation.
The good news on that front however seems to be that the team as usual was able to think a few steps ahead here in anticipating Apple’s bullshit and there is a as yet unannounced but experimental new bytecode compiler that AFAIK fits into this problem space here sdk/pkg/dart2bytecode at main · dart-lang/sdk · GitHub
Hopefully, we can get some kind of official confirmation before too long regarding what things will look like moving forward as I’m mostly guessing and reading the tea leaves here so don’t take it as facts in the meantime please.
It does like during debugging. Actually I am wondering if JIT even applies to Flutter as Dart is interpreted not JIT compiled in debug if I recall that correctly
Google also charges 30% (both charges 15% in some instances, like mine). In all regards to payments and stores, Google is as bad or even worst than Apple. Don’t get me wrong: I despise Apple, but Google is not far behind, so let’s fix that to: they both suck a lot.
Again: I totally agree with all you said about Apple. I think they are the 2nd worst company in the planet (just behind Meta).
But…
Old people (oh boy) will remember the days Excel didn’t even had a splash screen, because it just opened. Visual Studio 6 used to take a couple of seconds to open. All of that in a Pentium processor with what? 166Mhz? 8Mb of RAM? A harddisk slower than a 56 RPM vinyl? Why today we have clocks at 5Ghz, 8Gb of RAM is not even acceptable and nvme’s with 7Gb/sec read speed and still things are slow as crap? In my opinion, most of it because of crap software, written in crap languages (yes, JavaScript, I’m talking about you).
So, is it really wrong from Apple to protect its hardware against crap interpreted software, so the developers are forced to actually write a good piece of software that runs at barely minimum 60FPS?
Sorry if I’m mistaken about what is really happening, but, as far as I could understand, protecting an ecosystem against slow software is something every company should be doing, especially Google (since Android devices can be as crap as possible, especially on TVs).
Clearly Apple hasn’t learnt a thing from having a judge rip them a new hole for their illegal, anti competitive practises or the EU fines been big enough to make an impact, so perhaps its time for a Apple exec to do some jail time for perjury to properly get the attention of the bean counter in charge of the company along with his cabal of nasty VPs…
On the bright side, the Dart to bytecode compiler looks very interesting!!
If im not mistaken flutter does use JIT in debug mode and by extension so does shorebird. A Bytecode interpreter has been in the works and will probably be the long term fix to this issue
Shorebird has its own interpreter that they came up with that’s used for applying the patches I think
Correct. We Interpret in an Interpreter, not a JIT. The restriction from Apple is getting a page of memory to be executable that has ever been writable. That’s only needed for generating machine code on the device, which we do not do.
The irony of this all is that that’s exactly what their lldb does, and Dart’s JIT support only ever worked when lldb was connected, so it’s not exactly as though Apple is providing developers a level playing field here… They have a “jit” permission, they just need to let normal devs use it in developer mode.
Using contents of this forum for the purposes of training proprietary AI models is forbidden. Only if your AI model is free & open source, go ahead and scrape. Flutter and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.