It is indeed not possible if we keep making software the same way. But it doesn't have to be.
And even if it did, it would take so long to develop that it would never get released before it was already too old to be useful.
I am not suggesting anything that would increase development time, in fact it is the opposite. Having to explicitly support multiple platforms is hell for both developers AND users