LINUX.ORG.RU

Mono 2.0

 


0

0

С опозданием где-то на месяц, вышла новая версия кросс-платформенного фреймворка Mono - 2.0 - свободной реализации Microsoft.NET. Список изменений достаточно обширный:

  • Полностью реализованы ADO.NET 2.0, ASP.NET 2.0, Windows.Forms 2.0.
  • C# 3.0, полная поддержка LINQ-выражений. Компилятор теперь доступен под двойной лицензией - GPL2 и MIT/X11.
  • Visual Basic 8.
  • Mono 2.0 - первый релиз, в который добавлен отладчик managed кода. Т.е. отладчик является полностью завершённым.
  • Paint.NET с отключёнными P/Invoke запускается и работает под Mono 2.0.
  • Множество улучшений, касающихся производительности: работа с типом decimal, операция lock (Monitor.Enter/Exit), снижено количество потребляемой памяти (за счет использования generics), исправлены ошибки "гонки потоков".
  • Доступен порт на Windows x64.
  • Реализовано API System.Diagnostics.PerformanceCounter - получение счетчиков производительности/диагностики (пока только для своего процесса).
  • Поддержка больших массивов с 64-разрядными индексами.
  • Поддержка DTrace.
  • Исправлено большое количество ошибок.
Радует то, что проект развивается и растет, несмотря ни на что. Более того, компания Ximian имеет возможность/средства оплачивать разработчикам Mono их труд, принимая на full-time работу, при этом оставляя продукт свободным.

В ноябре обещают выпустить Mono 2.1, главным новшеством которой будет Compacting GC, новый JIT (по предварительным тестам, производительность вырастет на 30%), оптимизирующий AOT для 2.0.

>>> Release notes

★★

Проверено: JB ()
Ответ на: комментарий от KRoN73

>> и трудности с нативным видом приложений. > Естественно, решаемые. В тех же Eclipse или Azureus всё отлично.

Если учесть, что у них тянется в кармане набор нативных libswt-*.so'шек под всякие платформы, то можно было бы их и на цпп/Qt4 переписать.

anonymous
()
Ответ на: комментарий от KRoN73

KRoN73> Banshee

Это то самое говно, которое сильно жрёт ресурсы, и ещё в плане интерфейса жутко неудобное? В топку такие поделия! В топку такой фреймфорк!

Quasar ★★★★★
()
Ответ на: комментарий от Gharik

> код вылизан
> в очередной раз его отрефакторили и скорость выросла в 4 раза


Тонко. ;-)

Bohtvaroh ★★★★
()
Ответ на: комментарий от anonymous

>Если учесть, что у них тянется в кармане набор нативных libswt-*.so'шек под всякие платформы, то можно было бы их и на цпп/Qt4 переписать.

Начинай.

r ★★★★★
()

>Компилятор теперь доступен под двойной лицензией - GPL2 и MIT/X11.

MIT/X11... Мигелюшка ещё раз доказал свою нетрадиционную ориентацию. На GPLv3, разумеется, этот ахтунг забил.

Quasar ★★★★★
()

А нельзя было модерам продемонстрировать свою власть на час раньше или час позже? >:-E

tailgunner ★★★★★
()
Ответ на: комментарий от xonix

> Консервативность в том, что в Java в отличие от C# не пихают всякий синтактический сахар^H^H^H^H мусор в язык.

баа, а откуда растут ноги у аннотаций, произвольного кол-ва аргументов, дженериков, автобоксинга, аналога цикла foreach ? Осталось только добавить замыкания, пропертисы, type propagation и будет у нас аналог C# 3.0. Вроде часть этого обещают в 7-й версии.

anonymous
()
Ответ на: комментарий от Quasar

> MIT/X11... Мигелюшка ещё раз доказал свою нетрадиционную ориентацию. На GPLv3, разумеется, этот ахтунг забил.

на GPLv3 много кто забил

lester ★★★★
()
Ответ на: комментарий от anonymous

>баа, а откуда растут ноги у аннотаций, произвольного кол-ва аргументов, дженериков, автобоксинга, аналога цикла foreach ?

Неужто из сишарпа? Ты что курил? Посмотри на даты релизов.

И вообще это новость: оказывается вараргсы изобрел Микрософт хотя они с покон веку были в С, параметрический полиморфизм тоже изобрел микрософт, замыкания и лямбды которым 100 лет в обед (ну через 15 лет будет) тоже изобрел микрософт, и вывод типов изобрел микрософт...

