Można kompilować kod w C# na PC tak by uruchamiał się na PC i PPC jednocześnie, nie można wtedy tylko stosować specyficznych dla danego środowiska bibliotek czy klas. W drugą stronę jest trochę dziwniej. Jest kompilator C# dla PPC, nazywa się PocketC#, ale chyba domyślnie linkuje czy tworzy odwołania [nie wiem do końca jak się ten proces nazywa w .NET] do specyficznych dla Compact Frameworka bibliotek przez co programy nie chcą zbytnio działać na PC. [U mnie przed chwilą stwierdził .NET, że program próbuje załadować System.Windows.Forms, a on nie wie skąd mu to dać
]
Wydaje mi się jednak, że można to przewalczyć.
Sam znalazłem wadę PocketC# polegającą na tym, że całkowicie ignoruje polskie znaki diakratyczne i kompiluje przy użyciu standardowej strony kodowej, ale to pewnie można zmienić.
Co do C to nie ma prawdziwego kompilatora, który umiałby wyprodukować kod wynikowy wykonywalny na PC i PPC, ale to wynika z faktu, że mamy tu całkiem inne platformy i procesory są do siebie całkowicie niepodobne. Nie sądzę jednak by były jakieś szczególne problemy z portowaniem aplikacji między PPC a PC, byle nie używać dostępnych tylko na jednym z systemów gadżetów/widgetów.
Co do wydajności C# to programy w nim napisane są dość miłe i szybkie, oczywiście nie ma mowy o szybkiej grafice, ale można wtedy użyć dll'i w C++, które dostarczą nam brakująca funkcjonalność
[sam się kilka miesięcy przymierzałem do napisania czegoś takiego, ale mi się odwidziało
], kompilator nie jest może najszybszy, ale w porównaniu do javacw to PocketC# to błyskawica
Podstawową zaletą C# jest jego prostota [choć nadal twierdze, że w wielu miejscach to po prostu popsuta Java
] oraz to, że aplikacje w nim napisane są dla użytkownika nieodróżnialne od aplikacji opartych o WinAPI.