Стоит ли разрабатывать программы на 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, могут оказаться в центре патентных войн.

field_vote: 
Ваша оценка: Нет Средняя: 3 (2 оценки)
Названия программ: 
Языки программирования: 
C#
Персоналии: 

Комментарии

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

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

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

Оценка: 
Пока без оценки

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

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

Оценка: 
Средняя: 5 (1 оценка)

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

Оценка: 
Пока без оценки

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

Оценка: 
Средняя: 3.5 (2 оценки)

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

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

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

Оценка: 
Средняя: 5 (1 оценка)

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

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

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

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

Оценка: 
Пока без оценки

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

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

Оценка: 
Средняя: 5 (2 оценки)

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

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

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

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

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

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

Оценка: 
Пока без оценки

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

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

Оценка: 
Пока без оценки

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

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.