LINUX.ORG.RU

Vala 0.4.0

 , ,


0

0

Вышел очередной релиз компилятора Vala.

Vala - это новый язык программирования, который стремится предоставить GNOME-разработчикам возможности современного языка программирования, не налагая никаких дополнительных требований времени выполнения и не используя различных ABI по сравнению с приложениями и библиотеками, написанными в C. В основе Vala лежит GLib Object System (GObject).

Изменения с версии 0.3.5

  • Большая гибкость конструкторов.
  • Частичная поддержка чтения и записи .gir файлов. (GObject Introspection Repository)
  • Улучшенная работа компилятора.
  • Копирование массивов там, где это необходимо.
  • Базовая поддержка статических свойств.
  • Частичная поддержка структур, содержащих объектные ссылки.
  • Добавлены биндинги к индексатору Tracker.
  • Обновлены биндинги к GLib, GTK+, и GStreamer.
  • Куча багфиксов.
Также недавно разработчики обновили планы по выпуску версии 1.0. Ранее предполагалось, что она выйдет еще в сентябре это года, теперь же финальный релиз Vala 1.0 перенесли на 16 марта 2009 года. (http://live.gnome.org/Vala/RoadMap)

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



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

> Транслятор - это общий вид преобразования из A в B. Не только язык в язык.

Пруфлинк на такое определение в русской терминологии?

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

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

>и какое это отношение имеет к Vala? мальчег, ты слишком туп и несчастен не осознавая всей глубины собственного быдлизма

А какое отношение, вообще, имеют все эти комментарии к Vala? По теме тут отсилы 2-3 комментария, остальное lorатреп и меренье мужским достоинством!

P.S. Пардон, не сдержался...

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

>Пруфлинк на такое определение в русской терминологии?

=== cut ===
Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке, в текст на другом языке.

Транслятор - в узком смысле - программа, преобразующая: программу, написанную на одном (входном) языке в программу, представленную на другом (выходном) языке.

// http://encycl.yandex.ru/dict/gl_natural/article/220/220_753.HTM?text=%D1%82%D...
=== cut ===

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

> Пруфлинк на такое определение в русской терминологии?

> Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке, в текст на другом языке.

Так это как раз пруфлинк моей точки зрения. Не ясен только вопрос формальности языка, но это мелочи. :)

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

>Не ясен только вопрос формальности языка

:)

«В математической логике и информатике формальный язык — это множество конечных слов (син. строк, цепочек) над конечным алфавитом.»

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

К чему это было? Я в курсе определений. В трансляторе слово "формальный" не было, т.е. может быть это трансляция текста на английском художественном в русский матерный. Или наоборот.

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

>Уважаемые сторонники vala. Пожалуйста опишите кратко, какие проблемы решает vala. Т.е. что на ней будет сделано лучше, чем чем на Си и С++. Напрмиер, то и то будет сделано на Си и С++ дольше, будет работать хуже и т.д. Я не прикалываюсь, просто хочу понять.

vala, это очень похожий на c#/java язык, который тем не менее сохраняет совместимость с С-кодом и не требует виртуальной машины. То есть он также быстр, как C-программа и также прост и удобен, как java или mono.

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

и нет, к гному vala никакого отношения не имеет. Встороенные механизмы управления памятью и объектные фичи реализованы на основе glib-gobject. но если эти фичи не нужны, можно вообще писать без привязки к g*.

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

> Т.е. что на ней будет сделано лучше, чем чем на Си и С++.

1. Автоматическая память.

2. Встроенные высокоуровневые структуры данных.

Всё остальное - вторично.

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

>Vala — это не костыль.

ты глупый, штоле? если что-то надо использовать «более легко», то это самое «более легко» обеспечивается именно костылём. иначе «более легко» было бы заложено в дизайн.

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

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

>> кто о чем а вшивы... yk4ever с пеаром D

>Да-да. Кстати, вышла новая версия D 2.

После недавних флеймов это убожество уже никому не интересно :/

anonymous
()

Vala'у уже гоняли на стрельбище?

anonymous
()

Что нового есть в Vala? Какие полезные абстракцыи?

Пока что я видел только "улучшенный" (причесанный) синтаксис. Гномосеки поражены терминальной стадией синдрома NIH, и даже не могут взять в толк, что язык напейсать -- это тебе не синтаксис придумать.

Плодить языки ради "инноваций" в синтаксисе это глупое и бесполезное занятие. Ну кому он нахрен нужен такой? Внедряйте уж какой-нить Петон, Руби или там Схему, а не упражняйтесь в трансляции формальных йезыкофф.

