Mengapa mono sangat kontroversial?

33

Seringkali ketika saya membaca tentang beberapa program, baik itu GNOME Do atau Banshee atau yang lainnya, saya melihat orang menulis bahwa mereka menggunakan mono - dan implikasinya bersifat merendahkan. Kenapa ini? Apakah komentar ini dibuat atas alasan praktis, ideologis, atau sesuatu yang lain?

Richard
sumber
3
mengapa tidak ada yang menyerukan agar kantor terbuka dihapus karena mengimplementasikan teknologi Microsoft (format dokumen)?
trampster

Jawaban:

36

Secara ideologis

Mono diduga oleh sebagian orang untuk mendukung Microsoft dan platform .Net-nya. Beberapa orang percaya ini bertentangan dengan tujuan Ubuntu, atau setidaknya tujuan pribadi mereka sendiri, dan mereka ingin menghindarinya.

Maaf untuk kata-kata yang bergerak, tapi aku tetap objektif. Diskusi apakah Mono benar-benar melakukan ini, dan bahkan apakah mendukung Microsoft adalah hal yang baik atau buruk, ada di tempat lain .

Praktis

Program yang menggunakan mesin virtual (seperti yang ditulis dalam Java dan C # do), cenderung menggunakan lebih banyak memori, menurut pengalaman saya, dibandingkan dengan yang setara yang tidak. Generalisasi ini tidak selalu berlaku. Meskipun ada pengguna yang ini merupakan masalah yang valid, orang sering khawatir tentang kinerja lebih dari yang diperlukan.

Misalnya, saya menggunakan laptop dengan memori hanya 1GB: ini dulunya besar. Mesin mulai menunjukkan usia, tetapi saya masih dapat menjalankan sebagian besar hal dengan nyaman. Pengguna dengan memori 4GB tidak akan melihat "memory hogs" hampir sebanyak dan harus fokus pada masalah lain. (Dan saya akan kembali ke sini dalam 5 tahun dan menertawakan nomor 4GB itu.)


sumber
4
Yah c # tidak murni berjalan di Mesin Virtual. Setidaknya tidak dengan cara normal. Ia dapat melakukan kompilasi tepat waktu dari byte ke kode mesin, seperti java, plus kompilasi di masa depan ke kode mesin dengan pengecualian (case normal), dan kompilasi old-school penuh (namun tidak pada kebanyakan platform) . Itu tidak sama dengan Java atau Parrot dalam arti itu. Lebih dari hibrida. Untuk alasan ini, di dunia nyata, sangat mungkin kode pengangkat dalam-loop penting loop Anda akan dikompilasi dengan instruksi mesin asli dalam mono.
Stefano Palazzo
1
@stefano: Saya menyebutkan penggunaan memori, bukan kecepatan eksekusi. Bahkan, menyimpan beberapa salinan kode agar JIT dapat melakukan tugasnya menggunakan lebih banyak memori.
3
Bukan hanya itu saja. Mono mungkin sangat melanggar beberapa paten Microsoft yang memberi Microsoft kemungkinan untuk menuntut seseorang suatu hari seperti yang dilakukan Oracle terhadap Google atas paten java.
txwikinger
5
Maaf, tapi tidak ada dalam "Janji Komunitas" yang mengikat secara hukum.
txwikinger
2
@txwikinger Secara hukum mengikat memeriksa pertanyaan di halaman ini. microsoft.com/interop/cp/default.mspx
trampster
16

Beberapa orang percaya bahwa Microsoft memegang paten perangkat lunak atas aspek .NET, dan bahwa sebagai implementasi .NET, Mono melanggar paten tersebut. Dengan demikian orang-orang ini merasa bahwa menggunakan Mono dapat membuat seseorang terbuka untuk tuntutan hukum paten.

Saya kira Mono sangat kontroversial karena hukum paten pada umumnya kontroversial. Tetapi kemudian ada beberapa contoh spesifik di mana entitas yang mempromosikan Mono telah membuat perjanjian dengan Microsoft yang sangat mirip dengan perjanjian paten, yang kemudian dapat dilihat untuk memperkuat argumen Microsoft tentang validitas paten semacam itu. (Tentu saja, Microsoft belum benar-benar memberikan bukti bahwa paten itu ada, sehingga mempertahankan keadaan ketidakpastian, seperti halnya klaim paten yang dilanggar oleh kernel linux.) Perjanjian ini menghasilkan perasaan pengkhianatan dan ketidakpercayaan dari komunitas lain. anggota, karena perjanjian tersebut tampaknya merugikan komunitas secara keseluruhan (dengan meningkatkan risiko paten yang dirasakan) sambil menguntungkan entitas yang membuat perjanjian dengan Microsoft. Jadi itu mengarah ke alasan lain bahwa Mono kontroversial:

Ngomong-ngomong, saya harus menyebutkan bahwa saya menulis dari sudut pandang penonton, dan saya tidak memiliki pengetahuan yang terperinci atau spesifik tentang keseluruhan situasi. Saya telah mencoba untuk tetap tidak memihak dan kebanyakan menghindari kata benda yang tepat untuk menghindari menyeret pertanyaan ini ke dalam kontroversi yang ditanyakan.

Sunting: Dalam komentar, seseorang menunjukkan bahwa Microsoft memiliki janji komunitas untuk tidak menegaskan hak paten terhadap implementasi .NET. Tapi janji itu punya cukup legalitas di dalamnya sehingga saya tidak merasa saya benar-benar bisa yakin bahwa janji itu memberikan perlindungan kedap udara tanpa menyewa pengacara untuk membahasnya. Setelah membacanya, saya bisa memikirkan beberapa celah potensial yang dapat memungkinkan Microsoft untuk menegaskan hak paten atas Mono, tetapi sejak IANAL , saya tidak tahu apakah ada celah yang secara hukum dapat dipertahankan, atau hanya kesalahpahaman saya tentang legalitas Microsoft. Jadi, sementara janji komunitas menggembirakan, itu tentu saja tidak dapat mengakhiri kontroversi di antara kemungkinan tanggung jawab paten Mono.

Ryan C. Thompson
sumber
3
Ini seharusnya jawaban yang benar-benar diterima, hanya itu satu-satunya yang menjawab pertanyaan itu. Orang-orang ragu untuk menggunakan Mono karena takut dituntut oleh Microsoft.
1
Harus disebutkan di sini bahwa Pasal 52 Konvensi Paten Eropa secara khusus melarang paten pada perangkat lunak "seperti itu" (Pasal 52/2). Yang berarti bahwa setidaknya warga negara dan organisasi di negara-negara anggota UE pada dasarnya aman dari hal-hal seperti kampanye lisensi Microsoft. (Pernyataan terakhir ini di bawah pertikaian berat)
Stefano Palazzo
1
Meskipun Seni. 52/2 telah ada klaim paten perangkat lunak yang berhasil di Eropa.
txwikinger
Jawaban ini tidak lengkap tanpa diskusi tentang "Janji Komunitas" yang mengikat secara hukum yang melindungi mono dari tuntutan paten oleh microsoft.
trampster
1
@trampster: CP mencakup ECMA 334 dan 335 daripada semua C #, dan seperti yang diterbitkan pada 2006, apa pun yang baru ditambahkan ke C # secara eksplisit tidak tercakup. Apakah Anda berharap Mono tetap 5 tahun (dan terus bertambah) di belakang .NET untuk menggunakan CP?
Fred Nurk
5

Mono adalah porting terbuka Microsoft .net.

Pada landasan ideologis, ini memanfaatkan teknologi tertutup untuk teknologi terbuka dan yang mungkin tidak sesuai dengan beberapa cita-cita GNU, dan / atau Linux.

Secara praktis, Mono tidak (untuk saat ini) mendukung sebanyak fungsionalitas seperti .NET dalam versi 3.5-nya. Namun, ini memungkinkan untuk memprogram dalam C # (dan bahasa .NET lainnya) untuk Linux, yang saya pikir adalah hal yang baik dan tidak mungkin tanpa Mono.

Popinou
sumber
9
Inti dasar dari .NET adalah teknologi / standar terbuka (bahkan jika implementasi utama Microsoft tidak terbuka, C #, bagian dasar dari perpustakaan standar dan runtime diterbitkan sebagai standar ECMA).
JanC
@ Copinou: Saya tidak pernah punya masalah dengan fitur yang hilang di 3.5.
@JanC: Bagian Mono (System.Windows.Forms) bukan bagian dari standar ECMA.
Broam
1
Sebenarnya mono bukan port, itu adalah implementasi perangkat lunak bebas dari bawah ke atas dari standar terbuka EMCA. Dan dilindungi oleh "Janji Komunitas" yang mengikat secara hukum untuk tidak menuntut implementasi standar terbuka itu.
trampster
1
@Broam System.Windows.Forms di tidak di ubuntu secara default. Dan tidak diperlukan oleh salah satu aplikasi mono yang umum.
trampster
5

Seperti orang lain nyatakan ada dua alasan utama:

1) Ideologi: Pengguna tidak nyaman dengan gagasan bahwa Mono didasarkan pada produk Microsoft sumber tertutup. Namun, Mono sendiri bersifat open-source.

2) Paten: Ini dulunya menjadi perhatian utama yang sejak itu telah ditangani oleh Microsoft ketika mereka menerapkan Janji Komunitas untuk ECMA 334 dan spesifikasi ECMA 335. Sayangnya sebagian besar orang tidak menyadari hal ini.

