Mono neden bu kadar tartışmalı?


33

Çoğu zaman bir program hakkında okuduğumda, GNOME Do ya da Banshee ya da başka bir şey olsun, insanların mono kullandıklarını yazdığını görüyorum - ve sonuç aşağılayıcı. Bu neden? Bu yorumlar pratik gerekçelerle, ideolojik görüşlerle veya başka bir şeyle mi yapılmış?


3
Microsoft teknolojilerini (belge biçimleri) uyguladığı için neden hiç kimse açık ofis çağrılmasını kaldırmıyor?
trampster

Yanıtlar:


36

ideolojik

Mono'nun Microsoft ve .Net platformunu desteklediği düşünülüyor. Bazı insanlar bunun Ubuntu'nun hedeflerine veya en azından kendi kişisel hedeflerine karşı olduğuna inanıyor ve bundan kaçınmak istiyorlar.

Kıpırdatmak için üzgünüm, ama objektif olarak kalacağım. Mono'nun bunu gerçekten yapıp yapmadığı ve hatta Microsoft'u desteklemenin iyi veya kötü bir şey olup olmadığı tartışması başka bir yerdedir .

Pratikte

Bir sanal makine kullanan programlar (Java ve C # 'da yazılmışlar gibi), benim deneyimimde olmayan eşdeğerlere kıyasla daha fazla bellek kullanma eğilimindedir. Bu genelleme her zaman geçerli değildir. Bunun geçerli bir endişe kaynağı olduğu kullanıcılar olsa da, insanlar performans konusunda gereğinden fazla endişe duyuyorlar.

Örneğin, yalnızca 1 GB belleğe sahip bir dizüstü bilgisayar kullanıyorum: bu çok büyüktü. Makine yaşını göstermeye başlıyor, ancak çoğu şeyi rahatça çalıştırabilirim. 4GB belleğe sahip kullanıcılar, "bellek durakları" nı neredeyse hiç farketmeyecek ve diğer endişelere odaklanmalıdır. (5 yıl sonra buraya geleceğim ve o 4GB'lık sayıya güleceğim.)


4
Peki, c # sadece Sanal Makine üzerinde çalışmıyor. En azından normal şekilde değil. Java gibi bayt makine kodundan tam zamanında derleme yapabilir, istisnalar dışında normal kodlu makine koduna kadar önceden derlenmiş (normal durum) ve tam eski okul derlemesini yapabilir (çoğu platformda yapmaz) . Bu anlamda Java ya da Parrot ile aynı değildir. Bir melezden daha fazlası. Bu nedenle, gerçek dünyada, kritik iç döngü ağır kaldırma kodunuzun monodaki yerel makine talimatlarıyla derlenmesi muhtemeldir.
Stefano Palazzo

1
@ stefano: İşlem hızından ziyade hafıza kullanımından bahsettim. Aslında, kodun birden fazla kopyasını JIT'in çalışmasını yapabilmesi için daha fazla bellek kullanır.

3
Sadece bu değil. Mono, Microsoft’a bir gün, Oracle’a Google’ın Java patentleri konusunda yaptığı gibi bir kişiyi dava etme imkanı tanıyan bazı patentlerini çok iyi ihlal edebilir.
txwikinger

5
Üzgünüz, ancak "Topluluk Sözünde" yasal olarak bağlayıcı olan hiçbir şey yok.
txwikinger

2
@txwikinger Yasal olarak bağlayıcıdır Bu sayfadaki soruyu kontrol edin. microsoft.com/interop/cp/default.mspx
trampster

16

Bazı insanlar Microsoft’un yazılımın patentlerini .NET’in üzerinde bulundurduğuna ve .NET’in bir uygulaması olarak Mono’nun bu patentleri ihlal ettiğine inanmaktadır. Böylece bu insanlar Mono kullanmanın bir tane patent davasına açık bırakılabileceğini düşünüyor.

Sanırım Mono çok tartışmalı çünkü genelde patent yasası tartışmalı. Ancak, Mono’yu tanıtan kuruluşların Microsoft’la çok daha fazla patent anlaşması gibi görünen anlaşmalar yaptıkları, bu durumda Microsoft’un bu tür patentlerin geçerliliği konusundaki savını güçlendirdiği görülebilir. (Tabii ki Microsoft, patentlerin var olduğuna dair hiçbir kanıt sunmadığından, bu nedenle, linux çekirdeği tarafından ihlal edilen patent iddialarında olduğu gibi bir belirsizlik durumu olduğunu kanıtlamıştır.) Bu anlaşmalar, diğer topluluklara ihanet ve güvensizlik duygularıyla sonuçlanmaktadır. Üyeler, çünkü anlaşmanın topluluğa bir bütün olarak zarar verdiği görülüyor (algılanan patent riskini artırarak), Microsoft ile anlaşmayı yapan kuruluşa fayda sağladı. Bu Mono'nun tartışmalı olmasının başka bir nedenine neden oluyor:

Bu arada, izleyicinin bakış açısından yazdığımı ve tüm durum hakkında ayrıntılı veya özel bir bilgim olmadığından bahsetmeliyim. Tarafsız kalmaya çalıştım ve bu soruyu sorduğu tartışmaya sürüklememek için çoğunlukla uygun isimlerden kaçındım.

Düzenleme: Yorumlarda, birileri Microsoft’un, .NET uygulamalarına karşı patent hakları koymayacağına dair bir söz verdiğini belirtti. Ancak sözümde, sözünü yerine getirmesi için bir avukat tutmadan hava sızdırmaz bir koruma sağladığından emin olabileceğimi hissetmediğim kadar yasal var. Okuduktan sonra, Microsoft’un Mono’ya patent hakları koymasına izin verebilecek bazı potansiyel boşlukları düşünebiliyorum, ancak IANAL’dan bu yana bu boşluklardan herhangi birinin yasal olarak savunulabilir olup olmadığını veya yalnızca Microsoft’un yasalını yanlış anladığımı bilmiyorum. Dolayısıyla, topluluk vaadi cesaret verici olsa da, Mono'nun olası patent sorumluluğu konusundaki tartışmalara kesinlikle son veremez.


3
Bu gerçekten kabul edilen cevap olmalıdır, soruyu gerçekten cevaplayan tek cevap budur. İnsanlar Mono'yu kullanmakta tereddüt ediyorlar çünkü Microsoft tarafından dava edilme korkusu var.

1
Burada, Avrupa Patent Sözleşmesinin 52. Maddesinin özellikle "olduğu gibi" yazılım patentlerini yasakladığını belirtmek gerekir (Madde 52/2). Bu, en azından AB üye ülkelerindeki vatandaşların ve kuruluşların temel olarak Microsoft'un lisans kampanyası gibi şeylerden güvenli olduğu anlamına gelir . (Bu son açıklama ağır bir tartışma altındadır)
Stefano Palazzo

1
Sanata rağmen. 52/2 Avrupa'da başarılı yazılım patent talepleri olmuştur.
txwikinger

Bu cevap, mono'yu microsoft tarafından patent davalarından koruyan yasal olarak bağlayıcı “Topluluk Sözü” hakkında bir tartışma olmadan tamamlanmadı.
trampster

1
@ trampster: CP, tüm C # 'dan ziyade ECMA 334 ve 335’i kapsar ve 2006’da yayınlandıkları gibi, C #’ya eklenen yeni şeyler açıkça ele alınmaz. CP'yi kullanmak için Mono'nun .NET'te 5 yıl (ve büyüyor) kalmasını bekliyor musunuz ?
Fred Nurk

5

Mono, Microsoft .net’in açık bir taşınmasıdır.

İdeolojik zeminde bu, açık teknolojiler için kapalı bir teknolojiden yararlanır ve bazı GNU ve / veya Linux idealleriyle çakışmayabilir.

Pratik açıdan, Mono (şimdilik) .NET'in 3.5 sürümünde olduğu kadar işlevselliği desteklememektedir. Ancak, Linux için C # (ve diğer .NET dillerinde) programlamasına izin veriyor, bence bu iyi bir şey ve Mono'suz imkansız olurdu.


9
.NET'in temel çekirdeği açık bir teknoloji / standarttır (Microsoft'un ana uygulaması açık olmasa bile, C #, standart kütüphanenin temel kısımları ve çalışma zamanı ECMA standartları olarak yayınlanır).
Ocak

@ Popinou: 3.5'te eksik özelliklerle ilgili hiçbir sorun yaşamadım.

@JanC: Mono'nun parçaları (System.Windows.Forms) ECMA standardının bir parçası değildir.
Broam

1
Aslında mono bir liman değildir, EMCA açık standardının temelden ücretsiz bir yazılım uygulamasıdır. Ve bu açık standardın uygulamalarını dava etmemek için yasal olarak bağlayıcı bir "Topluluk Sözü" kapsamındadır.
trampster

1
@Broam System.Windows.Forms varsayılan olarak ubuntu'da değil. Ve ortak mono uygulamaların hiçbiri için gerekli değildir.
trampster

5

Diğerlerinin de belirttiği gibi, iki ana sebep vardır:

1) İdeoloji: Kullanıcılar Mono'nun kapalı kaynaklı bir Microsoft ürününe dayandığı fikri konusunda rahat değillerdir. Ancak, Mono'nun kendisi açık kaynaktır.

2) Patentler: Bu , Topluluk Sözünü ECMA 334 ve ECMA şartnamesi 335'e uyguladıklarında Microsoft tarafından ele alınan büyük bir endişe kaynağıydı . Ne ​​yazık ki, insanların önemli bir kısmı bunun farkında değil.


