LINUX.ORG.RU

Вышел Mono 2.6.7

 ,


0

0

Основные изменения:

  • Теперь mono включает в себя MVC2
  • Добавлен WCF — как клиент, так и сервер
  • Добавлена поддержка LLVM для улучшения производительности
  • Новый отладчик, который интегрирован в MonoDevelop 2.2
  • Добавлена поддержка модели безопасности CoreCLR
  • Множество мелких исправлений

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

★★★★★

Проверено: JB ()
Последнее исправление: MuZHiK-2 (всего исправлений: 1)

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

> для совершенно безопасных и чистых языков.

Нету безопасных и чистых языков. Но, анализаторы C# в основном занимаются и сопровождаемостью читабельностью кода. Они не проверяют, упадёт ли программа, если программист забыл про правила работы с памятью. Поэтому в C# можно безопасно не использовать анализаторы. В C++ даже при использовании анализаторов безопасность не гарантируется.

FxCop

Это не анализатор, это хрень.


С точки зрения программиста на С++ - да, FxCop занимается хренью, ибо занимается не страшными падучими багами типа неверного освобождения памяти.
Но видишь ли в чём дело, в C# нет страшных падучих багов. Несомненно, это недостаток языка и его анализаторов ;-)

Ну вперед, пиши на Agda или Axiom


Мне достаточно C#, самые опасные способы отстрела башки самому себе оттуда убрали. Есть, знаешь, такой язык, не только C++ и Agda.

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

> С точки зрения программиста на С++ - да, FxCop занимается хренью,

С точки зрения программиста на Coq, Agda и Axiom - тоже.

ибо занимается не страшными падучими багами типа неверного освобождения памяти.

Он занимается тупым сопоставлением шаблонов. А серьезные анализаторы занимаются доказательством теорем.

Но видишь ли в чём дело, в C# нет страшных падучих багов. Несомненно, это недостаток языка и его анализаторов ;-)

Для C# есть нормальные анализаторы. Убогий FxCop к ним не относится.

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

> Мне достаточно C#, самые опасные способы отстрела башки самому себе оттуда убрали. Есть, знаешь, такой язык, не только C++ и Agda.

Null pointers оттуда не убрали. Неэскейпленную строку от злого юзера тебе никто не помешает подсунуть в вызов ADO.NET. Организовать утечку памяти в хеш-таблице тоже никто не помешает. А уж всякие веселые race conditions и дедлоки и подавно так же легко делаются как и в C++.

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

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

> Нету безопасных и чистых языков.

Дитятко, ты вообще много языков знаешь? Видел хоть что нибудь отличающееся от таких одинаковых C++, Java и C#?

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

> Как статический анализатор определит, что будет с pp после 100 известных только в рантайме преобразований?

Он проверит все возможные пути этих преобразований и предупредит о пограничных ситуациях.

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

> Это совершенно валидный код, и я вполне мог хотеть использовать *pp, а не *p.

Если может хотя бы потенциально попасть за пределы массива/структуры, то он не валидный.

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

Повторюсь, _самые опасные_ способы оттуда убрали. Во всяком случае, в контексте разговора о GC и указателях. Мемори лики не идут ни в какое сравнение со случайными падениями и порчей данных, о которой даже никто не узнаёт.

Поэтому при чём тут ADO.NET, race conditions, и прочие архитектурные изыски вроде чисто функциональных языков - мне не понятно. Null pointers в C# возможен только при использовании fixed(), что так же относится к недостаткам собственно C#/.NET, как и баги COM объектов при обращении к ним из C# - к багам C#. Только подтверждают тот факт, что поинтеры - зло, и всегда лучше GC - о чём тут и речь.

Ну и ещё, ты понятия не имеешь, о чём я имею понятие. Если пришёл попонтоваться, какие языки знаешь - так начни с практических примеров, а не с бессмысленных переходов на личности в духе «ты школота а я Д'Артаньян».

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

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

Если ты не забыл, то мы изучали, как мне найти баг меньше, чем за 3 месяца. Ты посоветовал статический анализатор.