Закапывайте это поделие.

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

> Надо ООП в Си? Есть такое, называется Objective-C.... совместимый с Си (!)

В этом-то и проблема! Объекты нужны и Смоллток как реализация ООП превосходен. Но Обж-Си вынужден повторять дебилизм архитектуры Си (заголовочные файлы, жёсткий порядок объявлений). Неплохо бы сделать некое подобие ОбжСи, но с чистого листа, не отягощаясь совместимостью синтаксиса и препроцессора. Ну и заодно подтянуть ключевую идею Смоллтока - минимум болтовни, т.е. минималистический синтаксис объект-сообщение. Сам же Смоллток (на мой взгляд) имеет ужасный синтаксис "а бы компилер понял" - не для людей он. :)

matumba ★★★★★
()

<orly>Да-а-а... надстройки над C++ значит не Ъ, а над C, для поддержки тех самых объектов, — самое то, логика однако :)</orly>

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

Расплата есть, но пока вполне умеренная.

Во первых, Vala транслирует код в C и иногда сообщения об ошибках приходят от gcc. Естественно, об ошибках в C-исходнике.

Во вторых, неожиданные эффекты. Отчасти это из за малой версии vala. Не унаследовал класс от gobject и дальнейшее наследование уже молча не работает. Сложности с передачей параметров в конструктор. Несколько странно работают исключения. А в остальном все более менее.

Надо сказать, что vala очень правильно оперлась на фундамент уже отлаженных glib и gcc. Иначе ошибок было бы гораздо больше...

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

>В gtk есть своя объектная система. Писать новые гтк-объекты довольно просто, но очень много рутины и исходного кода. Vala предлагает более высокий уровень абстракции. Вы разрабатываете свои компоненты на Vala, а потом компилируете свой код в код на C. Примерно такой же, каким бы он был, если бы вы писали на C изначально. Vala не тащит за собой рантайма. Vala не тащит за собой оберток. Vala просто облегчает работу. На C++ эту работу проделать невозможно. Используя C++, вы можете обратиться уже к существующим компонентам через обертки, но не можете разработать новые. В данном контексте, Vala - средство автоматизации, С++ - принципиально другое средство. Vala - сверху. C++ - сбоку. anonymous (*) (22.10.2008 20:13:54)

Т.е. изначально vala предназначена для автоматизации разработки gtk приложений? Т.е. где работает gtk, там работает и vala?

Постами ниже пишут, что vala можно пользовать не только для gtk, т.е. можно пользовать как более высокоуровневый язык там, где есть компилятор Си?

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

>1) как?

>2) компилятор под винду есть?

Есть. Даже система сборки waf работает под венду, так что можно один и тот же проект собирать и там и там.

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

>vala, это очень похожий на c#/java язык, который тем не менее сохраняет совместимость с С-кодом и не требует виртуальной машины. То есть он также быстр, как C-программа и также прост и удобен, как java или mono. AVL2 ***** (*) (23.10.2008 1:07:08)

Насколько я понимаю, в java не надо убивать объекты, т.к. это делает java машина автоматически. В vala также? Ктек ошибок как в java?

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

>Т.е. изначально vala предназначена для автоматизации разработки gtk приложений? Т.е. где работает gtk, там работает и vala?

И нет и да.

Нет, потому что vala использует возможности glib. Никакой зависимости от gtk у vala нет.

Да, потому что gtk тоже разработана на фундаменте glib. Поэтому ее очень удобно использовать из vala.

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

>и нет, к гному vala никакого отношения не имеет. Встороенные механизмы управления памятью и объектные фичи реализованы на основе glib-gobject. но если эти фичи не нужны, можно вообще писать без привязки к g*. AVL2 ***** (*) (23.10.2008 1:09:35)

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

Правильно ли я понимаю, что у vala есть приемущества, которые можно использовать без использования gtk и гнома?

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

>Насколько я понимаю, в java не надо убивать объекты, т.к. это делает java машина автоматически.

Используется механизм подсчета ссылок из glib. Как только объект освобождается, его удаляют.

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

>Во вторых, неожиданные эффекты. Отчасти это из за малой версии vala. Не унаследовал класс от gobject и дальнейшее наследование уже молча не работает. Сложности с передачей параметров в конструктор. Несколько странно работают исключения. А в остальном все более менее.

AVL2 ***** (*) (23.10.2008 14:27:34)

