Uygulamalarin dependency libraryleri icin de compatibility yazman gerekecek.
Battlefield V de bir "exe" , hesap makinesi de bir "exe" Windows uzerinde. Her executable dosya arka planda tonlarca yardimci kutuphaneye ve calismak uzere dizayn edildigi isletim sistemine bagli sistem kutuphanesine bagimli olmus olabilir.
DirectX icin compatibility yazacaksin, GTK icin yazacaksin, .NET Runtime icin yazacaksin, C++ Runtime binaries icin yazacaksin, Mac uzerinde Carbon ve Cocoa icin yazacaksin vs ki bunlarin tamami aciktan paylasilan seyler degil, ustteki mesajdaki arkadasin dedigi gibi cogu zaman reverse engineering yapmak durumunda kalacaksin ya da mock yapacaksin compatibility icin.
Diyelim ki basardin, maintain etmek de kabus olacak. Tum bu potansiyel dependency listesinden birine update geldiginde sen de compatibility update yapmak zorunda kalacaksin. Windows .NET e update cikarsa sen de cikmak durumunda kalacaksin, Mac Cocoa yi degistirdi, sen de degistireceksin ki guncel kalabilesin.
Teknik olarak mumkun mu evet mumkun. Elinde yeterince kaynak varsa yaparsin. Ama pratikte imkansiz.