И интернет и компьютеры и окружающую реальность - это все благодаря гейтсу! Да! Да!

r ★★★★★
()
Ответ на: комментарий от r

> И вообще это новость: оказывается вараргсы изобрел Микрософт хотя они с покон веку были в С, параметрический полиморфизм тоже изобрел микрософт, замыкания и лямбды которым 100 лет в обед (ну через 15 лет будет) тоже изобрел микрософт, и вывод типов изобрел микрософт...

нет конечно. Не надо мне приписывать то чего я не говорил. Просто яве приходится конкурировать и перенимать удачные идеи из других языков.

МС вообще ничего не придумала в своём .NET. Просто достаточно удачная реализация давно существующих идей.

anonymous
()
Ответ на: комментарий от anonymous

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

Только почему то ты заявил что эти языки из которых идеи перенимаются - это С#. Если на то пошло что сам принцип платформы .NET - это калька на Java Platform. А все что ты перечислил выходило нос к носу - те же генерики в Java 1.5 и С# 2.0 появились _одновременно_.

>МС вообще ничего не придумала в своём .NET. Просто достаточно удачная реализация давно существующих идей.


Вот именно. _ничего нового_. И даже принцип построения самой платформы - содран с жабы.

ТАк что не надо закидонов что жаба сдирает удачные идеи с С# - в c# нет ни одной оригинальной идеи.

r ★★★★★
()
Ответ на: комментарий от r

anonymous прав. В MS ничего этого не придумывали. Просто выглядит странным, что в такой зрелой платформе как Java эти вещи появляются сразу после того, как они засветились в .NETе. Разве не было возможности сделать их намного раньше? Или просто не было желания? Но почему тогда оно появилось сейчас?

crank
()
Ответ на: комментарий от KRoN73

>>>Но также у Java есть очень долгий стартап

>>(let ((flame-mode nil)) а как с этим у моно? )

>Идеально :) Лёгкие приложения, типа Tombo стартуют просто мгновенно. Более тяжёлые - на уровне качественных приложений с нативным кодом.

Только что проверил на горячем старте - ровно 7 секунд. (1ядро, 2000мгц, 1024метра). Пока запустишь, забудешь что хотел записать.

Альзо, на моём лоре заср^Wзасланые казачки (медиаторы влияния) на зарплате у MazoSadt'а? Как, продали уже свой линукс сервер?

anonymous
()
Ответ на: комментарий от r

> ТАк что не надо закидонов что жаба сдирает удачные идеи с С# - в c# нет ни одной оригинальной идеи.

если уж на то пошло, то и в яве нет никакой оригинальной идеи. Там вообще ничего нет - ни перегрузки операторов, ни человеческой поддержки типа Decimal, ни traits'ов, ни автоматической генерации геттеров-сеттеров (ИДЕ не в счёт - костыль, плюс при изменении типа приходится менять типы геттеров-сеттеров) и т.д. Список можно продолжать долго.

Впрочем идеальных языков не бывает, но на мой взгляд язык С# с технической точки зрения выглядит более привлекательно. Поставщик вот только у него вредный и опасный.

anonymous
()
Ответ на: комментарий от lester

>на GPLv3 много кто забил

например, продажный чмырь по кличке Линус.

anonymous
()
Ответ на: комментарий от anonymous

> eсли уж на то пошло, то и в яве нет никакой оригинальной идеи.

Есть. "Язык должен быть строг, туп и многословен до отвращения"

sv75 ★★★★★
()
Ответ на: комментарий от crank

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

Еще один релиз хистори не удосужился посмотреть? Тебе не выглядит странным что .NET вообще появился когда жаба доказала жизнеспособность такой модели?

>азве не было возможности сделать их намного раньше?


Ты задаешь вопрос типа: какого хрена не написали руби раньше? Лиспу уже 50 лет, смолтолку 30, флешу 10 - какого хрен сильверлайт и jfx выходит токо сейчас?

> Но почему тогда оно появилось сейчас?


Пятилетка такая - языки плодятся как грибы и мутируют куда попало.
Вы притянули совсем левый факт - микрософт начал делать .NET. Может и руби потому появился и перл6 нгачали разрабатывать с парротом из-за этого? Может еще С# стимулировал интерес к FP?

Факт в том что .NET один из многих, и удача и распространенность обусловленна биллиардами зеленых денег которые вбухал разработчик. Он не папа и не мама - он такой же продукт среди многих. При чем имеющий нулевое число инновационых решений.




