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 ()
Ответ на: комментарий от xonix

>в первоистоках явы стояли разработчики смолтолка
Они стояли, отвернувшись от общественности и расстегнув ширинку?

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

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

Ну, как сказать :) В том же monodevelop у меня средства разработки (плагины) под boo, c++ и java. Наличествует также плагин для работы с SVN. В kdevelop - cvs, fortran, haskell, java, perl, php, python, ruby, sql, svn :)

Да, понятно, сравнение не самое корректное, но общее ощущение передаёт.

Та же фигня и со всевозможными Azureus vs Ktorrent, Jajuk vs любой медиаплейер, даже Sancho - и то напрягает своей медлительностью, хотя ему, как раз, прощаю, ибо функционал на голову выше, чем у kmldonkey или mldonkey-gui.

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

Генитально, сер! Тока в жабе (не-7), как мне не изменяетс память, генериики- это костыль, потому и совместимость. Ну да ладно. Просто поправляю камрада.

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

Кхе-кхе... Если б в .NET так сделали, то не было бы вообще никакого выигрыша от их использования. Остался бы тот же boxing/unboxing при работе с коллекциями value-типов.

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

проблема джавы - что она до сих пор не научилась шариться между процессами (скомпилированным и байткодом и прочим). отсюда проитекает частично её медлительность и жручесть.. и малопригодность для десктопа. :( и поченить это они всё никак не могу даже пообещать..

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

Из прог под оффтопик использующих Qt, мне известны Adobe Photoshop, Acrobat reader (возможно еще какой-то софт от Adobe), Opera.

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

Это тут не причём. В .НЕТе были бы тот же бонус что и в джаве - больше статических проверок на этапе компиляции.

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

>> Paint.NET с отключёнными P/Invoke запускается и работает под Mono 2.0

> Гимпу теперь точно капец!

В пейнтнете все так же угребищно реализован выбор типа наложения слоев? :)

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

> Из прог под оффтопик использующих Qt, мне известны Adobe Photoshop

Вот только не фотошоп, а альбум. Две очень разные вещи.

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

>banshee

Кто-то юзает этот кал при живом amaroK'е?

>f-spot

Кто-то юзает этот кал при живом digiKam'е?

>tomboy

Ну это еще куда ни шло.

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

>Да. Для пустого приложения - непозволительно долго.

В каком месте оно пустое? Оно показывает окно с надписью - то есть поднимает всю графическую подсистему.

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


Давайте еще оффисы посравниваем. Все три пунткта - только номинально похожи. Они не реализованы одинаково. Если интересно - давайте контест устроим - писать будем напрмиер калькулятор. Если время запуска будет перцептивно одинаковое - сойдемся на том что дело в архитектуре и сложности самих приложений.




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

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

Может со стороны кажется, что измения в языке, которые затрагивают только синтаксис, носят хаотичный характер, но каждое такое изменение было необходимо для достижения тех целей, которые поставили перед собой разработчики:

partial - был введен для поддержки кодогенерации, часть кода создается дизайнером, часть пишет программист - жутко удобно.

все измения в языке версии 3 были направленны на реализацию LINQ, то есть, если исключить любое изменение из списка - автоматический вывод типов, extention methods, лямда-выражения в виде деревьев или анонимные классы - то LINQ станет невозможно реализовать.

Следовательно изменения в языке C# имели плановый характер. Логику в измененях в Java не вижу, делаю вывод, что развивается она хаотически. А аннотации это прямое копирование аттрибутов .net'а, которые в нем были с 2000'ого года. Не знаком ни с кем, кто это оспаривал. К тому же я не знаю в каких языках аннотации были до C#. Неужели он первый?

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

> Это тут не причём.

Увеличение скорости работы с коллекциями в ~20 раз просто не при чем?

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

javadoc? Покажите мне что останется от javadoc после компиляции. Javadoc это тоже самое, что и xml комментарии в C#. Я говорил про аттрибуты в C# - способ пометить класс так, что бы эта информация сохранялась после компиляции, что бы можно было работать уже с байт-кодом, то есть, например, указать в какой метод нужно делать инъекцию. Аналог появился только в java 1.5 - аннотации.

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

>А метаданные, созданные javadoc, в runtime можно использовать в целях интроспекции :)?

Это появилось потом (хотя deprecation хранился в классфайле). Но атрибуты(аннотации) изобрели совсем не в С#. Пока их в С# изобретали - в жабе они во весь рост использовались - смотри хоть один из самых популярных проектов xdoclet.

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

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

