Un lenguaje que yo uso para la programacion en multiplataforma es python por que tiene una capa de programacion en alto nivel que hace que no nos demos cuenta para que S.O. estamos desarrollando.
Por ej. hace poco hice una rutina para manipular los nombres de un conjunto de archivo, lo desarrolle en linux y luego lo ejecute en windows.
En python hay paquete de funciones que simula un procesadors comandos que funciona igualmente tanto windows como en linux ademas de tener tambien un paquete para manejo de ventanas que digamos que por defecto trae el tkinter, un ejemplo de programacion en tkinter es el amsn.
El tkinter funciona en modo identico tanto en linux como en windows.
En gral la programacion suele ser identica entre ambos S.O., se crea un ejecutable que luego invoca librerias del sistema para concretar su objetivo que tambien se puede invocar de la linea de comandos como desde un entorno grafico haciendo un click o dos click segun que se use.
Otra cosa, en la programacion, para windows, yo, al compilar y crear, se crea un solo archivo, ejecutable, que al hacerle click, se ejecuta el programa, en linux como es?
Saludos

:D