LINUX.ORG.RU

Вышел MonoDevelop 1.0 Beta 3 (0.18)


0

0

Изменения:
Улучшенный Dock Manager
Поддержка MacOS X
Поддержка moonlight runtime
В настройках компилятора можно указывать версию C#
Новый диалог для проектов Packaging and Translation теперь позволяет определять включаемые пакеты/трансляции
Больше 50 исправленных багов

Скачать:
http://www.monodevelop.com/Download
http://go-mono.com/sources-stable/

>>> Подробности

Ответ на: комментарий от alex-w

> C# почти его близнец?

С# похоже на Джаву, как "Жига" "похожа" на "Фиат".

Что такое С#? Это

1) синтаксический "sugar", перегружающий язык,

2) новые сущности, нарушающие "принцип Оккама",

3) отсутствие четкой системы перехвата исключений, дабы нерадивые программеры не заморачивались на коде обра

4) возможность создания НЕНАДЁЖНОГО кода.

Предоставляю нашему "монисту" почетное право возразить мне по пунктам.:)

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

> 1) синтаксический "sugar", перегружающий язык,

Чушь

> 2) новые сущности, нарушающие "принцип Оккама",

Вздор

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

х-ня

> 4) возможность создания НЕНАДЁЖНОГО кода.

феерический выпук

Принимается?

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

>Принимается?

Я нормально отношусь к дотнету и моне (хотя они мне и не нравяться), но что всегда бесило, так это интеллектуально-культурный уровень их адептов....

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

C# - это улучшенная ява (смотрим C# 3.0)

0. Дженереки. Нормальные, полноценные дженереки. 1. делегаты и евенты 2. Свойства 3. Partial-классы 4. атрибуты 5. ref и out параметры 6. автоматические определение типа при инициализации 7. Инициализация контейнеров 8. лябмда-исчисление (+ анонимные делегаты) 9. Анонимные типы 10. Unsafe. Задача - надо быстро обрабатывать файлы бинарного формата вида: Дата (8 байт), ID (int - 4 байта), 4 поля типа double (по 8 байт). Это как вставки на асме. Иногда приходится. И хорошо, что есть такая возможность.

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

+1, чего действительно не хвататет - пункта 0, 10 при чём 10 - весьма сущществено. Потому что JNI имеет большие накладные расходы. 9 - я может что то пропустил - но чем оно отличается от Anonymous Nested Classes? Всё остально - вобщем по мне так просто приятный сахар, но не что то так уж сильно необходимое.

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

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

По существу Вы ничего не ответили.

-----

"Вопрос: Почему вы считаете, что Microsoft # - это Java без надежности, продуктивности и защищенности?

Ответ [Гослинг]: Там есть места, которые в принципе могут служить лазейками для чего угодно. Эта проблема проистекает из их правил проектирования, которые использовались и при создании С и С++, то есть сама модель памяти позволяет получить доступ ко всему в любой момент времени. Эти лазейки и служат источником проблем безопасности, надежности и продуктивности, с которыми сталкиваются разработчики. Так что, с одной стороны, они скопировали Java, а с другой - добавили всякие неуместные глупости. Это забавно." (с)

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

Вы только что перечислили "синтаксический сахар" и "back doors" для С# и моны + .НЕТа.

Однако синтаксическим сахаром не достичь того, что MVC не было, нет и не планируется в отличие от Свинга. А зато "дыры" - это просто наследие ActiveX, "попиаристее", то есть побыстрее == похалтурнее, чем у конкурентов.

Фреймворков для моны - "раз, два и обчелся", в основном плохо "цельнотянутые" из Java (типа NHiberbate). Стиль программирования - одна большая "магическая кнопка" a-la VB или Delphi и много-много кода. Куда уж там нам, "жабабыдлокодерам", ревностно доводящим до совершенства малейшие детали архитектуры классов! Берем формочку - и тяп-ляп - кнопка. Навесим делегатов - и всё готово. А то мы тут на "каждый чих" модель для компонента создаем, все о масштабируемости думаем... Стоп-стоп! А как там с "маштабируемостью" с моне дотНЕТе? :) Вот тут то и облом-с! Нельзя с "писючковым мышлением" от M$ в корпоративные проекты лезть! :)

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

> нам, "жабабыдлокодерам", ревностно доводящим до совершенства малейшие детали архитектуры классов!

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

> Нельзя с "писючковым мышлением" от M$ в корпоративные проекты лезть! :)

/me рыдает от умиления. Джависты - просто рыцари в сверкающих доспехах, на белых конях...

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

