LINUX.ORG.RU

Вышел MonoDevelop 0.12


0

0

Monodevelop это среда разработки на свободной реализации c#, разрабатываемой под знаменем mono. В числе изменений в этой версии:

* у Stetic теперье есть редакторы тулбаров, меню и действия для gtk# приложений
* добавлен визуальный редактор ASP.NET, основаный на gecko, как результат Google Summer of Code
* функция дополнения кода и усовершенствование редактора
* поддержка Autotools подробный чейнжлог здесь http://www.monodevelop.com/Release_no...

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

★★★★★

Проверено: Pi ()

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

>Спасибо, мне уже докладывали :)))

Это хорошо. А то я беспокоился :)

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

> Да. Насчёт Tcl/Tk могу сказать точно и наверняка, потому как использовал - это называется Safe Tcl/Safe Tk %)

Звучит очень интересно :)

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

Если честно, не люблю Python, потому что есть Ruby, который, как язык программирования, на порядок лучше :).

Но вот Tcl очень даже симпатичный язык. Как раз сейчас хочу одну вещь на нем сделать. Нужно в чем-то хранить данные.

Я думаю использовать sqlite3. Это нормально или есть варианты получше (может интеграция хорошая с базой другой, обертка на подобие ActiveRecords в рельсах и т.п.)? Просто натыкался на какую-то хрень, которую вроде бы для этого позиционируют, но не знаю стоит ли с ней заморачиваться.

Что посоветуешь?

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

>Если честно, не люблю Python, потому что есть Ruby, который, как язык программирования, на порядок лучше :).

Да много чего есть. Есть rebol, yorick, lua в конце концов. Каждому своё, тем и приятны %)

>Это нормально или есть варианты получше (может интеграция хорошая с базой другой, обертка на подобие ActiveRecords в рельсах и т.п.)?

Зависит от контекста разработки. Tcl официально поддерживается Postrgess'ом (работал с такой связкой неоднократно), например, но есть привязки ко многим СУБД (например, Oracle, BerkleyDB). Тут уже вопрос приоритетов. Я бы советовал сначала выбрать более подходящую СУБД, а тогда уже смотреть связку с Tcl. Проблем скорее всего не будет, на всякий случай можно посмотреть осуждения различных СУБД-расширений на tclers wiki.

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

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

Но может есть что-то более удобное?

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

> Ruby, который, как язык программирования, на порядок лучше

Гы, я могу понять, когда говорят, что он чуть-чуть лучше Питона, но на порядок? :P Аргументировать будете или так сольёте?

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

>Гы, я могу понять, когда говорят, что он чуть-чуть лучше Питона, но на порядок? :P Аргументировать будете...

Нееет!!!! Только не это!!!

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

"...2003 is a "bug fix". It has nothing new, only cleared certain implementation issues..." (взято с одно из форумов, где обсуждали стандарты)

Беглый просмотр 300-страничной PDF'ки с diff'ом INCITS/ISO/IEC 14882:2003 и INCITS/ISO/IEC 14882:1998 также не выявил добавлений - только конкретизация и "багфиксы".

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

>Но может есть что-то более удобное?

Я не большой специалист по БД. Из подобных решений знаю только SQLite да BerkleyDB. Другое дело, что BerkleyDB - объектная СУБД, а SQLite - реляционная, почти SQL92-совместимая. Тут уж что приятней. Привязки к Tcl есть для обоих... Советую посмотреть здесь : http://aspn.activestate.com/ASPN/Tcl http://wiki.tcl.tk/ У Active State вообще великолепный help с документацией ко многим СУБД-расширениям. Ещё, чтоб уж довести мысль до конца - comp.lang.tcl, группа новостей в которой есть очень много дельных рецептов. Если есть ещё какие-нибудь вопросы - всегда готов %)

jtootf ★★★★★
()

> Tcl/Tk и Python могут предложить современный enterprise-подход. Со всеми плюсами скриптового и метапрограммирования, с очень надёжными интерпретаторами (используются в действительно критичных к надёжности областях, например в NASA). Они просты в изучении и использовании. Они замечательно интегрируются с C/C++ кодом (ну, python чуть-чуть легче). Это языки middleware, в конце концов...

