Jo, aber alle nicht das wahre, vermutlich, weil:
1. Java ne eigene Sprache ist und kein Interface,
2. .NET meines Wissens nur für Win vorhanden ist,
3. SDL eine Lib ist, mit der man trotzdem compilieren muss, und die nicht für alle sprachen da ist.
Was ich meine ist ein Treiber, auf den man zugreift, und der dann die API-Calls umstellt und umbaut für das gerade eingesetzte OS. Das ganze währe dann keine eigene Sprache, für alle Sprachen verwendbar und für jedes OS vorhanden, für das es portiert wird, was mit C funktionieren könnte. Man müsste dann nur die Lib dazu einbinden bzw. die STDLIB umbinden, dass sie auf diese modifizierte geht und dieses Stück Software ansteuert, das dann wiederum den CALL an die richtige API weiterleitet und gegebenenfalls an diese anpasst. Somit schreibst du ein Programm in einer Sprache, kompilierst es mit der modifizierten STDLIB und greifst damit auf das Treiberchen zu. Und der leitet dann deine Aufrufe an die lokale API weiter, sodass das Ding überall laufen würde, wo das Treiberchen im Hintergrund aktiv ist. Welches System läuft und für welches es kompiliert ist währe egal, hauptsache der Treiber geht. Somit hätte man noch eine Stufe mehr Abstraktion hinter dem ganzen.