Back Original

Finally, we can worry about cross-platform dev again

Recently I was at a workshop on agentic programming, and the presenter mentioned a tool which was presumably itself developed with LLM assistance.

Ironically it only works on Mac OS. It's a tool that promises to help you build whatever you want, but I guess nobody wants that on Windows or Linux.

But actually, it's not so easy.

Cross-platform development is at odds with vibecoding, which needs a tight feedback loop between editing the code, building the app and checking the results. If you're not playing spot-the-difference on each target platform, it's more YOLO merging than vibecoding.

On the other hand, agents can do surprisingly well when given a detailed spec. The prompt "get this app to build on this other platform" is well-specified but it creates coordination challenges. Can you make your app build on one platform without breaking the build on another? Do you have agents on different platforms that are working together?

The quick answer is to just develop for the web, but desktop operating systems and apps are still relevant wherever high performance and local file access matter. We still need them, and the idea of dual booting sounds archaic.

Aside from cross-platform compatibility, there is also forward and backward compatibility. I maintain a few retro machines for fun, but they are not easy to develop for. Agent-driven porting or recompilation could make it much easier to preserve and maintain old software.

In 1995, Sun Microsystems declared that Java code was write once, run anywhere. Taken literally, it was wishful thinking, but it still represented a big leap forward over its contemporaries. The Java compiler itself was even free, unusually for the time, which further lowered the barrier to going cross-platform.

In theory, it has only gotten easier in the 30 years since then. But we do need to want it, before we can have it.