4
Tartışma, toplum vaadinin yeterli olmadığı - bu bir farkındalık meselesi değil.
Broam

1

Mono kullanmıyorum çünkü

  1. Microsoft, neyin ihlal edildiğini belirtmeksizin IP ihlali olduğunu iddia ediyor ve Mono'yu netleştirmeyi reddetti, ancak Novell kullanıcılarının korunduğunu söylüyor. Microsoft'un topluluğunun, eylemleri destekleyene kadar vaat ettiğine inanmıyorum.
  2. Mono lisanslaması karmaşıktır. Sıradan bir kullanıcının parçaların farklı şekilde lisanslandığını anlamasına izin vermek yasal bir uzman için zordur. Açık kaynaktaki hiçbir şey anlamayan kadar karmaşık değildir.
  3. Miguel de Icaza söz verdi, ancak ECMA uyumlu kaynak kodunu zamanında yayınlama sözünü yerine getiremedi
  4. manzara, Microsoft'un standartlarını takip eden şirketlerle doludur, çünkü onlar için standartların kırılması ve diğerlerinin dezavantajlı olmaları
  5. Linux’ta .NET’e sahip olmanın, başka platformlardan çok az şey aktarıldığına ve Linux’a özgü herhangi bir şeyin başka dillerde yazılmasına gerek yoktur veya kanıtlanabilir bir fayda yoktur.
  6. Mono gereksiz yere bölücü bir konudur; daha önemli konulardan uzak durarak bizi rahatsız ediyor ve Microsoft'un ellerine oynuyor

Bence herkes Mono'yu kullanabilir ve kullanmalıdır, ancak istemeyen kullanıcılar varsayılan olarak kullanmamalı.


Microsoft'un mono hasta ihlalini hiç iddia ettiği inanmıyorum. Ancak yasal olarak bağlayıcı bir malikanede dava açmamaya söz verdi.
trampster

gerçek dışı motor birkaç mono paket gerektirir; tho, inanıyorum ki, tüm açık kaynak kodlu olmak; Bir gün olabilir, onlar sakin kalabileceğimiz bir şeyle değiştirilebiliyorlardı.
Kova Gücü
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.