LINUX.ORG.RU

Vala 0.11.0

 


0

2

Вышла версия 0.11.0 перспективного языка программирования Vala.

В версии 0.11.0:

  • использование байтового типа для индексирования строк;
  • поддержка параллельной компиляции (при помощи скрипта contrib/parvala);
  • улучшение производительности компилятора;
  • переработан кодогенератор.

В предыдущих версиях, не освещенных на LOR (по 0.9.2 включительно):

  • упразднена конструкция string.len() в пользу string.length;
  • упразднены привязки D-Bus Glib в пользу GDBus;
  • введена поддержка параллельной инсталляции нескольких версий Vala;
  • добавлена команда «vala» для одновременной компиляции и запуска программы;
  • обновлены/добавлены привязки: glib-2.26, gdk-pixbuf-3.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gedit-2.20, tokyocabinet;
  • появилась интересная возможность использовать монады в Vala;
  • огромная работа проделана над профилем Dova;
  • как всегда, большое количество исправлений ошибок, рефакторинга и обновлений привязок.

Vala — сравнительно молодой язык программирования. Свой синтаксис Vala в основном заимствует у C#, но имеется Python-подобный синтаксический вариант Vala, называемый Genie. Vala позволяет разработчикам использовать современные языковые возможности, такие как свойства, сигналы, foreach, лямбда-выражения, выведение типов, автоматическое управление памятью, обработка исключений; в то же время, Vala способствует написанию производительных и эффективных программ, поскольку не требует для запуска прослойки в виде виртуальной машины, а весь Vala-код транслируется в код на языке C. Изначально Vala была предназначена для программирования в парадигме GObject, но сперва появился профиль POSIX (позволяющий писать программы, не зависящие от GLib), а теперь и профиль Dova, которому уделяется особое внимание. Dova — легковесная стандартная библиотека, написанная целиком на Vala и призванная во многих смыслах заменить GLib.

Следует также отметить, что, начиная с версии 2.32, среда разработки Anjuta IDE имеет полную поддержку Vala, включая автодополнение кода.

Сообщение о выпуске

Блог Vala

>>> Сайт проекта

★★

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

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

ECL тоже компилирует Common Lisp через C и где его сравнимая с C производительность?

Про Lisp не знаю, а на Валю есть бенчмарки, из которых и видно, что производительность с Си сопоставимая.

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

>> А чем отлаживать программы на языке Vala?

Valide, Anjuta 2.32+


Тогда ещё вопросы. Что видит программист при отладки программы на Vala - код на Си или код на Vala?

Кто может показать скриншот отладки любой программы на Vala?

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

>> использование байтового типа для индексирования строк;

Что здесь подразумевается и как было раньше?


Цитирую блог:

Use byte indices for strings. Accessing strings by index is now based on bytes, no more on characters. This is an important change for applications relying on character indices for unicode strings.

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

> А кроме нее еще где-нибудь он поддерживается?

Цитирую по http://live.gnome.org/Vala/Tools:

  • Val(a)IDE - интегрированная среда разработки для Vala, написанная на Vala;
  • MonoDevelop поддерживает Vala, начиная с версии 2.0;
  • Vala Toys for gedit - Vala-плагин для gedit;
  • Valencia - еще один Vala-плагин для gedit (однако, gedit пользуется популярностью!);
  • Anjuta в той или иной степени поддерживала Vala начиная с 2.29.91, полная поддержка появилась лишь сейчас;
  • Valable - Vala-плагин для Eclipse (некоторое время не разрабатывается).
Kuka ★★
() автор топика
Ответ на: комментарий от JackYF

Тогда ещё вопросы. Что видит программист при отладки программы на Vala - код на Си или код на Vala?

Код Vala естественно. Код на Си можно увидеть, если скомпилировать программу с ключом -C.

Кто может показать скриншот отладки любой программы на Vala?

Вот простой тест Vala в Valide:

