Was nutzt plattformunabhängige Programmierung

Wozu sollte man umständliche Lösungen nutzen, nur um ein Programm plattformunabhängig zu programmieren, wenn es doch einfachere Lösungen auf einem bestimmten System gibt, wie z.B getch() unter Windows, bei dem man nicht erst die Eingabe mit Enter bestätigen muss.

Im Grunde ist dies ein vernünftiger Gedanke, da man mit einfacheren Lösungen weniger Fehler macht und so Debugging- und Testzeit verkürzt, der Code übersichtlicher und einfacher wird und man dann auch auf die jeweilige Plattform optimieren kann.

Doch sobald man versucht, sein unter Windows geschriebenes Programm unter Linux zu nutzen, wird man auf Probleme stoßen. Z.B kann es vorkommen, dass man „windows.h“ benutzt hat. Dieser Header existiert unter Linux aber nicht. Jetzt ist man in der Zwickmühle: Auf eine Linuxportation verzichten, oder für Linux das Programm neu schreiben. Man sieht, es ist beides nicht das Gelbe vom Ei.

Viele Leute werden jetzt denken: „Wo ist denn nun das Problem. Ich nutze doch sowieso nur XYZ!“ Und da ist der Hauptgrund warum man versucht Lösungen zur plattformunabhänigen Programmierung zu suchen: Wenn jeder Programmierer so denken würde, dann gäbe es nur Programme für Windows und noch ein paar Randprogramme für Linux und Mac. Doch jeder, der Linux nutzt, will vielleicht auch ein halbwegs gutes Textprogramm oder einen guten Browser benutzen können.

Und hier kommt wieder die plattformunabhängige Programmierung ins Spiel. Was wären Programme wie OpenOffice und Firefox, wenn man sie nicht unter Linux, Mac und Windows nutzen könnte?