Болезни роста...

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

>Т.е. можно пользовать как более высокоуровневый язык там, где есть компилятор Си?

Я бы не рискнул сильно увлекаться программированием на vala без glib.

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

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

>Правильно ли я понимаю, что у vala есть приемущества, которые можно использовать без использования gtk и гнома?

Да. vala вообще не связана с gtk и gnome. Но использовать gtk или gnome компоненты из vala оджно удовольствие.

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

>Болезни роста...

да я и не спорю. Но факт остается фактом.

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

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

программа на mono зависит от версий своих биндингов к библиотекам, а vala зависит только от самих библиотек.

Рантайм mono жрет память, а программа на vala - нет.

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

А так, конечно, моно дает больше преимуществ.

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

>А если мне надо свои библиотеки на Си задайствовать, я так понимаю это не проблема?

Да, это элементарно. Пишется простой текстовой файлик с перечислением функций и при елании, упаковываешь их в пространства имен или в классы.

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

Я пользовался и ObjC, и Vala. Вот мое заключение:

1) Vala в целом более высокоуровневый. Это чувствуется. От ObjC остается впечатление просто как от "Си с классами".

2) ООП в ObjC имеет больше функций в рантайме. Это пожалуй его единственное существенное преимущество (хотя оно не часто требуется). Но за это приходится платить производительностью.

3) С библиотеками у ObjC очень, ооочень хреново. Особенно это относится к негламурному gnu миру (у яббла наверное дела обстоят лучше). В это время у альфа версии Vala уже целая охапка замечательных байндингов.

4) Не вижу реальных перспектив развития ObjC на Linux в ближайшее время. Ни одного IDE, кроме emacs, нет и не намечается. Даже ctags и semantic не поддерживают objc, т.е. в vim/emacs не удастся воспользоваться списком объявленных функций. А для vala уже полным ходом клепают плагины для Anjuta, MonoDevelop, Eclipse.

5) Синтаксис Vala более "цельный". А ObjC - это два языка в одном (Си и SmallTalk). Притом слаженности здесь не хватает не только на уровне эстетики, но и на уровне дублируемой функциональности и лишних преобразованиях. Чего только стоит класс NSNumber.

6) ObjC мало кто знает. А Java/C#/C++ - почти все. Поэтому шанс найти помощника в твоем FOSS проекте в случае с Vala возрастает.

7) GNUStep на Венде не гарантирует 100% работоспособность.

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

>Конечно есть! Есть исходники, которые можно собрать под винду. Например так:

>http://opendots.net/upload/vala-0.3.5.7z

Как собирал? А то у меня чего-то 0.3.5 под mingw не шла. Конечно можно генерить Си-код на *nix'е, а компилить в Венде, но чего-то как-то не Ъ.

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

сделали бы Gnome своим языком D, ,было б без гемора. а так пройдет время, и троли сделают Qt на D и тогда гном уже будет соревноваться тока с XFCE ICEWM прочими поделками

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

>сделали бы Gnome своим языком D

Ты вообще этот тред читал? Причем здесь D, ObjC и прочие? Gnome использует GObject.

>троли сделают Qt на D

Не волнуйся, не сделают.

>и тогда гном уже будет соревноваться тока с XFCE ICEWM

D не такой крутой как ты думаешь.

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

>Че за проект?

да так, автоматизация небольшого предприятия.

AVL2 ★★★★★
()

Никогда бы не подумал, что почитав камменты ЛОРа обрету убежденность в чем-то.

Спасибо конечно, всем участникам. Я в эту штуку прям влюбился.

Всё, ушел изучать...

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

Штука неплохая.

Кстати, удобно начать с компиляции и просмотра исходников ide для валы - valide.

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

> Я в эту штуку прям влюбился.

А ты знаешь, есть еще одна штука такого плана - называется Genie. http://live.gnome.org/Genie

Работает по тому же принцепы, что и Vala (более того, его программы компилятся тем же копилятором), но сиснтаксис у него Python-подобный. Мне лично больше нравится Genie. Правда с документацией у него еще больший напряг чем у Vala :(

xstream
() автор топика
Ответ на: комментарий от AVL2

Интересно, а как там с плагином под Anjuta? Вроде был релиз, но в основную ветку Anjuta пока не включили. Да и последнее обновление было более 2 мес назад. http://freehg.org/u/abderrahim/anjuta-vala-plugin/
Кроме того ему нужна anjuta>=2.5.0

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