Чому моно так суперечливе?


33

Часто, коли я читаю про якусь програму, будь то GNOME Do чи Banshee чи щось інше, я бачу людей, які пишуть, що вони використовують моно - і наслідки є пейоративними. Чому це? Ці коментарі зроблені на практичних засадах, ідеологічних чи щось інше?


3
Чому ніхто не вимагає видалення відкритого офісу для впровадження технологій Microsoft (формати документів)?
бродяга

Відповіді:


36

Ідеологічно

Моно деякі вважають, що вони підтримують Microsoft та її платформу .Net. Деякі люди вважають, що це суперечить цілям Ubuntu або, принаймні, власним особистим цілям, і вони хочуть цього уникнути.

Вибачте за хитання слів, але я залишаюся об'єктивною. Дискусія про те, чи справді Mono робить це, і навіть, чи підтримувати Microsoft це добре чи погано, належить деінде .

Практично

Програми, які використовують віртуальну машину (як ті, що написані на Java і C # do), як правило, використовують більше пам'яті, на мій досвід, порівняно з еквівалентами, які цього не роблять. Це узагальнення не завжди вдається. Хоча є користувачі, щодо яких це справді викликає занепокоєння, люди часто турбуються про продуктивність більше, ніж потрібно.

Наприклад, я використовую ноутбук з лише 1 Гб пам'яті: це раніше було величезно. Машина починає показувати свій вік, але я все ще можу зручно керувати більшістю речей. Користувачі, які мають 4 Гб пам'яті, не помітять «качанів пам’яті» майже стільки ж, і повинні зосередитися на інших проблемах. (І я повернусь сюди через 5 років і посміяюся з того 4 Гб.)


4
Добре c # не працює виключно на віртуальній машині. Принаймні, не в звичайному порядку. Це може робити компіляція як раз у часі від байтового до машинного коду, як-от java, плюс дострокова компіляція до машинного коду за винятками (звичайний випадок) та повна компіляція old-school (але не на більшості платформ) . Це не те саме, що Java або Папуга в цьому сенсі. Більше гібриду. З цієї причини в реальному світі, дуже ймовірно, ваш критичний внутрішній цикл важкого підйому-коду буде зібраний для інструкцій з власної машини в моно.
Стефано Палацо

1
@stefano: я згадував використання пам'яті, а не швидкість виконання. Насправді, для збереження кількох копій коду, щоб JIT міг виконувати свою роботу, використовує більше пам'яті.

3
Це не тільки це. Mono цілком може порушити деякі патенти Microsoft, що дає Microsoft можливість подати позов проти когось одного разу, як Oracle поводиться проти Google за патенти Java.
txwikinger

5
Вибачте, але в "Обіцянні громади" немає нічого, що має юридичну силу.
txwikinger

2
@txwikinger Це юридично обов'язкове ознайомлення з питанням на цій сторінці. microsoft.com/interop/cp/default.mspx
волоцюга

16

Деякі люди вважають, що Microsoft має патенти на програмне забезпечення на аспекти .NET, і що, як реалізація .NET, Mono порушує ці патенти. Таким чином, ці люди вважають, що використання Mono може залишити один відкритий для патентних позовів.

Я думаю, Моно настільки суперечливий, оскільки патентне законодавство взагалі суперечливе. Але існують конкретні випадки, коли суб'єкти, які просувають Mono, укладали договори з Microsoft, схожі на патентні угоди, які потім можна було б зрозуміти, щоб посилити аргумент Microsoft щодо дійсності таких патентів. (Зрозуміло, Microsoft насправді не надала жодних доказів існування патентів, таким чином підтримуючи стан невизначеності, як і заява про патенти, порушені ядром Linux.) Ці угоди призводять до почуття зради та недовіри з боку іншої спільноти членів, оскільки, здається, угода завдає шкоди громаді в цілому (збільшуючи сприйнятий патентний ризик), приносячи користь суб'єкту господарювання, який уклав угоду з Microsoft. Тож це призводить до ще однієї причини, що Mono суперечлива:

До речі, слід зазначити, що я пишу з точки зору глядача, і я не маю детальних чи конкретних знань про всю ситуацію. Я намагався залишатися неупередженим і в основному ухилявся від власних іменників, щоб уникнути втягування цього питання в полеміку, про яку він запитує.

Редагувати: У коментарях хтось зазначав, що Microsoft обіцяє спільноті не стверджувати патентні права проти впровадження .NET. Але в цій обіцянці достатньо легального, що я не відчуваю, що я справді можу бути впевнений, що обіцянка забезпечує повітрозахисний захист, не наймаючи адвоката, щоб переходити над цим. Прочитавши його, я можу придумати деякі потенційні лазівки, які могли б дозволити Microsoft стверджувати патентні права на Mono, але, оскільки IANAL , я не маю поняття, чи є якась із цих лазів юридично захищена, або це лише моє непорозуміння легалізації Microsoft. Тому, хоча обіцянка громади є обнадіюючою, вона, безумовно, не може закінчити суперечку з приводу можливої ​​патентної відповідальності Mono.


3
Це дійсно повинна бути прийнята відповідь, це єдиний, хто насправді відповідає на питання. Люди вагаються з використанням Mono, оскільки побоюються, що Microsoft не буде поданий до суду.

1
Тут слід зазначити, що стаття 52 Європейської патентної конвенції спеціально забороняє патенти на програмне забезпечення "як таке" (ст. 52/2). Що означає, що принаймні громадяни та організації в країнах-членах ЄС в основному захищені від таких речей, як кампанія ліцензування Microsoft. (ця остання заява суперечить)
Стефано Палаццо

1
Попри ст. 52/2 в Європі були успішні заявки на патент на програмне забезпечення.
txwikinger

Ця відповідь не є повною без обговорення юридично обов'язкової "Обіцянки громади", яка захищає моно від патентних позовів microsoft.
бродяга

1
@trampster: CP охоплює ECMA 334 та 335, а не всі C #, а оскільки вони були опубліковані у 2006 році, все нове, додане до C #, явно не охоплюється. Чи очікуєте ви, що Mono залишиться на 5 років (і зростає) позаду .NET, щоб використовувати CP?
Фред Нурк

5

Mono - це відкрита портація Microsoft .net.

З ідеологічного підґрунтя це використовує закриту технологію відкритих технологій, яка може не збігатися з деякими ідеалами GNU та / або Linux.

З практичної точки зору, Mono наразі не підтримує стільки функціональних можливостей, скільки .NET робить у своїй версії 3.5. Однак це дозволяє програмувати на C # (та інших мовах .NET) для Linux, що, на мою думку, є доброю справою і було б неможливим без Mono.


9
Основним ядром .NET є відкрита технологія / стандарт (навіть якщо основна реалізація Microsoft не є відкритою, C #, основні частини стандартної бібліотеки та час виконання публікуються як стандарти ECMA).
січня

@Popinou: У мене ніколи не було проблем з відсутніми функціями в 3.5.

@JanC: Частини моно (System.Windows.Forms) не входять до стандарту ECMA.
Брам

1
Насправді моно - це не порт, це вже з нуля вільна реалізація програмного забезпечення відкритого стандарту EMCA. І охоплюється юридично обов'язковим "Обіцянням громади", щоб не подавати до суду на впровадження цього відкритого стандарту.
бродяга

1
@Broam System.Windows.Forms за умовчанням не в ubuntu. І це не потрібно жодним із поширених моно додатків.
бродяга

5

Як зазначають інші, існують дві основні причини:

1) Ідеологія: Користувачам не подобається думка, що Mono базується на продукті Microsoft із закритим джерелом. Однак сама Mono є відкритим кодом.

2) Патенти: Це раніше було основною проблемою, з якою Microsoft зверталася, коли вони застосовували Обіцяння спільноти до ECMA 334 та специфікацій ECMA 335. На жаль, значна частина людей про це не знає.