r ★★★★★
()
Ответ на: комментарий от sv75

> Есть. "Язык должен быть строг, туп и многословен до отвращения"

Но насчёт строгости это есть, а тупость и многословность - следствие излишней строгости и наличия кучи ограничений. Типа это вам не надо, и это вам не надо.

В принципе ещё более строги brainfuck и whitespace, но они были после явы =)

anonymous
()
Ответ на: комментарий от crank

>Generics в Java и в .NET разные вещи. В Java они больше похоже на шаблоны из С++. В .NET их поддержка обеспечивается CLR.

И что? Что доступность RTTI как-то влияет на суть того что это параметрическйи полиморфизм?

r ★★★★★
()
Ответ на: комментарий от r

> Еще один релиз хистори не удосужился посмотреть? Тебе не выглядит странным что .NET вообще появился когда жаба доказала жизнеспособность такой модели?

насколько мне известно, МС начала разработку жабы (был даже такой продухт - Visual J++, если кто помнит), но потом сан начала давить на МС и "The settlement document outlined that Microsoft also could not advance J++ beyond its mirrored implementation of Java, version 1.1.4. This effectively ended J++ and further updates. As well, the MSJVM had to cease to be distributed and is no longer available for download.".

Потом МС пришлось создавать свой аналог явы.

А насчёт релиз хистори:

http://www.levenez.com/lang/history.html#05

Первый бета-релиз C# 2.0 был в июле 2003-го, а первый бета-релиз Java 5.0 был в декабре 2004-го, так что идеями они как минимум обменивались.

anonymous
()
Ответ на: комментарий от anonymous

>если уж на то пошло, то и в яве нет никакой оригинальной идеи.

Серьезно? Ну ты просто поразителен - Сан (Self) и Бимеры(VisualWorks) реализовали работающий JIT еще в начале 80. Именно Сан и Бимеры вкладывали бабло в эти разработки. Сан первый создал мощную платформу поверх VM - Java Platform и показал что на ней можно делать практически все - от серверных апликух до десктопных приложений.

>Список можно продолжать долго.


Мне с твоего списка смешно.

r ★★★★★
()
Ответ на: комментарий от r

> Серьезно? Ну ты просто поразителен - Сан (Self) и Бимеры(VisualWorks) реализовали работающий JIT еще в начале 80. Именно Сан и Бимеры вкладывали бабло в эти разработки. Сан первый создал мощную платформу поверх VM - Java Platform и показал что на ней можно делать практически все - от серверных апликух до десктопных приложений.

Нет, я понимаю, что вы жабофил, но внимайте разумным аргументам-то хоть немного.

В какой версии явы появился JIT компилятор ?

Боюсь что VM тоже появились задолго до явы. Тот же эрланг вертится в своей VM, а он был ещё до явы. Насчёт вложений ничего не знаю - спорить не буду. Бимеры вообще молодцы :)

anonymous
()
Ответ на: комментарий от anonymous

>Первый бета-релиз C# 2.0 был в июле 2003-го, а первый бета-релиз Java 5.0 был в декабре 2004-го, так что идеями они как минимум обменивались.

Я ж не виноват что у вас любителей майкрософта один source of technology, и потому пока на сайте производителя не выложат для вас недоступно, нормальным людям ничего не мешало брать новый компиляор который был доступен и скрещивать его с рантаймом от 1.4.

r ★★★★★
()
Ответ на: комментарий от anonymous

>В какой версии явы появился JIT компилятор ?

Каким образом то, что JIT появился только начиная с 1.2 меняет тот факт что именно Сан и Бимеры вели эти разработки и изобрели его езе в 80х, а жаба одно из творений где они были применены на практике?

>Насчёт вложений ничего не знаю - спорить не буду.


Тогда зачем нести чушь про отсутсвие инновационности в жабе если даже не знаем какого цвета учебник?

r ★★★★★
()
Ответ на: комментарий от anonymous

>Хм, если верить википедии, то в 1.2

Хотя да, припоминаю, была такая поделка под названием kaffe, еще при царе горохе, в году, эдак, 1997-м лохматом, так вот в ней был какой-то JIT, которым она очень кичилась, хотя он нихера не работал. Спустя некоторое время хит появился в самой Жабе.

anonymous
()
Ответ на: комментарий от r