От buzzword'ов крыша не поехала?

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

>Беглый просмотр 300-страничной PDF'ки с diff'ом INCITS/ISO/IEC 14882:2003 и INCITS/ISO/IEC 14882:1998 также не выявил добавлений - только конкретизация и "багфиксы".

Вот упертый.

Тыкаемся в любое место:

=========================== Replace subclause 7.1.3, paragraph 2. Original:

In a given scope, a typedef specifier can be used to redefine the name of any type declared in that scope to refer to the type to which it already refers.

Replacement: In a given non-class scope, a typedef specifier can be used to redefine the name of any type declared in that scope to refer to the type to which it already refers. ============================

Сам догадаешься чем грозит конкретизация "scope" в "non-class scope"?

=========================== Replace text before the first numbered paragraph of subclause 7.1.5.3. Original: elaborated-type-specifier: class-key ::opt nested-name-specifieropt identifier enum ::opt nested-name-specifieropt identifier ....

Replacement: elaborated-type-specifier: class-key ::opt nested-name-specifieropt identifier class-key ::opt nested-name-specifieropt templateopt template-id enum ::opt nested-name-specifieropt identifier

===========================

Обратнонесовместимое изменение.

И таких "багфиксов и конкретизаций" - 300 страниц. Код который написан по спеке 1998 не скомпиляется на компиляторе по спеке 2003 года. Равно как и наоборот. Хотя все в соответсвии со стандартом определенного времени.

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

http://www.sleepycat.com/products/bdb.html

Неправ в терминологии, каюсь. Предупреждал : не специалист. Имеется в виду, что BerkleyDB нереляционная, использует хэш данных.

"...Berkeley DB stores data in application native format, as simple key/value pairs, eliminating the need for translation or mapping..."

Так пойдёт ?

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

>Так пойдёт ?

Perfect.

BerkeleyDB весьма прикольная вещь. Только это не OODB.

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

>>Этот документ определяет стандарт на _реализацию_ языка, а не на сам язык.

>"Интересные вы люди" (C)...

>ISO/IEC 14882:1998

>-1- This International Standard specifies requirements for implementations of the C++ programming language.

Вообще-то, implementations - это и есть "реализации". Так что предыдущий оратор прав. То есть стандарт определяет требования к реализациям C++. Другое дело, что я не в теме, изменился ли сам язык, так что ногами не бейте.

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

>Вообще-то, implementations - это и есть "реализации". Так что предыдущий оратор прав.

Ну-ну. А повареная книга - это спека на реализацию торта да? А где тогда спека на сам торт?

Найдете торт то? То бишь то, что вы назвали "спецификацией на язык", раз уж вас ломает даже название документов ISO/IEC 14882:1998,2003 прочитать.

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

Хе-хе :)).

В этом среде не интересно. Но для разминки скажу ключевые слова:

* Отстутсвие полноценных анонимных функций.

Результат:

1) В Питоне нельзя делать враперры для парных операций типа открытие/закрытие базы данных, файла. Зайти и выйти с директории. Вывод древовидной стуктуры.

2) За счет использования блоков(ака анонимных функций) большинство методов имеют "двойную функциональность". Таким образом экономится неймспейс и не нужно придумывать имена для схожих по возможностям функциям. Пример: Dir.chdir - без блока - просто зайти в директорию. С блоком Dir.chdir { тут пишем все что мы делаем в каталоге } заходит в каталог и выполняет блок кода в нем. За блоком делает обратный переход.

* Нормальное разделение доступа к атрибутам класса. (не нужно использовать _ для приватных переменных...). Кроме того все атрибуты являются скрытыми, но доступ к ним задается при объявлении класса:

class Test; attr_reader :attr1, :attr2; end

Аналогично можно для любого атрибута установить параметры на чтение/запись. Если понадобится поменять доступ, досточтоно задать метод сеттер в виде:

def attr=(value); ... end

и геттер:

def attr; ... end