>0. Дженереки. Нормальные, полноценные дженереки. 1. делегаты и евенты 2. Свойства 3. Partial-классы 4. атрибуты 5. ref и out параметры 6. автоматические определение типа при инициализации 7. Инициализация контейнеров 8. лябмда-исчисление (+ анонимные делегаты) 9. Анонимные типы 10. Unsafe. Задача - надо быстро обрабатывать файлы бинарного формата вида: Дата (8 байт), ID (int - 4 байта), 4 поля типа double (по 8 байт). Это как вставки на асме. Иногда приходится. И хорошо, что есть такая возможность.

Имеем - С++ инкарнация 2.

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

>/me рыдает от умиления. Джависты - просто рыцари в сверкающих доспехах, на белых конях...

ТЕм не менее стоит признать что большинство книжек не "как склепать хелло ворлд на очередном езыге" а на тему качества разработки приложений, архитектуры приложений, методик разработки, равно как и огромное количество фреймворков и библиотек, реальных применений определенных принципов типа AOP, IoC и т.п. появились именно в этой среде.

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

>ТЕм не менее стоит признать что большинство книжек не "как склепать хелло ворлд на очередном езыге" а на тему качества разработки приложений, архитектуры приложений, методик разработки, равно как и огромное количество фреймворков и библиотек, реальных применений определенных принципов типа AOP, IoC и т.п. появились именно в этой среде.

AOP и IoC не нужны. Слишком жирно придумывать названия таким вещям. Вот давайте назовем структуру if-else каким-нибудть мудреным выражением, и напишем про это книгу.

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

> ТЕм не менее стоит признать [...] на тему качества разработки приложений, архитектуры приложений, методик разработки, равно как и огромное количество фреймворков и библиотек, реальных применений определенных принципов типа AOP, IoC и т.п. появились именно в этой среде

Признаю с готовностью и даже читаю с интересом (хотя и мало :/). Только два "но": все методические наработки Явы можно использовать и в .NET; не надо говорить за всех и про всех.

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

> Вот давайте назовем структуру if-else каким-нибудть мудреным выражением

Она называется "условный оператор" - всего на 1 слово короче, чем "inversion of control". Хотя с терминологией и баззвордами Ява меры не знает, это да.

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

>Слишком жирно придумывать названия таким вещям.

Ну я смотрю ты готов продемонстрировать примеры применения AOP и IoC до того как кто-то это популяризовал в жабской комунити?

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

>Только два "но": все методические наработки Явы можно использовать и в .NET; не надо говорить за всех и про всех.

Можно. Чем собственно .NET Community и занимается. Дело ж не в том можно или нельзя - а чо бдлоджава таки была офигенным стимулом и для всех прочих технологий и языгов в том числе.

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

>Ну я смотрю ты готов продемонстрировать примеры применения AOP и IoC до того как кто-то это популяризовал в жабской комунити?

Я имел ввиду что это не настолько новаторские идеи, чтобы им придумывать названия. Все, что не изложено в описании языка - от лукавого. Объекты, интерфейсы, методы - это часть жабы, а эти баззворды к ней не имеют никакого отношения.

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

>Ну я смотрю ты готов продемонстрировать примеры применения AOP и IoC до того как кто-то это популяризовал в жабской комунити?

И вообще, они не нужны. Приведи примеры, где это может оказаться полезным?

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

>, а эти баззворды к ней не имеют никакого отношения.

Следовательно ты готов продемонстрировать их применение в других языках?

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

>И вообще, они не нужны. Приведи примеры, где это может оказаться полезным?

IoC это вообще принцип построения архитектуры систем. Работает сейчас в каждом первом серьезном жабском приложении.

До нормального АОПа мы еще не доросли - мы не в тех терминах делаем приложения. АОП проявит себя в будущем как модель интеграции различных приложений. Сейчас оно конечно везде работает (в jee серверах) - но так как оно везде работает лично мне не холодно не жарко.

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

> Все, что не изложено в описании языка - от лукавого.

Чтоб тебе всю жизнь разрабатывать только на том, что есть в языке, без дополнительных библиотек и сторонних компонентов. Да-да, забудь про SQL!

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

> C# - это улучшенная ява (смотрим C# 3.0)

> 0. Дженереки. Нормальные, полноценные дженереки.

Интересно. Когда я читал о дженериках C# 2.0, то у меня сложилость прямо противоположное мнение. Я не нашел эквивалент явовскому "?" (или это будет ключевое слово "var"). Исправили? Да и слишком много ограничений. Это нельзя, то - тоже нельзя. Особенно в сравнении с шаблонами. В общем, после ознакомления остался неприятный осадок.

2All

Кстати, вы тут сравниваете .NET vs Java через призму C# vs. Java. Последнее сравнение уже устарело. Сейчас основным языком .NET является все же С++/CLI, поскольку он наиболее полно покрывает возможности .NET CLR. Так стало, начиная с .NET v2.0. Но это не всегда очевидно, поскольку порог вхождения для C++/CLI много выше...

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