В контексте того факта, что нужно найти баг в legacy code, мне очень поможет найти источник проблемы твой анализатор и его over9000 невалидных строк кода.

Так как мне баг-то было найти? Запустить статический анализатор и переписать весь legacy код? Думаешь, успею за 3 месяца?

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

Звучит как нечто невозможное. Люди сражаются за 100% coverage в юнит тестах, а потом оказывается, что если проверить не coverage, а возможные ветви выполнения, то тестов надо просто дофига. А твой анализатор как это сделает? Статически прогонит программу на исполнение? Слабо верится, хотя конечно если он это реально делает - то штука серьёзная, хоть мне и не помогла бы найти баг.

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

> Поэтому при чём тут ADO.NET, race conditions

Идиот. Тупица. Если приложение просто зависло намертво, или если в нем широченная дыра в безопасности, то это ничуть не лучше чем падение по segfault-у или случайная порча данных.

Null pointers в C# возможен только при использовании fixed()

Бредишь, тупица? Любой указатель может быть null.

Ну и ещё, ты понятия не имеешь, о чём я имею понятие.

Имею, еще как имею. Ты ж примитивен и типичен, считываешься за секунды.

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

> это ничуть не лучше

Не лучше, но к разговору о за/против GC имеет такое же отношение, как причёска Путина в 1991 году.

Любой указатель может быть null


В C# без внешних костылей (типа fixed/IntPtr) есть указатели? Может, продемонстрируешь это на практике?

Идиот. Тупица


Анонимусы такие анонимусы.

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

> В C# без внешних костылей (типа fixed/IntPtr) есть указатели? Может, продемонстрируешь это на практике?

Представь себе, представь себе, любой reference - это указатель. И он может быть null.

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

>Э, да ты вообще не в курсе, что такое Silverlight,
Я в курсе что такое силверлайт с версии 2, когда меня МС тригласила на презентацию оного. Кроме того несколько проетов сделал для клиентов вроде CBC(Canada Broadcasting Corporation)

о чём вообще с тобой разговаривать.

ХЗ.
Расскажите мне ещё пару анекдотов, вроде Силверлайт - часть .Нет :)

Бизнес логику можно и на клиенте, там же .Net.

:)
прикольно.
Хотя сдуру можно и ху^ сломать.
:)
попутного ветра!

При установке .Net много чего не появляется.

Это вы мне возражаете или соглашаетесь?

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

>В C# без внешних костылей (типа fixed/IntPtr) есть указатели? Может, продемонстрируешь это на практике?
:)
Я продемонстрирую:
String s = null;

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

>Не любом, а только на том, где есть GC.

Хм. А причем тут собственно иммутабельные структуры?

Собтвенно у Александреску есть волне себе зачатки ФП: Functor как функция первого класса и Strategy как некое подобие комбинаторов.

В С++ через шаблоное метапрограммирование можно много чего сделать.

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

Reference - это не указатель. И NullReferenceException проходит для программы без особых последствий. И что немаловажно, в отличие от С++, в C# в «указателе» не может быть случайного мусора.

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

Тогда, если ты такой специалист по Silverlight, объясни смысл своего профанского высказывания:
«А как на Силверлайте можно заменить сайт написанный на asp.net?
Неужели и достук к базе и бизнес логику в браузере крутят?»
И как это ты не слышал про RIA Services, про веб сервисы, и что Silverlight с их помощью может спокойно работать с базой данных (про это пишут в первых главах любой книги), как впрочем и не каждый сайт ASP.NET напрямую работает с базами данных, ибо n-tier в энтерпрайзе любим.

Может, ты просто дизайнер, и кроме анимационных возможностей Silverlight-а особо в нём не разбираешься?

При установке .Net много чего не появляется.

Это вы мне возражаете или соглашаетесь?


Возражаю. .Net - это общее название для всего, что основано на соответствующей технологии, то, о чём ты сейчас говоришь - .NET _Framework_. Я же говорю о «Silverlight это как бы тоже .Net» в ответ на ".Net популярен в энтерпрайзе" - твоё изначальное высказывание. Очевидно, что популярен не конкретно фреймворк, который естественно ставится по минимуму, а вообще технология .Net и всё, что с ней связано. В том числе и Silverlight. Поэтому он - тоже часть .Net. Ибо можно юзать либы, код, и прочая.