Тоесть не нужно создавать уебищные сеттеры/геттеры в виде getAttr & setAttr. При этом запись все равно будет в виде:

obj.attr = new_value

* Возможность создания DSL-я.

Гибкий синтаксис Руби позволяет лехко создавать мини-языки для конретных задач. Хорошим примером является ActiveRecord в Rails и Rake - аналог make реализованный исключительно в рамках синтаксиса Руби. Кроме того в Рейлс есть migraitions, которые тоже используют эту возможность языка, тьху, еще забыл про RJS.

Вот пример селекта реализованного в рамках ActiveRecord:

Banner.find :all, :conditions => ["banner_type_id=?", banner_type_id], :order => "id DESC

В том же Джанго аналогичная весчь будет выглядеть не так наглядно (http://softwaremaniacs.org/blog/2006/05/02/magic-removal/).

Cris
()

Сдаётся мне, что под мультиплатформенностью в MS.NET имели в виду совместимость с разными версиями Оффтопика, а не Linux и т.п.

.NET не нравится даже из-за того, что это произведение извращённой фантазии программеров M$. ИМХО Java как-то приятней.

Поддерживаю вариант Qt&C++ - написанное таким образом ПО нормально работает и в Выне, и Лине (а на остальное мне пофиг).

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

А сейчас например каждая приходит со своим JDK :). Мало того уже начали приходить со своими .NET Framework :)

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

Кто програмиста платит, тот его и портит, то есть танцует. Что востребовано людьми с деньгами - на том и пишут.

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

> Понятное дело, что без виртуальной машины здесь никак не обойтись.
man pam.d

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

> это произведение извращённой фантазии программеров M$. ИМХО Java как-то приятней.

А разница между ними? Java произведение извращённой фантазии программеров Sun.

А кто больше всех гигабаксов загребает на продаже своих поделок? Что-то в M$ должны были хорошенько проработать, пусть и методом тыка и на основе ошибок Sun.

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

>А разница между ними? Java произведение извращённой фантазии программеров Sun.

Разница в том, что Java-проги МУЛЬТИПЛАТФОРМЕННЫЕ. Есть RE Win и *nix сделанные Sun, а это совместимость и единый стандарт.

З.Ы. Сюда надо Саныча звать ;)

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

> Java произведение извращённой фантазии программеров Sun.

Только вот беда -- на нём написан софт для управления и обслуживания хай-эндных железок типа стораджей и переписывать его на ТочкеНэт что-то никто не торопится. При всех тормозах этого самого софта.

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

> А где тогда спека на сам торт?

В соответствующем ГОСТе :)

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

>А Qt не тянет за собой Qt? А Gtk не тянет Gtk? :))))))))))))) Всё от чего-то зависит.

Посмотри сколько весит qt и gtk и с какой скоростью они работают.

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

Никто и не требует. Я бы .Net Framewark 2.0 запретил из-за искуственного привязывания её к Windows XP. Лучше уж Mono.

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

>во всяком случае теоретически, до того момента пока библиотеки Mono не допишут до конца

Помнится, стандарт моно уже ломали, я бы не был так оптимистичен насчет "допишут".

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

>А этого особо никто и не добивается. И в свете того, что я написал выше это уже мало кого интересует.

А зачем оно тогда?

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

> mono 1.1.6.exe = 42 500 027 > j2re-1_4_2_05.exe = 1 418 304

Вот давайте не будем передергивать, а? И сравнивать mono будем не с JRE, а с JDK. Который (вот же блин) уже совсем не 16 мегабайт, а 36.

И еще: под linux (например в FC5) все пакеты mono-* весят 23 мегабайта, а вот JDK-1.5 весит 46 мегабайт.

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

> Вот давайте не будем передергивать, а? И сравнивать mono будем не с JRE, а с JDK. Который (вот же блин) уже совсем не 16 мегабайт, а 36.

Не согласен. Людям нужно просто запускать программы. Для mono - это 42М, а для Java - 16M.

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

> Не согласен. Людям нужно просто запускать программы. Для mono - это 42М, а для Java - 16M.