Я уверен что если вбухать биллиарды зеленых денег в продвижение brainfuck или MUMPS (особо не меняя их - иначе получится C# ;) ) - большой распространенности они все равно не получат.
В последние годы в основном имею дело с C++, C# и Java.
Лично мне удобнее и приятнее писать (как новые проекты так и править индусский код) на C#, если нужна многоплатформенность - Java, и только если совсем некуда деваться - то C++.
И мне неинтересно сколько и кто вбухал в разработку языка и платформы. Мне интересно насколько удобно вести разработку мне (причем не стоит забывать что в одиночку сейчас мало кто что делает и что индусов в IT более чем достаточно).

И вот тут Mono движется в правильном направлении, когда реализует Windows.Forms - надо доводить дело до исполнения .Net бинарников, которые не лезут грязными руками в WinAPI. Потому как негуевый софт на жабе еще писать можно (хоть иногда и скрипя зубами :).

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

>Аналог появился только в java 1.5 - аннотации.

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

Да рантайм появился только в 1.5. Но аннотирования кода имеющий смысл помимо документирования было - многие хайперы по типу местных LOPовцев тогда вовсю двигали AOP - attribute oriented programming.

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

>Мне интересно насколько удобно вести разработку мне

Что - к визуал студии привык? А жабы в ней нет?

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

А я и не утверждал, что их изобрели в C#. Это был анонимус. Меня просто смутило сравнение javadoc с attributes. xdoclet больше подходит для сравнения. Но опять же, JVM о нем ничего не знает. Злые языки могут назвать это костылем ;)

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

>xdoclet больше подходит для сравнения.

Я собственно это и имел ввиду - атрибуты аляджавадок. В свое время на них было сделано много полезных тулзеней.

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

> Но опять же, JVM о нем ничего не знает. Злые языки могут назвать это костылем ;)
Ну так можно любую библиотеку назвать костылем. Ведь их функционала нет в языке (VM) изначально :)

По факту было и было удобно. SUN сделала еще удобнее расширив и введя в спецификацию.

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

>Куда-то Вас нетуда уводит.

Меня уводит в психоанализ утвердждения "мне удобно на С# и слегка в C++ и не удобно на жабе" и какие травматические воспоминания из глубокого детства выработали такое отношение к жизни. Из вышесказанного проистекают подозрения на виндузятника привыкшего к визуалстудии.

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

>Кто-то юзает этот кал при живом amaroK'е?

Amarok весьма малоюзабелен из-за тормозов и неудобной работы со списками песен. Единственный реальный бонус - это автодополнение динамического списка по рекомендациям last.fm

>>f-spot

>Кто-то юзает этот кал при живом digiKam'е?

Как только digikam научится не тормозить на просмотре больших альбомов (тысяч 10 на одной странице), каталогизировать сменные носители, хранить в файлах тэги на русском языке и не зависать периодически на открытии sqlite-базы на NFS - тогда он сможет составить определённую конкуренцию F-Spot'у.

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

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

угу. в курсе. и наблюдал примерно такой код:
ArrayList list = List<Integer>();
list.add("строчка");
а теперь напишите метод который перегрузкой параметров понимает List<Integer> и List<String>
и это далеко не все прелести - не надо рассказывать про крутость данного способа реализации дженериков - просто в яве пошли по пути наименьшего сопротивления - но здесь они имхо крайне неправы.

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

То есть xdoclets это работа с программой на уровне исходного текста? Если так, то с runtime аттрибутами ему не тягаться. Именно так реализованы extensions methods и params в языке C#. В Java до 1.5 этого реализовать нельзя было.

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

> просто в яве пошли по пути наименьшего сопротивления - но здесь они имхо крайне неправы.

с вами не посоветовались :)

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

> Именно так реализованы extensions methods и params в языке C#. В Java до 1.5 этого реализовать нельзя было.

Почитайте еще раз про xDoclet и как их атрибуты доступны через runtime.

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

К сожалени на .Net переехла орда VB программеров и соответственно среднее качество кода проектов на .Net/mono значительно ниже.
На Java тоже много ужасников сделано но в среднем человек берущийся за Java не ожидает "простоты" что положительно сказывается на результате.

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

Да. а это недостатки. И это бесит. Что нельзя наследоваться от Comparable<String>, Comparable<Integer>. но это не самое страшное. скажу для - себя - я вобщем готов платить этим за полную совместимость.

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

>В каком месте оно пустое? Оно показывает окно с надписью - то есть поднимает всю графическую подсистему.

Уточняю подразумеваемое - «пустое графическое приложение». Таковое на Mono загрузится быстрее в тех же условиях раза в три.

>Давайте еще оффисы посравниваем.

Ну, давай, найди мне Офисы на Java и Mono - сравним :)

..

Придумай более симметричный тест. Будет более точная оценка. Я, что ли, виноват, что под Java нет полноценных медиапроигрывателей, менеджеров фотоколлекций, заметок и т.п.?

>Если интересно - давайте контест устроим - писать будем напрмиер калькулятор.