А твои односложные «ху^», «попутного ветра», «расскажите анекдотов», несомненно выдают специалиста.

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

> В С++ через шаблоное метапрограммирование можно много чего сделать.

можно, ну лучше не надо

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

>Тогда, если ты такой специалист по Silverlight, объясни смысл своего профанского высказывания:

«А как на Силверлайте можно заменить сайт написанный на asp.net?

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

И как это ты не слышал про RIA Services, про веб сервисы

:)
Я ими уже лет 8 пользуюсь.

Я же говорю о „Silverlight это как бы тоже .Net“

LOL
Проржался.

В принципе многое становится понятно, к примеру непонимание азов .Net и каша в голове.

Ничего. Остынете, подучитесь - и всё станет на места.
Надеюсь.

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

>Где здесь указатель?
Прямо как в анекдоте, про сынка-дебила:

приводит папа его в морю и говорит:
- Вот оно какое, море!
Сынок:
- Где?
- Вот, же оно!
- Где?
Папа макает его лицом в море, сынок:
- Что это было?
- Море!!
- Где?
:(

Что-то я уставать от общения с вам начал.
Вы не гуманитерий, случайно?
Какой-то у вас философский подход к программированию

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

Да, чтобы не обижать queen, разъясню - переменная s - это это указатель на объекты типа String, проинициализированный значением null

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

>Вы не гуманитерий, случайно?

Какой-то у вас философский подход к программированию


Это исновано на высказывании

queen3>Я же говорю о «Silverlight это как бы тоже .Net»

grim ★★☆☆
()

В реальной жизни шарпеи юзают .НЕТ, а не моно.

В реальной жизни серьезный софт для серьезных заказчиков под Юникс и ГНУ/Линукс пишется на Джаве.

Так, что моня ниши не имеет. Закопайте.

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

Милый человек, syslog вам в помощь. openlog и вперде! Или вы думаете тут вы первый? покурите логи и всё поймёте. Сначала программа падает раз в сутки, потом раз в месяц и т.п. Новость?

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

А ещё было бы неплохо чтобы программы можно было во сне писать. И не программистам, а уборщицам. Вот только тогда бы никто программировать бы не учился, и началась бы следующая итерация. Как бы так чтобы программы сами писались и не падали. Да придёт спаситель!

alx_me ★★☆
()
Ответ на: C++ники, хватит гнать нам про ваше "ФП" от oh
    template <int... Args>
    struct Vector {};

    template <typename T, typename U>
    struct DotProduct;

    template <>
    struct DotProduct<Vector<>, Vector<>> {
        static int const value = 0;
    };

    template <int A, int... As, int B, int... Bs>
    struct DotProduct<Vector<A,As...>, Vector<B,Bs...>> {
        static int const value = (A*B) + DotProduct<Vector<As...>, Vector<Bs...>>::value;
    };

    #include <iostream>

    int main() {
        std::cout << DotProduct<Vector<1, 2>, Vector<3, -4>>::value << std::endl;
    }

ты про это?

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

Да при линковки разницы нет, однако, вы что, против статических проверок во время компиляции?

Я вот не против, и наоборот, если я не собираюсь проверять наличие объекта, так как он обязан быть я пишу F( Obj& ); если буду проверять F(Obj* ); мне так кажется красивее и понятнее пользователю, нет?

естественно это не мешает assert(this)

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

В какую из 100000 строк легаси кода мне добавить логи? В каждую? Думаешь, управлюсь быстрее, чем за 3 месяца?

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

A reference is an «abstract» pointer: you can't do arithmetic with a reference and you can't play any low-level tricks with its value.

Надеюсь, понятна, в контексте этой темы (безопасность кода) почему reference это совсем не pointer? Подсказка: никакого мусора, двойных удалений, и прочих low level tricks и ручного управления. Даже в С++ с первых страниц любой книги чётко объясняют, что pointer и reference - не одно и то же. В managed разница ещё существеннее. Например, GC про указатели не знает.

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

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

В С++ эта разница даже слабее, чем в C#. А посколько «string s = null» приводилось в примере именно про C#, то вопрос у меня только один - где вас с grim-ом учили программированию?

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

>> «А как на Силверлайте можно заменить сайт написанный на asp.net?

Неужели и достук к базе и бизнес логику в браузере крутят?»

Ну, вы даже прочитать не смогли, что после написано.


Ничего там после не было написано, кроме «Или HTML?». Так в чём же заключается суть твоего вопроса, о восемь лет пользующийся RIA Services? Ты удивился, как это на Сильверлайте заменяют ASP.NET сайты, если в Silverlight нету доступа к базе данных. Из этого следуют выводы:
- ты говнокодер, у которого сайты напрямую работают с базой данных;
- ты не представляешь, как Silverlight может работать с данными без прямого доступа к базе, т.е. не знаешь про n-tier и сервисы.

Я же говорю о «Silverlight это как бы тоже .Net»

Проржался.


«NET is ... a business strategy from Microsoft»

a business strategy (c) http://searchwindevelopment.techtarget.com/sDefinition/0,,sid8_gci342248,00.html

«Silverlight is a free plug-in, powered by the .NET framework»

by .NET Framework (c) http://www.silverlight.net/getstarted/

«Silverlight enables development of the next generation of Microsoft .NET-based»

.NET-based

«that are a subset of the .NET Framework» (c) http://www.learn-silverlight-tutorial.com/WhatIsSilverlight.cfm
«This morning at Mix’07 in Las Vegas we announced something we have been working on since we shipped V2.0 of the .NET Framework in 2005: .NET support for Silverlight.»

.NET support for Silverlight (c) http://blogs.msdn.com/b/jasonz/archive/2007/04/30/announcing-net-framework-su...


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

В принципе всё понятно, встречал я немало таких программистов, ничего не понимающих, но с апломбом звезды.

И как это ты не слышал про RIA Services, про веб сервисы

Я ими уже лет 8 пользуюсь.


Надеюсь ты не про RIA Services, ибо им всего-то год-два от роду.

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

То, что этого не удалось достичь, а может и вообще невозможно, не отменяет того факта, что к этому идеалу многие стремятся. Разрабатывают более безопасные языки, встраивают защиту в железо, раз за разом пытаются дать возможность программировать хотя бы менеджерам, если не юзерам. SQL, Java (точнее основанные на ней технологии), Prolog, недавний гугловский прикол - у всех у них это было одной из целей.

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

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

Недоумок. В случае с проблемой nullable reference нет никакой разницы между ссылками и указателями.

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

>A reference is an «abstract» pointer: you can't do arithmetic with a reference and you can't play any low-level tricks with its value.
Боже мой, какой вы ещё ребёнок.

К сожалению для тебя, результаты неутешительные.

:(
Да, действительно, я думал вы что-то вынесете из этой дискуссии, но похоже ощибался.
Жаль. Зря потратил время.

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

>>> Я же говорю о «Silverlight это как бы тоже .Net»

me> Проржался.

«NET is ... a business strategy from Microsoft»


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

«Silverlight is a free plug-in, powered by the .NET framework»

.NET support for Silverlight (c)


А это как раз доказательство моей правоты.
Если бы Силверлайт был частью .Нет, то эти фраза были-бы нонсенсом.

[плевание дерьмом поскипано]

не подкрепляющий слова пруфлинками

Зачем?
Это простая логика.

К примеру,
если дом построен из кипича - это не значит, что дом - это кирпич или сать кирпича.
Если дом построен из брёвен - это не значит что дом это бревно или часть бревна.
Если Windows написан на С++ это не значит, что Windows это С++ или часть С++

Логику прослеживаете?

Если Силверлайт написан на .Net, это не значит что Силверлайт это .Нет или часть .Нет

В принципе всё понятно, встречал я немало таких программистов, ничего не понимающих, но с апломбом звезды.

:) Улыбнуло :)

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

