Eigentlich sollte es ja gar kein Problem mit der Einführung von neuen Plattformen geben, da schon längst das Konzept der Hochsprache erfunden wurde. Folgendes ist aber leider nur ein schöner Wunschtraum:
Alle Software ist in Hochsprachen wie Pascal, C, C++, Java, Ada, ... geschrieben. Wenn ein Unternehmen von Xeon-Maschinen auf neue Hardware mit, sagen wir, RISC-V Prozessoren umsteigen will, dann kaufen sie einfach die neuen Rechner, stellen sie auf und installieren das OS und einen C-Compiler (gibt es für jede Plattform). Das CAD-Programm, mit dem das Unternehmen arbeitet, wird mit einem geeigneten Cross-Compiler in C übersetzt, das Resultat dann auf der neuen Hardware in Maschinencode. Nun können die Mitarbeiter auf den neuen und schnelleren Rechnern nahtlos weiterarbeiten. Und wenn das Softwarehaus, von dem das CAD-Programm stammt, den Quellcode nicht herausgeben will, macht es die Portierung auf die neuen Maschinen einfach selbst.
Warum ist dieser Wunschtraum keine Realität?
Ich glaube, der Hauptgrund ist die mangelnde Portabilität. Nicht alle Compiler für die Hochsprache X übersetzten exakt die gleiche Sprache. Die meisten Compilerbauer sind der Versuchung erlegen, abweichend vom Sprachstandard kleine Verbesserungen und Erweiterungen in die Sprache zu basteln. Oder sie machen einfach irgendwas ein bisschen anders als andere, ohne bestimmten Grund. Und wenn man heute ein wirklich großes und komplexes Programm mit einem anderenen Compiler übersetzten will, bekommt man einen ganzen Sack Probleme, die das Vorhaben erschweren oder völlig unwirtschaftlich machen.
Lizenzrechtliche Hindernisse kommen vielleicht auch dazu, aber wenn es nur das wäre, dann hätten die Softwareanbieter wohl in den meisten Fällen kein Interesse daran, sich querzulegen und die Portierung zu blockieren.