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.
> 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.