Можно варьировать размер библиотек, просто устанавливая отдельные части Mono, как конструктор. Хотя Mono совсем молод по сравнению с Java, но в этом тоже можно найти свои преимущества. Впечатления от производительности Mono в сравнении с Java очень хорошие.

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

>А зачем оно тогда?

Тот же рынок, что и Java с небольшим шифтом в сторону GUI приложений (Java все таки shift имеет в ентерпрайз больше), и фичастостью, которой хвастается MS over Java, +конкуренция MS.NET Framework.

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

> под linux (например в FC5) все пакеты mono-* весят 23 мегабайта

Советую пользовать Mono из репозитория Novell для FC5. Там иожно выбрать репозиторий со стабильными или разрабатываемыми рерсиями проекта Mono.

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

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

Для начала почитай тут: http://en.wikipedia.org/wiki/Mono_%28software%29

И особенно обрати внимание на стандарты:

http://www.ecma-international.org/publications/standards/Ecma-334.htm
http://www.ecma-international.org/publications/standards/Ecma-335.htm

А теперь скажи как можно поломать стандарт ECMA-335?

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

Ну может 335 не так просто, но 334 постоянно ломают. Что не версия - то страшные изменения в С#. А если прочитать что такое Cw - так вообще зашибись - скоро от C# епрвой версии ничего не останется, будет OCaml со странным синтаксисом:)

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

> Нормальное разделение доступа к атрибутам класса. (не нужно использовать _ для приватных переменных...).

Спорный аргумент. Аналогично я могу сказать что отсутствие разделения на private/public есть преимущество Питона.

Дальше, мне лично писать def _privateMethod() нравится больше чем private: def privateMethod()

А для защиты к обращению к private-методу из класса-потомка есть __privateMethod(). Я долго писал на C++ и продолжаю писать и пишу на питоне, и вот от чего, так от отсутствия private методов я как раз и не страдаю. Имхо, полезность private методов переоценена.

> Аналогично можно для любого атрибута установить параметры на чтение/запись.

Гмм, а что в питоне нет свойcтв?

> Возможность создания DSL-я.

> Гибкий синтаксис Руби позволяет лехко создавать мини-языки для конретных задач. Хорошим примером является ActiveRecord в Rails и Rake - аналог make реализованный исключительно в рамках синтаксиса Руби. Кроме того в Рейлс есть migraitions, которые тоже используют эту возможность языка, тьху, еще забыл про RJS.

Аналогично. SCons, sqlalchemy, sqlalchemy.migration

Я думаю что SCons-ом пользуется явно большее количество проектов чем Rake-ом

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

И ещё что есть в питоне, чего я не встречал больше ни в каком языке: зачастую чужие исходники читаются также легко и чудесно как и свои собственные. Конечно, можно сказать, что на $YOUR_FAVORITE_LANGUAGE тоже можно писать красивый и понятный код, а на питоне можно писать уродливый, но просто в Python-community принято писать читаемый код. И уродливый исходник это скорее исключение.

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

> По поводу аргументов на которые я не ответил (про анонимные функции и блоки), этих фич в питоне действительно нет, но Гвидо говорит что оно нам и не надо, лично я склонен ему верить.

Когда я программировал на php, то тоже не знал про анонимные функции и зачем они вообще нужны. Но именно на них завязано 40% различных вкусностей Руби. Только когда я начал писать на Руби, то понял зачем они и где реально нужны. Сейчас иногда даже в пхп использую.

Если Руби смотреть влом, глянь на любой хороший функциональный язык (Haskell, OCaml, Lisp). Там на них завязано еще больше.

Кстати, я года два назад смотрел питон и он мне тогда понравился. Но не было возможности применять в реальных проектах. Сейчас я вижу что в нем нет анонимных функций и знаю зачем они нужны (кстати я писал про это выше). Если бы Гвидо насчет этого не быковал, Питон бы сейчас мог уйти намного дальше. И это принципиальное ограничение, поэтому не судьба.

