Стоит ли разрабатывать программы на Mono?

Известный популяризатор C# и Mono Мигель де Икаса выступил на конференции AltDevConf, где призвал разработчиков игр активнее использовать C#.

Свое ораторское выступление Мигель начал с традиционных слов о том, что софт на .NET можно запустить на большом количестве платформ: Linux, Mac OS X, PlayStation 3, Apple iOS, Android и Windows. Программа пишется один раз и работает везде.

Затем Мигель призвал активнее использовать Mono в разработке игр, указывая на технологические преимущества платформы .NET. По его мнению, «жизнь слишком коротка», чтобы ее тратить на поиск утечек памяти и прочую отладку. C# и Mono ограждает разработчика от низкоуровневого программирования.

Мигель уверен, что разработка на C/C++ требует больше времени, чревата ошибками и сбоями. C# сокращает время разработки, в то время как производительность работы программы падает «всего» на 10-50%.

Восторг и оптимизм Икасы не разделяет другой известный агитатор — Ричард Столлман, который давно предупреждает, что Microsoft может легко перевести свободную реализацию .NET на нелегальное положение. Тогда весь написанный софт потеряет свою свободу. Более того, даже дистрибутивы, в которые включены программы на Mono, могут оказаться в центре патентных войн.

Ваша оценка: Нет Средняя оценка: 3 (2 votes)
8

>> Microsoft может легко перевести свободную реализацию .NET на нелегальное положение.

Хоть Mono и нарушает некоторые патенты Microsoft, о том, что это так опасно, говорить рано.

Неоткрытые под Community Promise патенты Microsoft покрывают только те части Mono, которые необходимы для совместимости с Windows-софтом (вроде WinForms). Написанный изначально для Mono и линуксов сишарповый софт этих патентов не нарушает.

Ваша оценка: Нет
11
pomodor

Хоть Mono и нарушает некоторые патенты Microsoft, о том, что это так опасно, говорить рано.

Так и с Андроидом было. «Хоть Android и нарушает некоторые патенты Microsoft, о том, что это так опасно, говорить рано». Потом Андроид стал популярен и MS начала доить производителей девайсов. Как только на Mono будет написана "критическая масса" достойных приложений, доить начнут и разработчиков на Mono. Нельзя же не учиться на ошибках. ;)

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
8

Вы второй абзац забыли. В случае атаки со стороны Microsoft разработчики Mono просто спокойно удалят нарушающую патенты функциональность, относящуюся к совместимости с виндой. Виндовый софт (который и сейчас далеко не всегда под Mono работает) отпадёт, а написанный для линукса и конкретно Mono -- останется.

Ваша оценка: Нет
11
pomodor

Если бы все так было просто, то и из Андроида "спокойно удалили бы нарушающую патенты функциональность". Во-первых, сразу "найдутся" новые патенты, во-вторых, даже если и не найдутся, доказывать лицензионную чистоту придется в суде, а судиться с MS финансово обременительно даже для средних компаний, не говоря уже про сообщества энтузиастов. Не проще ли сразу в это все не вляпываться, чем потом переписывать софт и ходить по судам?

Ваша оценка: Нет Средняя оценка: 3.5 (2 votes)
a

>> C# сокращает время разработки, в то время как производительность работы программы падает «всего» на 10-50%.

Всего-то на 50%, подумаешь, фигня какая. :) Одна эта фраза должна отпугнуть разработчиков от использования С#.

Есть не мало кросс платформенных Си-библиотек, например Qt, которые не сокращают производительность, а компилируются в обычный (обычный для выбранной ОС) машинный код. Qt сам пользуюсь, отличная библиотека, производительность не уступает обычным программам на C++ (скажем на библиотеках Visual Studio).
А для интернет игр - PHP или java.

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
8

>> Всего-то на 50%, подумаешь, фигня какая. :) Одна эта фраза должна отпугнуть разработчиков от использования С#.

Если серьёзно, то некоторые фанаты .NET заявляют, что написанные на C# программы оптимизируются лучше, чем написанные на C/C++. То есть в результате программа может работать ещё быстрее, чем если бы она была написана на C/C++.

Впрочем, я не знаю насчёт того, как производительность Mono сравнивается с производительностью родного MSовского фреймворка.

(П.С. ИМХО, было бы неплохо увидеть на этом сайте кого-нибудь, кто достаточно разбирался бы в мелкомягких технологиях).

Ваша оценка: Нет
11
pomodor

На то они и фанаты, чтобы руководствоваться не здравым смыслом, а эмоциями. А здравый смысл подсказывает, что если имеется две одинаково хорошо оптимизированные программы, то быстрее будет работать та, которая исполняется на физическом процессоре, чем та, которая работает в виртуальной машине.

Но справедливости ради нужно отметить, что хорошо оптимизированные программы никому не нужны. Разработчикам выгоднее сократить цикл разработки, быстрее вывести программу на рынок и начать рубить бабло. Производителям оборудования выгодно чтобы пользователь пользовался медленным софтом, ведь тогда юзер охотнее пойдет покупать новый комп.

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
8

>> А здравый смысл подсказывает, что если имеется две одинаково хорошо оптимизированные программы, то быстрее будет работать та, которая исполняется на физическом процессоре, чем та, которая работает в виртуальной машине.

Я с этим не сомневаюсь. Дело тут в том, что дотнетовский MSIL достаточно низкоуровневый, чтобы легко транслироваться в исполняемый на конкретном процессоре код.

>> Но справедливости ради нужно отметить, что хорошо оптимизированные программы никому не нужны. Разработчикам выгоднее сократить цикл разработки, быстрее вывести программу на рынок и начать рубить бабло.

И тут .NET им помогает, позволяя достичь достойного уровня оптимизации без лишних усилий.

>> Производителям оборудования выгодно чтобы пользователь пользовался медленным софтом, ведь тогда юзер охотнее пойдет покупать новый комп.

Я не думаю, что все разработчики ПО пишут медленный софт именно в целях сотрудничества с производителями железа. Иначе бы разница между скоростью работы Windows и GNU/Linux была бы намного выше.

Ваша оценка: Нет
11
pomodor

пишут медленный софт именно в целях сотрудничества с производителями железа

Я это и не утверждал. Я утверждаю, что разработчикам выгодно сократить затраты на разработку софта. Как говорится, сэкономить — значит заработать. Если в системных требованиях можно написать что угодно, то зачем тратить собственные средства на оптимизацию? С другой стороны, такой подход не может не радовать производителей оборудования. Сотрудничества нет, есть положение дел, которое устраивает обе стороны.

Ваша оценка: Нет
8

Очень сильно вы боитесь .NET, как я погляжу... при этом Qt на развесистых классах вам видится таким эффективным что прямо сказка, ничего что перед использованием нужно расписать включение рулонов бесполезного кода а стилистика его будет как у древней Visual Studio 6, и при этом нужно не забывать использовать, там где нужно, вместо стандартных классов Qt GObject. Мечта... Не зря, всё-таки, развивают язык Vala - хоть какая-то альтернатива Mono.

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.
Linux I класса
Linux II класса
Linux III класса
Счетчики
  • Самый популярный сайт о Linux и Windows 10
О Либератуме

Liberatum — это новости мира дистрибутивов Linux, обзоры, сборки, блоги, а также лучший сайт об Ubuntu*.