Как стать автором
Обновить

Комментарии 36

А как будут дела с поддержкой hardware ускорения?
И тем более видео?
Сейчас в Mono решают какую библиотеку векторной графики использовать - AGG или Cairo. В любом случае, за поддержку аппаратного ускорения отвечает графическая библиотека. Что касается видео - там все просто. Кодеки и вперед.
раз вы "в теме" про моно, то может ответите на такой вопрос.
на сайте проекта вычитал что моно позволяет запускать .net приложения без перекомпиляции.
----------------------------------
Yes, Mono can run binaries produced by Visual Studio, there is no need to recompile.
---------------------------------
значит ли это, что они могут запускать .exe-шники(PE) на линуксе?
просто смутило то, что вычитал где то у них на сайте, для пущей уверенности, пойдет ли файл на линуксе или нет, надо пробежатся какой-то утилиткой. толи по исходника, толи по самому файлу.

+ вопрос: только новелл спонсирует проект?

+ вопрос: wmv & wma v9 кодеки с поддержкой drm есть под линукс?

может вообще напишите обзор с точки зрения своего опыта применения по этому проекту? :)
Действительно, целью моно является поддержка двоичной совместимости IL-сборок между Windows и UNIX. Запускать можно, но командная строка будет следующей: mono MyApp.exe
Если вы хотите запускать IL-приложения на UNIX привычным образом, вам действительно нужно пропатчить исполняемый файл, чтобы привести его в соответствие с требованием загрузчика конкретной ОС.

Насколько я знаю, спонсирует только Новелл.
Насчет кодеков не знаю, но я думаю что вопрос решится.
Опыта применения моно у меня практически нет, но есть большо опыт применения .NET на Windows. Мое личное мнение - что "большой" .NET является Windows-only технологией, и потуги моно приносят мало практического смысла. С другой стороны, CLR отлично переносится на другие платформы, что и было сделано Mono. И теперь это можно использовать для реализации Silverlight на UNIX, что является весьма полезным.
>Запускать можно, но командная строка будет следующей: mono MyApp.exe
Если вы хотите запускать IL-приложения на UNIX привычным образом, вам действительно нужно пропатчить исполняемый файл, чтобы привести его в соответствие с требованием загрузчика конкретной ОС.
не совсем правда. http://www.mjmwired.net/kernel/Documentation/mono.txt
Ага, спасибо.
На сколько мне известно, запустится ли Windows .NET-приложение на Mono зависит от того, какие библиотеки .NET Framework оно использует.
В Mono пока (опять же, на сколько я знаю) реализована не вся базовая библиотека классов .NET. Например, WinForms - только отчасти.
Это точно.
"на данный момент Microsoft поддерживает браузеры IE, Firefox, Opera и Safari на платформах Windows и MacOS"
Смелое высказывание. :) Попробуйте Silverlight под оперой или сафари под windows. У меня сейчас только линукс, Поэтому проверить не могу. На сайте майкрософта сказано: "# Supported browsers: Microsoft Internet Explorer 6, Windows Internet Explorer 7, Mozilla Firefox 1.5.0.8, and Firefox 2.0.x".
Учитывая то, что Silverlight все еще находится в разработке, высказывания о том, что он "поддерживает" означают то, что Microsoft планирует поддержать в конечной версии.
Кроме того, поддержка различных браузеров - это нехитрая часть работы. Необходимо написать по интерфейсному плагину для каждого браузера. Так что у меня нет сомнений насчет того, что к концу года будут поддержаны все заявленные МС браузеры.
Другой вопрос состоит в том что UNIX (кроме MacOS) вообще не был включен в список планируемых поддерживаемых платформ. Вот эту проблему и решают люди из Моно.
Мне всегда нравилось читать проспекты платформы .NET, когда платформа только появлялась на свет. Микросовт ярко утверждала, что за платформой будущее, что все ОС будут в итоге ее поддерживать, везде она будет оптимизирована, понимать все языки, будет самая быстрая и вообще Java якобы устарела. Что из этого получилось? Аналогию не находите?
Получилось все что обещала и даже лучше. Обещаний о поддержке "всех ОС" я что-то не припомню.
.NET действительно опитимизирована и отлично работает на всех версиях Windows, имеется большой набор прогрессирующих CLR-совместимых языков программирования на любой вкус, и она действительно самая быстрая.
Кроме того я и многие мои колеги находим что Java морально устарела. И в плане единственного поддерживаемого консервативно-академического языка, и в плане интерпретируемого очень медленного выполнения кода, и в плане неуклюжей переносимости "write once, debug everywhere".
Вот что из этого получилось.
Сейчас Вам навтыкают по самое небалуйся за "интерпретируемый код". Java уже довольно давно (то ли с 1.2, то ли с 1.3) JIT-компилируемая, как и .NET.
Я с вами не буду спорить. У каждого свои вкусы. Однако если вы говорите Java устарела, а .Net работает отлично под Windows и все, то можно сделать вывод что ВСЕ платформы устарели, кроме WIndows. Это не так как мимимум.