4
Аргумент полягає в тому, що обіцянки громади недостатньо - це не питання обізнаності.
Брам

1

Я не використовую Mono тому, що

  1. Microsoft заявляє про порушення IP-адреси, не вказуючи, що саме порушується, і вони відмовилися уточнювати Mono, сказавши лише, що користувачі Novell захищені. Я не вірю, що громада Microsoft обіцяє, поки вони не підкріплять її діями.
  2. Моно ліцензування складне. Юридичному експерту важко, не кажучи вже про звичайному користувачеві, важко зрозуміти, як деталі ліцензуються по-різному. Ніщо з відкритим кодом не є настільки складним, щоб відмовитись.
  3. Мігель де Іказа пообіцяв, але не виконав своєї обіцянки вчасно випустити сумісний з ECMA вихідний код
  4. ландшафт усіяний компаніями, які дотримувались стандартів Microsoft, оскільки для них існують стандарти, які повинні бути порушені та не дозволяти іншим
  5. немає необхідності чи явної вигоди від наявності .NET в Linux, мало що переноситься з інших платформ і все, що є рідним для Linux, може бути написано іншими мовами
  6. Моно - це непотрібне поділ; це відволікає нас і грає в руки Microsoft, не відводячи від важливіших проблем

Я думаю, що Mono може і повинен використовувати Mono, якщо вони хочуть, але користувачі, які цього не хочуть, не повинні мати його за замовчуванням.


Я не вірю, що Microsoft ніколи не стверджувала, що порушення пацієнта є моно. Однак він пообіцяв не подавати позов до юридично обов'язкової садиби.
бродяга

нереальний двигун вимагає декількох моно пакетів; Тхо, я вважаю, будучи всім відкритим джерелом; одного дня, можливо, вони можуть бути замінені чимось, про що ми могли б залишатися спокійними.
Сила Водолія
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.