Linux sebagai platform pengembangan yang lengkap?

8

Saya ingin membuat Fedora Linux saya mampu mengikuti:

  1. Gunakan Linux untuk platform pengembangan yang lengkap tanpa memerlukan instalasi OS lain tetapi masih dapat membangun dan menguji program di bawah platform yang berbeda.

  2. Ganti sepenuhnya mesin Windows untuk semua pekerjaan lain, misalnya Office, Paint, Remote Desktop, dll.

Dapatkah Anda menyarankan proyek sumber terbuka dan alat untuk mencapai tujuan di atas?

Xinus
sumber
Anda ingin menguji program Anda di platform lain dengan menginstalnya? Atau apakah saya salah memahami bagian itu
Michael Mrozek
3
Pertanyaan ini diutarakan sangat umum dan karenanya tidak mudah dijawab. Ini akan membantu jika Anda dapat menentukan sedikit lebih dekat apa sebenarnya yang ingin Anda lakukan. Mungkin platform tertentu didukung oleh satu solusi, tetapi tidak semua platform mungkin. Selanjutnya, apakah Anda menerima VM?
txwikinger

Jawaban:

3

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.

λ Jonas Gorauskas
sumber
Maaf, tetapi driver perangkat sangat, sangat tergantung pada kernel (dan bahkan versi persisnya). Potongan-potongan yang berinteraksi langsung dengan kernel tergantung atau kurang lebih erat padanya (hal-hal seperti glibc, ps (1), mount (8)), potongan-potongan "sistem" lainnya kurang begitu (misalnya, urutkan (1) atau bash (1) adalah program C / C ++ run-of-the-mill run-of-the-mill, yang akan mengkompilasi dan menjalankan persis sama pada berbagai macam Unices). Keseluruhan GUI bersifat independen terhadap kernel, tetapi memiliki aturannya sendiri.
vonbrand
4

Tentukan "platform". Anda tidak dapat menguji perangkat lunak yang masuk akal untuk digunakan pada Windows atau Mac tanpa benar-benar menjalankan sistem operasi tersebut, bahkan jika mungkin untuk menggunakan kompilasi silang untuk membuatnya di Linux. Untuk pengujian nyata pada sistem operasi lain, VMware adalah alat yang hebat.

Bagian kedua dari pertanyaan Anda mungkin harus menjadi pertanyaan yang sepenuhnya terpisah. Tetapi Anda dapat menggunakan OpenOffice.org atau Google Docs untuk menggantikan MS Office, Pinta atau GIMP atau apa pun untuk menggantikan Paint, VNC atau Empathy + Vinagre untuk menggantikan Remote Desktop, dll.

Akan lebih mudah untuk menjawab pertanyaan-pertanyaan ini jika Anda memberikan beberapa kasus penggunaan yang lebih spesifik.

Sandy
sumber
Anda mungkin ingin mengingat bahwa Apple hanya memberi lisensi MacOSX untuk berjalan di komputer merek Apple. Atau Anda bisa mengabaikannya, tergantung bagaimana perasaan Anda tentang lisensi menyusut.
David Thornley
Benar, Anda tentu saja dapat menggunakan OS X sebagai OS host Anda dan menjalankan Linux dan Windows dengan VMware Fusion.
Sandy
2

Weeeeeeel, # 1 cukup doozie, Pak. Saya tidak tahu bahwa ada cara untuk mencapai tujuan ini. Kompilasi silang ke nix * lain dapat dilakukan ( dengan sedikit sakit kepala ) pada kotak pengembangan Anda, tetapi bagaimana tepatnya Anda menjalankan kode itu tanpa OS dan arsitektur yang sesuai? Ada banyak terobosan dalam emulasi sistem di luar sana, tetapi pada akhirnya ini adalah dendam. Jika Anda ingin menguji perangkat lunak pada OS / arsitektur, jalankan di OS / arsitektur itu!

Sekarang, di sisi lain, ada alat di luar sana yang membuatnya mudah untuk membangun proyek yang sama dalam berbagai konfigurasi. Cmake mungkin yang paling terkenal dan teruji. Setidaknya ini akan membantu Anda dalam menguji proyek Anda pada sistem lain, atau mendorong orang lain untuk melakukannya untuk Anda.

Untuk menjadi ongkos, saya cukup yakin ini tidak mungkin pada Sistem Operasi lain juga.

# 2 jauh lebih mudah

dan terus dan terus. Saya akan membantu lebih banyak, tetapi ketajaman pertanyaan Anda menurun tajam.

Eli Frey
sumber
1

Itu tergantung pada platform target Anda. Jika Anda mengembangkan untuk platform virtual (Java, atau bahkan. NET) Anda harus lebih dari itu. Ada beberapa platform yang bahkan lebih ramah di Linux daripada di Windows (misalnya Ruby).

Sedangkan untuk Linux sebagai desktop, Anda hanya perlu mendaftar perangkat lunak yang Anda cari. Hampir tidak ada perangkat lunak desktop windows saat ini yang tidak memiliki alternatif Linux.

Pablo
sumber
1

MonoDevelop seharusnya dapat membantu Anda mendapatkan pegangan di sisi pengembangan:

MonoDevelop adalah IDE yang terutama dirancang untuk C # dan bahasa .NET lainnya. MonoDevelop memungkinkan pengembang untuk dengan cepat menulis aplikasi desktop dan ASP.NET Web di Linux , Windows dan Mac OSX . MonoDevelop memudahkan pengembang untuk mem-port aplikasi .NET yang dibuat dengan Visual Studio ke Linux dan mempertahankan basis kode tunggal untuk semua platform.

(Penekanan adalah milikku)

Larry Smithmier
sumber