> Я ж не виноват что у вас любителей майкрософта один source of technology, и потому пока на сайте производителя не выложат для вас недоступно, нормальным людям ничего не мешало брать новый компиляор который был доступен и скрещивать его с рантаймом от 1.4.

Собственно у вас, любителей явы, тоже по большому счёту один source of technology - java.sun.com. Много ли серверов вы знаете с установленной альтернативной реализацией VM, и давно ли Java у нас в опен сорс ? Под GPL ?

anonymous
()
Ответ на: комментарий от r

> Тогда зачем нести чушь про отсутсвие инновационности в жабе если даже не знаем какого цвета учебник?

Плиать, а, первая VM реализована в Яве ? Нет.

Вы думаете что идея генерации нативного кода из кода ВМ настолько гениальна что пришла в голову только Гослингу ? Первая реализация подобного подхода была в смоллтолке. Нечто подобное было и в CL.

anonymous
()

Сколько времени читаю лор, так все время у меня возникает ощущение, что я попал в зоопарк-заповедник. Все прыгают по деревьям, кричат страшными голосами какие-то умные слова и аббревиатуры и с разбегу срут друг на друга. Причем толщина струи прямо пропорциональна распространенности выкрикиваемых слов

anonymous
()
Ответ на: комментарий от r

>Что доступность RTTI как-то влияет на суть того что это параметрическйи полиморфизм?

На суть это не влияет. Это особенность реализации. Почему-то мне кажется, что более простой способ в Java был выбран из-за сложности модификации JVM и, как следствие, более высоких трудозатрат.

crank
()
Ответ на: комментарий от anonymous

> Сколько времени читаю лор, так все время у меня возникает ощущение, что я попал в зоопарк-заповедник. Все прыгают по деревьям, кричат страшными голосами какие-то умные слова и аббревиатуры и с разбегу срут друг на друга. Причем толщина струи прямо пропорциональна распространенности выкрикиваемых слов

вроде за это его и любят, нет ? )

Говорят что в споре рождается истина, а хороший флейм всегда интересно почитать.

anonymous
()

Пилять! Побежал было устанавливать, как вдруг понял что даже исходники Paint .NET из открытого доступа аффтАры-пидАры убрали. Маразматики.

vitalif ★★★★★
()
Ответ на: комментарий от anonymous

>Много ли серверов вы знаете с установленной альтернативной реализацией VM, и давно ли Java у нас в опен сорс ?

Ох ну е мое - сколько можно - хоть в википеди закляните. Д лично я за свою жизнь в продакшен пускал жабы от: Sun, IBM, Apple, SGI, HP + FreeBSD. При чем самой крутой считаю жабу от SGI.

И да - она таки давно опен соурс. Уж точно больше 5 лет назад жаба качалась под CDDL. Кому CDDL не нравится - это их половые трудности. .NET вообще closed source.

r ★★★★★
()
Ответ на: комментарий от crank

Скорее из-за совместимости. List<Integer> тождественен List в рантайме. Благодаря этому можно было постепенно переходить на дженерики - они существовали только в компайл тайме и на в стрруктуре рантайма почти ничего не поменялось - всё равно всё превращалось в старые добрые касты. А в с# в ризультате есть две ветки коллекция - одна - дженерик, а вторая нет. Джава в своём духе оставила совместимость, Майкросовт, в сврём духе всё поломал :)

theos ★★★
()
Ответ на: комментарий от anonymous

> Сколько времени читаю лор, так все время у меня возникает ощущение, что я попал в зоопарк-заповедник. Все прыгают по деревьям, кричат страшными голосами какие-то умные слова и аббревиатуры и с разбегу срут друг на друга. Причем толщина струи прямо пропорциональна распространенности выкрикиваемых слов

>вроде за это его и любят, нет ? )

>Говорят что в споре рождается истина, а хороший флейм всегда интересно почитать.

Сказка на ночь. У меня возникает ощущение, что всем существам, изучившим smalltalk-lisp-erlang специальный vip-инвайт выдают на ЛОР.

anonymous
()
Ответ на: комментарий от r

>Еще один релиз хистори не удосужился посмотреть? Тебе не выглядит странным что .NET вообще появился когда жаба доказала жизнеспособность такой модели?

Удосужился. Более того, я ознакамливался с релизами обеих платформ по мере их появления. Я пытался показать, что время, когда можно было утвержать ".NET скопирован с Java" уже давно прошло. Сейчас платформы и технологии находяться в стадии взаимного обмена. На данном этапе .NET получает полноценные версии framework'ов, которые ранее были доступны только в Java (log4j, junit, hibernate, spring etc), а Java становиться по-настоящему мультиязыковой средой.

