В принципе, никто не мешает писать кросс-платформенный код в Visual Studio. Компилировать, правда, всё равно придётся целевым компилятором, но это же нюансы
Весь проект можно создать и оттестировать в Windows, а потом просто скомпилировать все те же исходники в Linux.
wxWidgets - кросс-платформенная библиотека для GUI. Windows и Linux поддерживает, так что можно писать приложения с графическим интерфейсом и компилировать на обеих платформах один и тот же код (на деле будет использоваться одна обёртка над разными API, но это внутреннее дело библиотеки), и он, по идее, должен одинаково работать там и там.
А то, что писать всё равно на чём - видимо, задания под конкретный язык не заточены, а у многих языков интерпретаторы есть для большинства популярных операционок, так что с ними ещё меньше проблем по кросс-платформенности кода.