Часто, когда я читаю о какой-то программе, будь то GNOME Do или Banshee или что-то еще, я вижу людей, пишущих, что они используют моно - и это уничижительно. Почему это? Эти комментарии сделаны на практической основе, идеологических или что-то еще?
Часто, когда я читаю о какой-то программе, будь то GNOME Do или Banshee или что-то еще, я вижу людей, пишущих, что они используют моно - и это уничижительно. Почему это? Эти комментарии сделаны на практической основе, идеологических или что-то еще?
Ответы:
Предполагается, что Mono поддерживает Microsoft и ее платформу .Net. Некоторые люди считают, что это противоречит целям Ubuntu или, по крайней мере, их личным целям, и они хотят этого избежать.
Извините за слова покачивания, но я остаюсь объективным. Дискуссия о том, действительно ли Mono это делает, и даже о том, является ли поддержка Microsoft хорошей или плохой вещью, находится в другом месте .
Программы, которые используют виртуальную машину (как написано на Java и C #), по моему опыту, имеют тенденцию использовать больше памяти по сравнению с аналогами, которые этого не делают. Это обобщение не всегда верно. Хотя есть пользователи, для которых это является серьезной проблемой, люди часто беспокоятся о производительности больше, чем необходимо.
Например, я использую ноутбук только с 1 ГБ памяти: раньше это было огромно. Машина начинает показывать свой возраст, но я все равно могу комфортно управлять большинством вещей. Пользователи с 4 ГБ памяти почти не заметят "скачки памяти" и должны сосредоточиться на других проблемах. (И я вернусь сюда через 5 лет и посмеюсь над этим номером 4 ГБ.)
Некоторые люди считают, что Microsoft имеет патенты на программное обеспечение в отношении аспектов .NET, и что, как реализация .NET, Mono нарушает эти патенты. Таким образом, эти люди считают, что использование Mono может привести к открытию судебных процессов.
Я полагаю, что Mono настолько противоречив, потому что патентное право в целом противоречиво. Но есть и конкретные случаи, когда организации, занимающиеся продвижением Mono, заключили соглашения с Microsoft, которые во многом похожи на патентные соглашения, что может послужить подтверждением аргумента Microsoft о действительности любых таких патентов. (Конечно, Microsoft фактически не предоставила никаких доказательств того, что патенты существуют, таким образом, сохраняя состояние неопределенности, так же как и в случае их претензий на патенты, нарушенные ядром Linux.) Эти соглашения приводят к чувствам предательства и недоверия со стороны других сообществ. членов, потому что соглашение, кажется, наносит ущерб сообществу в целом (увеличивая воспринимаемый патентный риск), принося пользу организации, заключившей соглашение с Microsoft. Так что это приводит к другой причине, что Mono является спорным:
Кстати, я должен упомянуть, что я пишу с точки зрения зрителя, и у меня нет подробных или конкретных знаний о всей ситуации. Я пытался оставаться непредвзятым и в основном избегал имен собственных, чтобы не втягивать этот вопрос в противоречие, о котором он спрашивает.
Редактировать: В комментариях кто-то указал, что у Microsoft есть обещание сообщества не отстаивать патентные права на реализации .NET. Но обещание имеет достаточно юридического смысла, поэтому я не уверен, что действительно могу гарантировать, что это обещание обеспечивает герметичную защиту, не нанимая адвоката для его рассмотрения. Прочитав его, я могу вспомнить некоторые потенциальные лазейки, которые могут позволить Microsoft отстаивать патентные права на Mono, но после IANAL я понятия не имею, являются ли какие-либо из этих лазеек юридически оправданными, или просто мое неправильное понимание юридического права Microsoft. Таким образом, хотя обещание сообщества обнадеживает, оно, конечно, не может положить конец спорам о возможной патентной ответственности Mono.
Mono является открытым портированием Microsoft .net.
На идеологическом уровне это использует закрытую технологию для открытых технологий, которая может не совпадать с некоторыми идеалами GNU и / или Linux.
На практике Mono не поддерживает (пока) столько функций, сколько в .NET в версии 3.5. Тем не менее, он позволяет программировать на C # (и других языках .NET) для Linux, что, на мой взгляд, хорошо и было бы невозможно без Mono.
Как утверждали другие, есть две основные причины:
1) Идеология: пользователям не нравится идея, что Mono основан на продукте Microsoft с закрытым исходным кодом. Тем не менее, Mono сам с открытым исходным кодом.
2) Патенты. Раньше это было серьезной проблемой, которая с тех пор решалась Microsoft, когда они применяли Обещание сообщества к спецификациям ECMA 334 и ECMA 335. К сожалению, значительная часть людей не знает об этом.
Я не использую моно, потому что
Я думаю, что любой может и должен использовать Mono, если он хочет, но пользователи, которые не хотят его, не должны включать его по умолчанию.