На чем писать программы под Linux?
С/C++ если вам нужен нативный код. Python еще можно использовать, но нужен интерпретатор, хотя в линухах он обычно есть.
Разработка на C\C++ используя gcc-компилятор дает возможность использовать приложения и в nix и в win системах, за исключением минимальных доработок.
Python-интерпретатор (по-умолчанию идет во многих nix-системах), а в WIN-системах установленный поверх - дают возможность писать код где угодно и использовать его фактически без ограничений.
Вообще говоря, отвечая на вопрос "можно ли писать программы для Linux под Windows" - можно ответить смело - можно, притом писать можно на любом языке: открываете блокнот в Windows, пишете код, компилируете этот файл уже в Linux, перебросив его туда, в соответствующей кодовой странице (кодировке).
p.s. Ну и shell (bash априори) никто не отменял, в linux мощное средство!