Школие негодуе? Батхерт, такой батхерт у анонимус-куна случился. Внезапно.

У меня Cocoa Touch и фиолетовы мне поделия которые мне, как реальному пользователю iPhone (+ Mac OS X XCode) не нужны.

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

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

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

Вообще смешно, когда кодеришка, простой исполнитель, то есть просто никто и ничто, начинает рассуждать в масштабах индустрии, что там «нужно», а что «не нужно». Почти так же смешно, как когда об этом рассуждает студентота.

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

> Null+References

проблемой nullable reference


Я им - про то, что в references не может, например, лежать мусор, и много других различий, а они мне талдычат про null.

Что сказать-то хотел ссылкой? Вот тебе другая ссылка: http://en.wikipedia.org/wiki/Pointer_(computing)
«A pointer is a simple, less abstracted implementation of the more abstracted reference data type»
где чётко сказано, что pointer - это не то же самое, что reference, т.к. не имеет множества полезных свойств, делающих reference, в частности, более безопасным.

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

в случае ... nullable reference нет никакой разницы между ссылками и указателями.


Т.е. ты уже признаёшь, что указатель и ссылка - не одно и то же. Что ж, для закрепления успеха, вот тебе официальное толкование: http://msdn.microsoft.com/en-us/library/3ewxz6et.aspx