Вот щас всё брошу и пойду писать калькулятор :D К тому же ты немного промахнулся. Я пишу не на .NET, а на Java :) Только не для десктопа. Поэтому будет странно, если я вдруг за Mono сяду :)

...

Кстати, вот ещё интересный момент. Недавно я интереса ради оценивал производительность не «базовых» языков (C# и, собственно, Java), а альтернативных. Так вот, что меня поразило. На .NET - масса языков, имеющих производительность, сопоставимую с C#. А вот под JVM, увы, только Scala. Да, Java и Scala уделывают на простых операциях с объектами mono-1.2.6 более чем вдвое, но следующий же по скорости JVM-язык, Jython, проигрывает тому же Boo в 50(!) раз: http://balancer.ru/tech/forum/2008/08/t63003--Proizvoditel~nost~-yazykov.Ob~e...

Нет, оно понятно, динамика со статикой... Но где аналогичные статические решения на JVM? :)

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

На главной странице xdoclets:

XDoclet will parse your source files and generate many artifacts such as XML descriptors and/or source code from it. These files are generated from templates that use the information provided in the source code and its JavaDoc tags.

Где рантайм?

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

>Факт в том что .NET один из многих, и удача и распространенность обусловленна биллиардами зеленых денег которые вбухал разработчик.

А сколько Sun в Java вбухал за прошедшие 18 лет? :)

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

У меня нет больших претезий к NetBeans - не путайте платформу и IDE.
Где вы нашли VS в Mono?
J# в VS есть - но еште его сами.
Не надо огрызаться, я не собираюсь поливать яву помоями - у нее масса плюсов^Wдостоинств - но и розовые очки тут тоже неуместны. Я неоднкратно ловил себя на мысли что несмотря на похожесь одни и теже вещи в C# сделаны чуть прямее. И из-за множества мелких моментов на C# мне нравиться писать больше.

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

>То есть xdoclets это работа с программой на уровне исходного текста? Если так, то с runtime аттрибутами ему не тягаться. Именно так реализованы extensions methods и params в языке C#. В Java до 1.5 этого реализовать нельзя было.

Ох - серьезно? А для чего же он применялся по твоему? XDoclet обрабатывал исходники с целью генерации необходимых артефактов. А где эти артефакты были доступны? Правильно - в рантайме.

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

>> Факт в том что .NET один из многих, и удача и распространенность обусловленна биллиардами зеленых денег которые вбухал разработчик.

> А сколько Sun в Java вбухал за прошедшие 18 лет? :)

А действительно, сколько? Будем считать по капитализации.

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

>Таковое на Mono загрузится быстрее в тех же условиях раза в три.

Даже если допустить это как факт - разница между 0.7 секунд и 0.3 - перцептивно не ощутима. Следовательно дело в приложении - куда оно лезет, сколько подгружает динамически сколько чего читает. И чем меньше приложение умеет и чем проще построено - тем таки да быстрее запускается.

>Ну, давай, найди мне Офисы на Java и Mono - сравним :)


ЗАчем? Запусти обычный OOo. А ведь там С++ внутрях. Что-то он не взлетает на первой коспической. Почему?

>но следующий же по скорости JVM-язык, Jython, проигрывает тому же Boo в 50(!) раз


Jython насколько я понимаю проект довольно древний - интересно как он реализован.

>Но где аналогичные статические решения на JVM? :)


Дык это не пишут. Хотя вот скала мне нравится.

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

> А сколько Sun в Java вбухал за прошедшие 18 лет? :)

Думаю меньше чем мискрософт за первые пару лет:) У сана стока денег нету. Сан в свое время рискнул и выиграл рынок. Ну а микрософт хочет его отхавать - и вкладывает огромные бабки. Почему столько языков под донет? Ну так микрософт нанял немеряное шобло людей тыщами и сказал - развлекайтесь. Вот и развлекаются. Вон в европе цент открывают стоимостью 600M$.



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

>Меня уводит в психоанализ утвердждения "мне удобно на С# и слегка в C++ и не удобно на жабе" и какие травматические воспоминания из глубокого детства выработали такое отношение к жизни.

розовые очки мешают читать.
В оригинале было так:
мне удобно на С#, не так удобно на жабе, и только когда совсем никуда не деться - пишу на C++.
Хотя на плюсах писал по времени больше чем на C#+Java вместе взятых.
В тяжелом детстве было всякое - вплоть до машинных кодов и отсутсвия умножения в процессоре, поэтому жизни без VS представить просто не физически не способен.

>Из вышесказанного проистекают подозрения на виндузятника привыкшего к визуалстудии.


Вы во всем правы, доктор Фрейд, может расстолкуете сексуальную подоплеку такого аномального поведения?

Еще Жванецкий рекомендовал в споре переходить на личности.

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