ЗЫ: кстати, в питоне еще нужно в методах писать первым аргумент self? Эта фишка немного раздражала, когда я к нему присматривался.

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

> Не согласен. Людям нужно просто запускать программы. Для mono - это 42М, а для Java - 16M.

Чушь. В Linux (FC5) размер mono-{basic+core+winforms+locale} всего 15 метров.

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

Кстате, клоунам, которые считают мегабайты, занятые JRE. Sun озаботился этими клоунам и пошел им навстречу и уже выпускает обрезанный Java kernel размером 3 Мб > http://www.javalobby.org/java/forums/t78265.html Рады?

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

> Реально только за Javой на десктопе будущее

Проснись, уже волна завоеваний Java прошла, теперь впереди только вялый штиль

> потому что она имеет "лучший, и наиболее простой способ разработки GUI"

Самый простой способ всегда был у Tcl/Tk, даже когда для Java ещё только обрисовывали общие концепции. Если судить о линуксовых десктопах - тогда будущее не за языком программирования Java, а за универсальными библиотеками разработчика доступными под многими уже известными языками программирования. Mono очень неплохо вобрал в себя лучшие идеи из Java и .Net не став зацикливаться на одном C#.

> http://www.javalobby.org/java/forums/t78276.html

Вам что, с этого сайта денег заплатили?

los_nikos ★★★★★
()
Ответ на: комментарий от no-dashi

> Чушь. В Linux (FC5) размер mono-{basic+core+winforms+locale} всего 15 метров.

а компилятор VB и CS ?
в MS fraimworke они присутствуют
а компилятор ASP+ ?
:))))

спор этот немножко не о том
библиотеки Qt - меньше всех и их не надо инсталировать
это есть очень хорошее преимущество
правда не доминирование :)

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

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

По моему наоборот, если речь идёт не о вебе то возможностей для использования питона в реальных проектах намного больше, я бы даже сказал что в этой области Питон, это динамический язык номер один. Либ для питона _намного_ больше чем для Руби.

> ЗЫ: кстати, в питоне еще нужно в методах писать первым аргумент self? Эта фишка немного раздражала, когда я к нему присматривался.

Да надо. И я так понимаю что это врядли когда-либо измениться. Меня не напрягает. Зато нет бардака как в C++ хочешь this пиши, хочешь не пиши. В Питоне партия сказала надо :-)

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

> а компилятор VB и CS ?

Речь не о том, просто тут знатоки начали сравнивать JRE с полным набором Mono.

> библиотеки Qt - меньше всех и их не надо инсталировать

Да неужели? А ну как собери и/или запусти без установленных Qt двадцать приложений.

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

>Имхо, полезность private методов переоценена.

Это потому что ты не пишешь библиотек, требование к которым - стабильное API.

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

>Реально только за Javой на десктопе будущее, потому что она имеет "лучший, и наиболее простой способ разработки GUI"

Долго смеялся.

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

> Это потому что ты не пишешь библиотек, требование к которым - стабильное API.

Опа, а что, ты уже закончил доказывать что BSD круче чем GPL?

И диплом телепата у тебя наверное умеется?

Я вроде не говорил что я пишу, а ты меня в момент раскусил. Зачот.

А по поводу стабильности публичного API, а ты не путаешь private и protected?

К тому же в питоне всегда можно пройтись и все методы которые не являются публичным API назвать с подчёрка. И все пользователи либы будут знать что эти методы protected. Они их могут использовать но т.к. они не являются чатью public интерфейса их стабильность не гарантируется.

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

>Опа, а что, ты уже закончил доказывать что BSD круче чем GPL?

А ты до сих пор не научился читать?

>И диплом телепата у тебя наверное умеется?

И справка от психиатра. Бууууу.

>К тому же в питоне всегда можно пройтись и все методы которые не являются публичным API назвать с подчёрка.

Ага - твой подчерк очень помешает армии индусов ими воспользоваться. Зачет.

>И все пользователи либы будут знать что эти методы protected.

И с удовольствием их дергать.

>Они их могут использовать но т.к. они не являются чатью public интерфейса их стабильность не гарантируется.

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

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