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

Don't drink the Kool Aid.

We have been doing multiplatform development for a long time. It is in our company's interest not to depend on a single provider(like Apple, MS or Google) for anything.

It is also in those single provider interests to make you depend on them as much as they can, because every company wants to become a monopoly. If you can not change provider overnight, they have a virtual monopoly over you.

E.g MS spent literarily billions in order to make game developers to develop exclusively for Windows using technologies like DirectX and when people started using graphic cards for everything, like CAD, CAE, crypto, Microsoft(and Nvidia as her partner) benefited immensely from their virtual monopoly.

Technologies like objective C, C sharp, Azure or swift are designed so you can not escape the company platform. So easy to get in, so hard to move your code to other platforms once you have been programming for years on them.

Unless you spend as many Billions as Microsoft or Apple or Google has spent in alternative platforms, those alternative platforms will have significant caveats.

What we do is compromise, like with so many things in engineering. We use Linux, we use web technologies, but we also create native programs in Macs and Windows and tablets(Including Android NDK) because there is no way around it. You must use native for things that must be efficient and are extremely demanding, or some times it is just way easier. Most of our code, like 90-98% is portable libraries that we could use in every platform, but that 2% to 10% must be done native.

One of the great things of our approach is that we are not opinionated. We generate automatically code for different platforms, or different OS and we could just compare without prejudices. If tomorrow the Web backbend were as good as native we would shift our focus on that platform. But it is not today, very far from it.

If the only thing that you do is using programs like text editors that were available in the 90s, then sure, you can use electron for everything, spending gigabytes of memory for opening a single file.

But if you don't you are better served if you remember that it is going to be a constant fight. The price of freedom is eternal vigilance. Companies are never going to stop trying to lock you in, and you should never stop wanting more freedom.



"Technologies like objective C, C sharp, Azure or swift are designed so you can not escape the company platform. So easy to get in, so hard to move your code to other platforms once you have been programming for years on them."

FYI, Swift is available on Linux and Windows along with a significant chunk of its core libraries (e.g. https://github.com/apple/swift-corelibs-foundation) and app frameworks such as Vapor (used for writing web apps and APIs).


C# is also cross-platform. .NET Framework has been completely replaced with .NET Core now (and renamed to simply .NET).

The only part of cross-platform support that's a little wonky is the GUI, but that's because Forms is just a thin wrapper over the Win32 forms API and WPF was built around DirectX. But that should get a lot better in a couple months when Microsoft releases MAUI (Multi-Platform App UI).


This approach works, and the user experience may be great. But it is very costly to build, and very costly to maintain. Compared to Electron, you need a few Javascript devs to spin up an app that runs on every major operating system AND in browser.

I think economics is the real reason they won. And Google pumped a lot of money in this space, too.




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

Search: