C# mieux que java, c'est toi qui le dis, et pas vraiment portable, tu peux essayer
Mono , mais je ne garantis rien
Plus sérieusement
il existe plusieurs librairies permettant de faire des applis graphiques multi-platformes:
GTK
QT
et sûrement bien d'autres