>Кстати, вы тут сравниваете .NET vs Java через призму C# vs. Java. Последнее сравнение уже устарело. Сейчас основным языком .NET является все же С++/CLI, поскольку он наиболее полно покрывает возможности .NET CLR. Так стало, начиная с .NET v2.0. Но это не всегда очевидно, поскольку порог вхождения для C++/CLI много выше...

Окей, давай сравним C++/CLI со Scala/JVM, а заодно позовем функциональных извращенцев, чтобы они тут прочитали лекции про монады...

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

откуда такие странные выводы, уважаемый?

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

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

Это шутка такая? Если нет, то примеры технологий, _родившихся_ в Яве - в студию.

Ява (язык, в меньшей степени JVM) - это такой Франкенштейн из ранее придуманных технологий, зачастую реализованных криво по не вполне понятным причинам (анонимные классы, дженерики).

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

> структуру if-else каким-нибудть мудреным выражением

Ну прям в точку! Не зря же Брюс Эккель пишет в своей "философии Джава", что появилось в проге много "else if" каскадов, что значит "что-то в консерватории не в порядке" , значит вместо использования полиморфизма чей-то процедурно пишем. :)

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

Это по сревнению с джавовскими дженереками много ограничений? Забудьте по дженерики в Java, это просто препроцессор.

Вот когда сможете делать коллекции интов без боксинга как List<int>, тогда и будуту говорить.

Или

class MyGeneric<T> where T:new() { private T m_T = new T(); }

когда можно будет в Java делать тогда и поговорим.

>Последнее сравнение уже устарело. Сейчас основным языком .NET является все же С++/CLI,

LOL, это где ж вы такое вычитали? ДА, С++/CLI позволяет выжать из платформы максимум, так же как ассемблер, ну и что? То, что мейнстримом считается C# видно хотя бы из того, что С# развивается быстрее остального. C# 3.0 не имеет аналогов - нет ни VB.NET 3.0, ни аналогичного апдейта для C++/CLI.

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

>Хотя с терминологией и баззвордами Ява меры не знает, это да.

И тут это загадочное слово "баззворды". Что оно означает? (на форуме RSDN.ru один ярый дотнетчик всколзь упомянул его в теме "Чем является прототип", но не дал никакого определения, что оно означает).

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

>Если нет, то примеры технологий, _родившихся_ в Яве - в студию.

Я говорю совсем не о том. Восьмем типичную быдлоотрасль - вебпрограммирование. Когда там вообще стали появлятся хоть какие нибудь серьезные большие проекты? Можешь назвать хоть сколь нибудь индустриально готовый вебфреймворк ну например до 2000 года для питона? перла? Да хоть для пыха - езыга для веба всех времен и народов? Или обобщенный стандартный интерфейс для работы с db - типа JDBC? Я то понимаю, что сейчас почти у всех есть, а тогда? ODBC? BDE? не смешите мои тапки. Вместе с жабой Сан сделал очень важную вещь - он принес в массы мессидж "хватит уже кодить - начинайте разрабатывать".

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

>0. Дженереки. Нормальные, полноценные дженереки. полная фигня, чем они лучше, где тесты производительности???

>1. делегаты и евенты нах они нужны?? паттерны Command, Observer знаешь??

>2. Свойства нах они нужны, если есть методы set/get???

>4. атрибуты в жабе есть аннотации...

>5. ref и out параметры нах это надо??? нет правда, зачем?? передавать по значению ссылки на классы и все

>10. Unsafe мусор...

по остальным пунктам - "сахар" и не более того.

Зачем плодить сущности сверх необходимости??? зачем этот сахар??

Короче фтопку дотНЕТ, ИМХО конечно

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

>Вот когда сможете делать коллекции интов без боксинга как List<int>, тогда и будуту говорить.

Ага. Тебе это херня особо помагает? А как на счет сравнения int с "int?" интересный подход (a >= b || a < b) == false. Ахерительно интересное решение. Для исследователя девиаций.

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

> Вот когда сможете делать коллекции интов без боксинга как List<int>, тогда и будуту говорить.

Опять скатились до банальности... Каждый раз, когда заходит речь о "крутости" дотнетовских generics, то почему-то всегда вспоминают именно этот случай. Не спорю, что получается эффективнее, но java-like boxing дает примерно такую же функциональность, хотя стоит чуть дороже. Короче говоря, не впечатляет и не тянет на killer feature.

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

Мой посыл был на счет конструкции "?", которую я считаю очень важной для тех, кто _создает_, а не _использует_ генерики. Привидите мне ее аналог в C#.

> То, что мейнстримом считается C# видно хотя бы из того, что С# развивается быстрее остального.