crank
()
Ответ на: комментарий от r

> Ох ну е мое - сколько можно - хоть в википеди закляните. Д лично я за свою жизнь в продакшен пускал жабы от: Sun, IBM, Apple, SGI, HP + FreeBSD. При чем самой крутой считаю жабу от SGI.

Ладно, ладно, сдаюсь, вас всё равно не переубедить, не буду больше тратить время - всё равно вы отвечаете только на отдельные части сообщений.

> И да - она таки давно опен соурс. Уж точно больше 5 лет назад жаба качалась под CDDL. Кому CDDL не нравится - это их половые трудности. .NET вообще closed source.

Почему-же ? частично MSPL насколько я знаю, а "кому не нравится MSPL - это их половые трудности". Плюс свободные реализации типа моно и dotGnu.

А вообще альтернатива должна быть и это очень в духе OpenSource.

anonymous
()
Ответ на: комментарий от theos

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

crank
()
Ответ на: комментарий от anonymous

> Сказка на ночь. У меня возникает ощущение, что всем существам, изучившим smalltalk-lisp-erlang специальный vip-инвайт выдают на ЛОР.

да ну ладно, знание этих языков уж точно никак не повредит. А то что этим сильно кичатся - ну это возрастное и проходит.

anonymous
()
Ответ на: комментарий от crank

Дак а я и не спорю что оба пути имеют как плюсы так и минусы. Я про сами пути - тащить совместимость и каждый раз ломать и строить. Ломать - в смысл объявлять старое депрекейтед. Всё таки параллельная иерархия коллекций - это не больно круто :)

theos ★★★
()
Ответ на: комментарий от anonymous

>Плиать, а, первая VM реализована в Яве ? Нет.

А что кто-то это утверждал?

>Вы думаете что идея генерации нативного кода из кода ВМ настолько гениальна что пришла в голову только Гослингу ?


Я думаю что у вас трудности с чтением текста, а чтение мыслй вообще нижэеплинтуса. Я говорил о JIT. Если вы не асиливаете разницы между JIT и VM - это ваши трудности.

>Первая реализация подобного подхода была в смоллтолке.


Рад что вы хоть это знаете. Жаль что вы не знаете что упомянутый мной VisualWorks - это смолтолк и есть, а упомянутый Self - это сынок смолтолка и папа жабаскрипта.

r ★★★★★
()
Ответ на: комментарий от r

>~0.7 секунды это долго?

Да. Для пустого приложения - непозволительно долго. У меня Tomboy с базой в пару десятков сообщений стартует менее, чем за секунду где-то :)

И пропорции сохраняются.

Не поленился сейчас измерить (все тесты, понятно, «тёплые»).

kdevelop-3.5.3 стартует за 2,7сек.

monodevelop-1.0 - за 4,0сек.

eclipse-3.4 - за 7,2сек.

Эклипс - голый, без плагинов и с пустым воркспейсом.

KRoN73 ★★★★★
()
Ответ на: комментарий от tailgunner

Многое уже перенесено.
Spring.net, NHibernate, nBatis, log4net

NonHuman ★★★
()
Ответ на: комментарий от theos

> Всё таки параллельная иерархия коллекций - это не больно круто :)

А как быть? Сказать "ArrayList'а больше нет, юзайте List<object>"?

crank
()
Ответ на: комментарий от anonymous

>Только что проверил на горячем старте - ровно 7 секунд. (1ядро, 2000мгц, 1024метра)

2800МГц, 1 ядро, 1Гб - тёплый старт менее секунды.

Кстати, Basket в тех же условиях стартует около трёх секунд (но ему простительно, всё же он заметно сложнее), Incollector - менее 2 секунд.

Увы, на Java проверить не смогу, аналогичные программы под ней мне неизвестны :)

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

>С каких это пор мону используют в ентерпрайзе?
Давно. Для переноса .Net приложения на Linux

NonHuman ★★★
()
Ответ на: комментарий от KRoN73

А вы сравните то что есть даже в _голом_ эклипсе про сравнению с тем что перечислели :) Там же куча плагинов даже в _голом_ варианте. Так что...

theos ★★★
()
Ответ на: комментарий от crank

А вы в курсе как это решено в джаве? там ArrayList & ArrayList<Anything> одно и тоже. можно написать List<Integer> = new ArrayList(); ;)

theos ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.