Тебе не мешало бы понять, что есть принятая терминология, которую неплохо бы знать человеку, занимающемуся программированием (я понимаю, что к тебе это не относится, но всё же), и для C# она вполне определённая - указатели там имеются в виде fixed, а managed ссылки называются - reference types. C#, как указано по ссылке выше, определяет 3 вида типов:
1. value types
2. reference types
3. pointer types

Прочти внимательно, вот тебе ссылка ещё раз: http://msdn.microsoft.com/en-us/library/3ewxz6et.aspx

Поэтому «string s = null» определяет переменную вида reference type (тип string относится именно к нему), никакого указателя тут нет, если речь о C# - а речь шла о нём.

Изучи, и в качестве домашнего задания законспектируй разницу между reference types и pointer types. В понедельник приду на работу - проверю, так что старайся.

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

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

Но, на всякий случай, тебе тоже вот ссылка:
http://msdn.microsoft.com/en-us/library/3ewxz6et.aspx

The C# typing system contains the following categories:
* Value types
* Reference types
* Pointer types

Теперь расскажи мне, отчего же здесь столь решительно разделили на абсолютно отдельные категории reference и pointer, и это несмотря на то, что они оба могут быть присвоены null?

queen3 ★★★★★
()

>Вышел mono

Надеюсь, в окно.

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

> употребление как бы - заставит смеяться

Тем не менее - я употребил именно «как бы», и ты старательно доказываешь мне то, что я и не утверждал. Точнее, старательно не хочешь понять, о чём я говорю (что Silverlight - тоже .net, как многие другие технологии типа STM.NET или Compact Framework, ибо даже общий синтаксис, не говоря уже об общих системных библиотеках и наработках, способствует закрепления программистов и проектов в рамках этой стратегии MS, т.к. обучение кадров и наработки - тоже ценный ресурс).

не подкрепляющий слова пруфлинками

Зачем?


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

А это как раз доказательство моей правоты.


Ну естественно, ибо доказательства твоей неправоты ты благополучно поскипал (остальные ссылки типа «powered by the .NET framework» и ".NET-based").

Проржался снова. Вы совершенно очевидно гуманитарий


А ты совершенно очевидно - пустобрех и трепло, ибо на чёткую цитату ".NET is a business strategy" отвечаешь (как обычно, впрочем) личными выпадами в сторону оппонента, а не аргументами. Может, ты просто девушка, им это свойственно - привнесение в проблему личных мотивов и аргументация в стиле «автор не бреется, поэтому его факты мы отметём как лично нам неприятные»?

В принципе всё понятно, встречал я немало таких программистов, ничего не понимающих, но с апломбом звезды.

:) Улыбнуло :)


Ну я же говорю - апломб звезды.

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