Hacker News new | ask | show | jobs
by fsflover 1210 days ago
> but a phone is not just "a small desktop"

Why not? It's a general-purpose computer, isn't it? Why intentionally design an OS in such a way that you must rewrite all software for it from scratch?

Yes, the UI is very different, but changing the UI is much easier than rewriting the program from scratch. Why is there no full Firefox on Android? It was already adapted for GNU/Linux phones and runs fine there, but not on Android. Same for LibreOffice AFAIK. Isn't it due to the design on this OS?

1 comments

You don't have to rewrite everything from scratch, you can already use C++ or other languages, only the front end of software must be rewritten. And it's also possible to use other ways, like a graphics renderer or wrapper.

> Why not?

As I said, much less energy thus less processor cycles, much less L2 cache memory, no x86. The main reason it's entirely different is to force developers to make an app that doesn't drain battery, which is why it's very much different: it can do a single thing at a time, the software must be pause-able at any time, it can only run when the OS is okay with it, it can only animate in certain way, only use a very small subset of opengl capabilities, etc

The ways smartphones' OS work is a fundamental part of how it can save battery. It is painful for developers so that in the end, batteries last longer. Desktop software is millions years away from being energy-efficient, most of desktop or server software is generally ruled by the law of Wirth: "software is getting slower more rapidly than hardware is becoming faster."

Of course it's a big constraint of how developers can make their software work, but they don't need to rewrite "everything", they just have to adapt.