Именно LOL. Путаете теплое с мягким. Еще раз повторяю, что новая верcия Visual C++ (аkа C++/CLI вместо устаревшего и переходного Managed C++) позволяет наиболее полно использовать возможности CLR. См. как обойти garbage collector. А язык C# вполне может оставаться себе мейнстримом и дальше. :)

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

> Когда там вообще стали появлятся хоть какие нибудь серьезные большие проекты? Можешь назвать хоть сколь нибудь индустриально готовый вебфреймворк ну например до 2000 года для питона? перла?

Я далек от веб-программирования, но, вроде как Амазон сделан на Mason, это Перл.

> обобщенный стандартный интерфейс для работы с db - типа JDBC? Я то понимаю, что сейчас почти у всех есть, а тогда? ODBC? BDE?

Ну вообще-то именно ODBC, BDE - это специфично борландовкий интерфейс (так же, как Jet - микрософтовский). Первые реализации JDBC были по сути оберткой ODBC.

Я не очень понимаю, к чему ты клонишь. К тому, что фреймворки вообще появились только с появлением Явы? Так само понятие "framework" стало более-менее широко употребляться только в самом конце 80-х, оно почти ровесник работ по Яве (начатых, IIRC, в 1989-м). Но изначально оно связывалось с NeXT и Mac. Блин. даже TV, MFC и OWL назывались фреймворками.

>> int x = 0; if(int.TryParse(myString, out x)) { int y = x*x; }

>int x = 0; try { x = Integer.parseInt(yourString); int y = x*x; } catch(ParseException e) { log.error("Ваня ты неправ); }

О... я скоро начну верить в Ява-программеров :)

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

> Visual C++ (аkа C++/CLI вместо устаревшего и переходного Managed C++) позволяет наиболее полно использовать возможности CLR. См. как обойти garbage collector.

Можно подробнее об обходе GC?

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

>Я далек от веб-программирования, но, вроде как Амазон сделан на Mason, это Перл.

Это темплейтинг энжайн. Не более чем аналог raw jsp.

>К тому, что фреймворки вообще появились только с появлением Явы?

Нет я про то что народ перестал уже писать сортироки и начал писать архитектурные солюшены под влиянием идеологии которую протолкнул сан с жабой. Посмотри на Apache SF. Посмотри на QtMVC - практически клон Swing.

>Первые реализации JDBC были по сути оберткой ODBC.

Где эти реализации были в питоне, перле, плюсах, пыхе? Тогда подход к драйверам базы данных подходил в качестве обычно незаменяемой либы специфичной для базы. Сантехники задвинули идею "абстрактного фреймворка" на массовый рынок.

>К тому, что фреймворки вообще появились только с появлением Явы?

Об указанном выше.

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

>> Первые реализации JDBC были по сути оберткой ODBC.

> Где эти реализации были в питоне, перле, плюсах, пыхе?

Плюсы использовали Сишную, естественно (повторюсь - так же, как и Ява). Насчет других - не знаю, в те былинные времена я с ними еще не столкнулся. Насколько я знаю, в Перле был DBI/DBD, который как минимум не моложе JDBC. Про Питон, как ни странно, до сих пор не знаю 8)

>>Первые реализации JDBC были по сути оберткой ODBC.

>Где эти реализации были в питоне, перле, плюсах, пыхе?

DBD::ODBC в Перле, плюсам вполне хватало ODBC, насчет остальных - ХЗ.

Но, кажется, я понял, к чему ты 8) Но это сводится к тому, что Ява - это первая из реально унифицированных платформ, на которых есть _ВСЁ_, и за счет унификации сокращены многие непроизводительные траты. Ну так я с этим не спорю (хотя и не совсем согласен). И роль явы в просвещении тоже не отрицаю.

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

> Можно подробнее об обходе GC?

Имеется ввиду ручное управление памятью в managed-коде. На выбор. Можно через GC, а можно и без.

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

>Но, кажется, я понял, к чему ты 8) Но это сводится к тому, что Ява - это первая из реально унифицированных платформ, на которых есть _ВСЁ_, и за счет унификации сокращены многие непроизводительные траты. Ну так я с этим не спорю (хотя и не совсем согласен). И роль явы в просвещении тоже не отрицаю.

Ну собственно я к этому и говорил:))

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

> Ну оно же где-то описано? Ссылку можно?

Как обычно, в MSDN... :)

Пока сам не использовал, но присматриваюсь. Насколько понял, такие классы и структуры называются native, и их при желании можно встроить в чистый (pure) MSIL код. То есть, полу-натив какой-то получается в итоге, но, видимо, при этом теряется свойство safe (??).

В общем, вариантов выходит много:

http://msdn2.microsoft.com/en-us/library/k8d11d4s(VS.80).aspx

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

Спасибо. Познавательно. Еще очень приколола следующая фраза из первой статьи: "as the verifier ensures everything is kosher" :)

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