Benjamin Dobell
sumber
4
Argumennya adalah bahwa janji komunitas tidak cukup - ini bukan masalah kesadaran.
Broam
1

Saya tidak menggunakan Mono karena

  1. Microsoft menuduh pelanggaran IP tanpa menentukan apa yang dilanggar dan mereka menolak untuk mengklarifikasi tentang Mono, hanya mengatakan bahwa pengguna Novell dilindungi. Saya tidak percaya komunitas Microsoft menjanjikan sampai mereka mendukungnya dengan tindakan.
  2. Lisensi mono rumit. Sulit bagi ahli hukum apalagi pengguna awam untuk mengerti karena bagian-bagiannya dilisensikan secara berbeda. Tidak ada dalam open source yang begitu rumit untuk dipecahkan.
  3. Miguel de Icaza berjanji tetapi gagal memenuhi janjinya untuk merilis kode sumber yang sesuai ECMA secara tepat waktu
  4. lanskap dipenuhi dengan perusahaan-perusahaan yang mengikuti standar Microsoft karena bagi mereka standar ada yang rusak dan membuat orang lain dirugikan
  5. tidak ada kebutuhan atau manfaat yang dapat ditunjukkan untuk memiliki .NET di Linux, sedikit yang telah dipindahkan dari platform lain dan apa pun yang asli dari Linux dapat ditulis dalam bahasa lain
  6. Mono adalah masalah memecah belah yang tidak perlu; itu mengalihkan perhatian kita dan bermain ke tangan Microsoft dengan menjaga dari masalah yang lebih penting

Saya pikir siapa pun dapat dan harus menggunakan Mono jika mereka mau, tetapi pengguna yang tidak menginginkannya tidak boleh memakai Mono secara default.

LinuxCanuck
sumber
Saya tidak percaya bahwa Microsoft pernah menuduh pelanggaran pasien dalam mono. Namun pihaknya telah berjanji untuk tidak menuntut di sebuah rumah bangsawan yang mengikat secara hukum.
trampster
mesin unreal membutuhkan beberapa paket mono; tho, saya percaya, semuanya open source; suatu hari, mungkin, mereka bisa digantikan oleh sesuatu yang kita bisa tetap tenang.
Aquarius Power