http://savepic.ru/1852554.png

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

>> Тогда ещё вопросы. Что видит программист при отладки программы на Vala - код на Си или код на Vala?

Код Vala естественно. Код на Си можно увидеть, если скомпилировать программу с ключом -C.


Понятно, благодарю.

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

> И да, что-то кроме GTK, можно юзать или оно жестко привязано к гному?

В качестве GUI-тулкита? Ну, тут надо понимать, что игроков-то тут совсем не так уж и много. Vala изначально ориентировалась на GObject, GLib, GTK+ и GNOME, поэтому их поддержка - наиболее полная. (Кстати, как и поддержка Clutter.) Но есть обвязки для Curses :) а также для SDL и голых X11, так что можете писать хоть на Xt. Желаете FLTK - сделайте обвязки; в Vala этот процесс упрощен до предела и автоматизирован.

Но вот уж чего не стоит ожидать - так это поддержки Qt, так как это и идеологически, и технологически чуждая платформа.

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

P.S. С полным списком обвязок (binding'ов) для Vala, в том числе и гуевых, можно ознакомиться здесь и здесь.

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

«Адекватные люди - это те, кто готов вслед за ПГМнутыми верить без доказательств?»

блин, какие доказательства, переработал что ли, или ссылки на авторитеты надо привести?
$valac HelloWorld.vala
время компиляции 1сек, время выполнения = обычному сишному HelloWorld-у
(gtk-шные примеры аналогично, их полно)
any problem?

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

Что Вы понимаете под кроссплатформенностью, наличие одной более-менее полнофункциональной стандартной библиотеки?

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

llvm тоже оптимизировать умеет без промежуточного C.

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

btw на еще одну спецификацию С++ это никак не похоже. Плюсы низкоуровневый язык, вала куда ближе к C#.

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

http://live.gnome.org/Dova

While writing applications using Vala and GObject works well, there are still some aspects of GLib/GObject that don't fit very well into a higher level programming language such as Vala. The main motivation behind Dova is to create a unified type system with perfect integration into Vala. As a type system without libraries is not very useful, we also aim to create a set of libraries for application development using the Dova type system.

ИМХО не взлетит. Ранее у Вала был хороший концепт - сделать высокоуровневый язык на мощном фундаменте из глиб-гобжект. Теперь они, как и многие до них, решили переписать все на c++ объять необъятное и сделать все своими силами. А что-то мне подсказывает, что это все - это переписать весь глиб заново.

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

А какие ещё транслируемые в C языки есть? Eiffel, а ещё что? Насколько юзабельно?

Раньше языки транслировались напрямую в машинный код, потом в мнемонический ассемблер и уже далее в машинный код. Теперь сделали ещё один уровень. Этак скоро изобретут язык, который будет транслироваться в Python.

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

> Этак скоро изобретут язык, который будет транслироваться в Python.

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

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

Ясно, спасибо.

однако, gedit пользуется популярностью


Да лучше б для Geany сделали нормальную поддержку, зачем этот гедит нужен?

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

Спасибо за информацию (:

Но вот уж чего не стоит ожидать - так это поддержки Qt, так как это и идеологически, и технологически чуждая платформа.


Хех, ну в принципе там хватает C++.

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

> я писал на vala в vim, все путем.

Ну, это понятно что вим умеет все (: но насколько это удобно и оправданно?
И я немного не то имел в виду. Я хотел узнать, может язык привязан к каким-то гномовским библиотекам.

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

Ну, это понятно что вим умеет все (: но насколько это удобно и оправданно? И я немного не то имел в виду. Я хотел узнать, может язык привязан к каким-то гномовским библиотекам.

За Валу не поручусь, а для gfortran лучшей среды я не нашёл. Связка Eclipse+Photran мне не понравилась.

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

> Ну, это понятно что вим умеет все (: но насколько это удобно и оправданно?

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

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