Обещания о поддержки не Windows-ОС были, я точно помню, но доказать наверное не смогу.

А на счет самой быстрой... Чтож, под Windows возможно, хтя я уверен C++-rjl будет быстрее работать. Могу вам сказать что рекорды быстроты принадлежат отнюдь не "правильной ОС" Windows и .NET. Имеено Solaris + Java занесен мировой рекорд производительности двоичного кода.
И еще про, интерпретируемый код. А вы знаете откуда дядюшка Билл взял идею .NET. Да-да именно с джавы и код давно там компилируется в байт-код. Видимо вы плохо область знаете..
Окей, я плохо знаю область. Сужу по скорости загрузки и выполнения Java GUI-приложений на Windows.
Вы, видимо, область знаете не лучше.
Код "компилируется в байт-код" даже в Python'е, что не мешает ему быть интерпретируемым языком.
Имеет смысл говорить о JIT-компиляции, которая появилась в Java только с версии 1.3 (май 2000 г.)
Про "откуда дядюшка Билл взял идею .NET" спорить бесполезно, это флейм чистой воды.
Не буду спорить откуда MS взяла идею это вроде и так понятно.
На счет JIT-компиляции я с вами не согласен, в любом выполняется компиляция, т.е. преобразование исходников. Читайте что такое компиляция...

И на затравку вам выдержка из Вики, чтобы не быть голословным:

Некоторые компиляторы (например, Java) переводят программу не в машинный код, а в программу на некотором специально созданном низкоуровневом языке. Например, для языка Java это язык Java Virtual Machine, JVM — язык виртуальной машины Java, или так называемый байт-код Java (вслед за ним все промежуточные низкоуровневые языки стали называть байт-кодами). Для языков программирования на платформе .NET Framework (C#, Managed C++, Visual Basic .NET и другие) это так называемый MSIL (Microsoft Intermediate Language), или «Промежуточный язык фирмы Майкрософт». Далее программа на промежуточном языке подлежит интерпретации, либо ещё одной компиляции в код целевой машины непосредственно перед исполнением (для Java это делает «Just-In-Time compiler» (JIT);

Да-да, JIT-компиляции не есть компиляция в чистом виде, как вы думаете.
И что я должен узнать из этой цитаты? Я говорил о том, что байт-код — это не показатель эффективности языка и не говорит о том, что язык не интерпретируемый. Java до версии 1.3 была именно интерпретируемым языком (как сейчас тот же Python), хотя исходники и перегонялись в байт-код.
Я не знаю, что такое "компиляция в чистом виде", и в данном контексте мне плевать на научное определение (это буквоедство) слова "компиляция". Речь идет только о том, что, например Python - это интерпретируемый язык, а Java и С#/VB/... - JIT-компилируемые.
Вы писали с претензией что я не прав: "Вы, видимо, область знаете не лучше." Это утверждение голословно, на самом деле про вас такое можно сказать, я программирую на Java уже 5 лет, хоть и не так часто, как хотелос бы.

Байт-код - не показатель эффективности, но это компиляция. Вы же говорили компиляция, это только JIT. Вы в курсе, что в питоне можно выполнять программу по строчкам, интерпретатор рразбирает последовательно каждую строку кода. Java-программа без компиляции работать не будет, это уже язык не интерпретируемый еще до JIT.

Тот бред, который вы говорите на счет того, что Java до вресии 1.3 не имеет под собой основания.
1. E_Z написал, что Java интерпретируемая: "и в плане интерпретируемого очень медленного выполнения кода".
2. Вы написали, что E_Z не разбирается в предметной области, и в Java уже давно есть компиляция в байт-код.
3. Я написал, что Вы не разбираетесь в предметной области, потому что компиляция в байт-код не избавляет от необходимости его интерпретировать, т.е. выполнять, как инструкции виртуальной машины. JIT же переводит этот байткод в нормальные машинные инструкции и позволяет вывести производительность языка на уровень традиционных precompiled-языков. Что и было сделано в Java 1.3 и .NET с самого начала.
4. Вы мне скидываете какую-то увесистую цитату про то, о чем я и говорил.

Про "бред" вообще не понял. Что Вы считаете бредом? То, что до 1.3 в Java не было JIT-компиляции?
Запомните, повторю еще раз. Java была ВСЕГДА компилируемым языком. Спор завершен. Вам мой совет: прежде чем кого-то обвинять в чем-то подумайте так ли вы хорошо разбираеютесь в ПдО и почитайте теорию на досуге.
У меня к Вам один вопрос. Вы согласны, что есть разница между цепочкой "исходный код -> компиляция в байт-код -> интерпретация байт-кода" и цепочкой "исходный код -> компиляция в байт-код -> JIT-компиляция -> выполнение двоичного кода"?
Я вам советую на досуге всеже изучить теорию, не все только практика.
Так можно узнать, что же из этого получилось?
Языков для .NET много, включая модные нынче динамические (IronPython, IronRuby). Работает оно на винде и посредством Mono - на линухе (не знаю про МакОС).
Сравнения по скорости делались, явного лидера (между Java и .NET) не выявили, на сколько я помню. Разница обычно вооруженным глазом не видна. В чем-то быстрее .NET, в чем-то Java. Как всегда, зависит это от того, кто исследует ;)
Поддержка Линукса не от производителя, мало кто рискнет реализовывать серьезный проект на такой связке. На счет производительности пока лидер Java именно Sun-у принадлежит рекорд производительности кода, правда только на Solaris. Пока .NET будет зависить от ОС, будет закрытая платформа и зависить от корпорации MS такой же популярной как Java ей не стать.
Не то что "мало кто рискнет". Вообще никто не рискнет :)
Мне не хочется разговаривать о мифе "переносимости между свиньей и конем" вообще.
Единственное, что могу сказать, что я лично очень не хотел бы когда либо писать ПО для UNIX. Но если бы пришлось, делал бы это на Java. Потому что там где все по колено в шоколаде, джава это действительно лучик света.
Поддержка от Novell, чем это не устраивает? Собственно, ровно такая же поддержка, как и от "производителей" PHP, Python'а и иже с ним. Не работает? Залезь в исходный код и исправь. Потом пришли нам багфикс.
Рекорд - это абсолютно не показательная вещь. Так же, как и большинство бенчмарков. Если не затруднит, выложите ссылку на этот рекорд, хочется посмотреть.
Я не очень понимаю, с какого бока тут вылезла популярность, но если уж речь зашла об этом... При разработке приложений (особенно "серьезных") выбирается все-таки не язык программирования, а именно платформа. Т.е. ОС + Сервер приложений / Веб-сервер + БД + компоненты. Зачем, в таком случае, нужна кросплатформенность?
НЛО прилетело и опубликовало эту надпись здесь
Я в боевом режиме не пробовал, да и не надо мне =) Формально поддержка есть, не хуже, чем для PHP и т.п. Боевой проект _я_ бы не стал на нем делать, но это не значит, что это невозможно :)
Собственно, Mono особо никому не нужен, т.к. процент клиентских машин с не-Windows крайне мал, а серверная платформа выбирается целиком и сразу. Вряд ли ведь кто-то будет выбирать ".NET, но обязательно под Linux".
Собственно, по-моему, единственный случай, когда реально играет роль кросплатформенность - это если делается "коробочный" продукт, среди потребителей которого могут быть и пользователи Windows, и пользователи Linux.
Но, честно сказать, я таких продуктов практически не видел.
про популярность.
мне честного говоря и не надо, чтобы .net был в кофеварках :) как об этом мечтала Сан :)
мне хватает .net-a на десктопе, в телефоне, в разном оборудовании со штрих кодами работующего, в Xbox360. при этом, видел в видео, что .net встроили (кончено не весь desktop 3.5! :) ) в смарт-карточку.
Когда я работаю с .NET-based GUI приложением на своем компьютере, я испытываю практически тот же комфорт, связанный со скоростью что и при работе с Microsoft Office, Autocad или Photoshop.
Когда я работаю с Java-based GUI приложением на своем компьютере, я думаю не об этом приложении, я думаю о Java. Из-за скорости загрузки и работы.

Насчет языковых средств и библиотек думаю даже спорить не стоит.
C# 3.5, WPF/XAML, DLR, ASP.NET, множество экспериментальных языков.
Известно что получилось. Все Windows программисты постепенно переходят на .NET
Этого мало?
А вы уверены, что вы мне отвечаете? =)
Java-приложения не использую и судить не могу, а со всем остальным согласен.
при всем уважении к платформе .NET, не могу не попытаться вступиться за Java :)
у них тоже есть масса прекрасных и перспективных технологий :)
JavaFX(F3), Spring, Hibernate, Groovy, JRuby и т.д.

смотрите на вещи шире, не ищите серебряную пулю, ищите удобный инструмент "для себя и на сейчас" и жисзнь станет прекраснее ;)
НЛО прилетело и опубликовало эту надпись здесь
из обсуждения новости про сильверлайт скатились к Java/NET холивару.
господа, хватит уже обсуждать что вкуснее - кефир или хлеб.
и то и другое пища, при этом лишь сбалансированное питание обеспечит вам крепкое здоровье и здоровый сон.

я имею дело и с тем и с другим, а решения какую технологию использовать принимаю исходя из анализа задачи, а не собственной фанатичной убежденности. чего и вам желаю :)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории