Anda dapat dengan mudah melakukan pengembangan lintas platform apakah Anda seorang programmer sistem, pengembang web atau pengembang aplikasi desktop. Jika Anda tertarik pada sistem, maka utilitas dan / atau driver apa pun yang Anda tulis untuk linux cenderung bekerja dengan baik untuk * nix lainnya dengan modifikasi yang sangat minim. Asalkan Anda menulis kode C standar dan tidak menggunakan terlalu banyak panggilan khusus sistem, mereka mungkin bahkan mudah untuk port ke windows.
Jika Anda seorang pengembang aplikasi desktop, Anda dapat menargetkan GTK, QT atau wxWidgets dan aplikasi Anda kemungkinan akan berfungsi dengan baik di 3 platform utama hari ini (* nix, Windows, Mac). Sekali lagi, pertahankan panggilan spesifik sistem seminimal mungkin atau mengisolasikannya ke dalam pustaka pembungkus yang akan menjadi spesifik sistem. Anda menelepon juga menargetkan Mesin Virtual seperti JVM dan / atau CLR yang akan memungkinkan aplikasi untuk bekerja di seluruh papan.
Jika Anda seorang pengembang web, maka Anda cenderung mengalami terlalu banyak alternatif berbeda untuk dipilih. Saya lebih suka server web kecil yang disebut Cherokee dan saya mengembangkan dan menjalankan aplikasi ASP.NET (mono) dan Django yang berjalan di atasnya dan menggunakan backend PgSQL.
Jadi kesimpulannya adalah bahwa pengembangan lintas-platform di Linux dapat dilakukan, asalkan Anda dapat mengkompilasi kode pada platform target dan Anda mengingatnya saat menulis kode Anda atau jika Anda menargetkan VM. Poin lainnya adalah Anda mungkin menemukan Paradox of Choice dan tidak tahu apa yang harus digunakan. Untuk itu baca di bawah ini jawaban saya untuk pertanyaan kedua.
Mengenai pertanyaan kedua, sumber daya terbaik yang saya temukan disebut Sumber Terbuka Alternatif . Situs web ini mencantumkan perangkat lunak komersial dan alternatif sumber terbuka mereka. Hampir semua alternatif berjalan di Linux dan FreeBSD.