Стала доступна новая версия Vala — C#-подобного языка программирования и одноименной реализации в виде транслятора в код на C. Проект в основном нацелен на упрощение для разработчиков использования программной инфраструктуры построенной на GLib.
Райан Лорти (Ryan Lortie) в своем блоге поделился итогами конференции GTK hackfest, которая завершилась приблизительно неделю тому назад. Главным итогом является утверждение планов будущей разработки GTK/Glib.
Во-первых, список требований к GTK3 теперь окончательно утвержден, и хотя он очень амбициозный, но в то же время и вполне реалистичный. Работы много, но разработка движется гладко и в соответствии с запланироваными сроками.
Во-вторых, обрисован список требований к GTK4, выход которого изначально планировался на декабрь 2011 года, но было решено, что такие сроки слишком плотные и поэтому на этот срок планируется первая бета-версия GTK4. При этом ветка GTK4 будет открыта сразу же после выхода GTK3.
Также следует отметить участие в hackfest троих инженеров компании Samsung. Как оказалось, в Samsung уже некоторое время создана и работает команда из 20-30 человек, занимающаяся разработкой телефона на GTK, который вскоре должен быть выпущен. Разрабочики Samsung представили довольно интересные прототипы, а также внесли свой первый «прямой» патч в GTK прямо во время конференции.
Вышла новая версия Vala - компилятора, развиваемого в рамках проекта GNOME. В новой версии:
Поддержка констант в enum
Синтаксис +=/-= для подключения/отключение сигналов объявлен устаревшим
Добавлена эксперементальная поддержка профиля Dova (лекговесная замена glib)
Обновлён парсер Genie
Добавлены новые биндинги: clutter-gst-1.0, gdu, gdu-gtk, libesmtp, mx-1.0, orc-0.4, rest-extras-0.6
Множество исправленных ошибок
Vala это инструмент, задача которого предоставить возможности современных языков программирования для разработчиков GNOME без наложения дополнительных требований к среде выполнения и без использования различных ABI по отношению к приложениям и библиотекам, написанным на C. Язык ориентирован в первую очередь на использование совместно с GObject, хотя может быть использован и без него.
Vala включает в себя 2 языка программирования, развиваемых параллельно - Vala, схожий по синтаксису с C#, и Genie, схожий по синтаксису с Python. Исходный код на этих языках Vala транслирует в исходный код на C, который не зависит от каких-либо дополнительных runtime библиотек.
Вышла новая версия Vala, компилятора для системы GObject. Изменения по сравнению с версией 0.7.10:
Указание аргументов типизации при вызове методов типизируемого (generic) класса
Поддержка оператора «in» для массивов.
Добавлена экспериментальная поддержка литералов регулярных выражений (описание)
Добавлена экспериментальная поддержка сцепления выражений сравнения. Например, теперь можно писать if (1 < a < 2) {...} вместо if (1 < a && a < 2) {...}
Vala - это новый язык программирования, задача которого предоставить возможности современных языков программирования для разработчиков GNOME без наложения дополнительных требований к среде выполнения и без использования различных ABI по отношению к приложениям и библиотекам, написанным на C.
Синтаксис Vala схож с C#, но изменён для лучшей интеграции с GObject. Компилятор valac транслирует код на Vala в код и заголовки на C, который использует GObject для создания классов и интерфейсов.
Доступны для скачивания новые релизы библиотек Glib и GTK+. Грядущий релиз окружения рабочего стола Gnome будет использовать именно эти новые версии.
Краткий список изменений:
Glib:
поддержка Unicode 5.1;
поддержка новой спецификации shared-mime;
улучшенная поддержка i18n благодаря новым функциям/макросам g_dgettext(), g_dngettext(), NC_();
поддержка концепции "вложенных парсеров" в GMarkup;
эмблемы на иконках;
GIO теперь поддерживает http-ссылки под ОС Windows;
традиционные исправления ошибок.
GTK+:
новые виджеты и объекты GdkAppLaunchContext, GtkMountOperation, GtkToolShell;
новые API gtk_show_uri(), призванные заменить gnome_vfs_url_show() и gnome_url_show(); gtk_widget_get_snapshot();
диалог выбора файлов теперь использует GIO напрямую, улучшено автодополнение;
улучшения в диалоге печати;
улучшения в поддержке "специальных возможностей" и i18n;
улучшения в библиотеке gdk-pixbuf (поддержка иконок в формате OS X, изображений JPEG 2000, сохранение и загрузка в и из каналов GIO, использование GIO для получения информации о MIME);
GDK теперь использует Xrandr вместо Xinerama для получения информации о мониторе. Установки шрифтов теперь определяются во время исполнения без необходимости перезапуска приложения.
Сразу после выхода GTK+ 2.14 была выпущена исправленная версия 2.14.1.
После стабилизации ветки 0.10 в svn была открыта новая ветка 0.11 для внесения нового функционала и переработки кода. В этой ветке мы увидим самое существенное изменение Rhythmbox с самого начала его разработки. Ранее повелось так, что работа над плеером велась плавным наращиванием одной кучи кода, в которой соседствовали как стабильный код, так и экспериментальные нововведения как в стабильных так и в разработческих версиях, что создавало массу неудобств и разработчикам и пользователям. В новой же ветке разработчики приняли новую политику строгого разветвления и разделения разработческой и пользовательской версий, которая была взята с ветки 0.9/0.10, что позволит развязать руки людям с свежими головами, не плодить ошибок обратным портированием, не бояться временно "ломать" код и не тревожить/перегружать главную интеллектуальную силу.
Что мы можем увидеть в следующей стабильной ветке:
Обрезание бритвой Оккама давно не поддерживаемых и не расширяемых управляющих api, таких как lirc и bonobo api в пользу dbus.
Удаление из готового пользовательского тарбола пустых каталогов и прочего тестового/сборочного мусора, который начал попадать туда по недосмотру.
Сильная переработка и чистка кода, api расширений и плагинов.
Намного большее "выворачивание" внутренностей процесса воспроизведения в api для плагинов.
Добавление логики для расширенного взаимодействия с парсером плейлистов позволит дальше расширять возможности манипуляций с ними и асинхронность, а также обращаться к ним через api для плагинов.
Добавление Vala api для расширений.
Полное обдуманное разнесение всего, что могло подвесить и "залочить" плеер по соответсвующим потокам, с соответсвующим управлением им.
Усовершенствование в логике порождения дочерних процессов.
Переработка glib костяка (который уже давно числился проблемным местом проекта) для поддержки самых последних функций glib, оптимизация и удаление бутылочных горлышек производительности.
Комплексное и повсеместное введение вспомогательных функций по управлению и противостоянию ошибкам.(!)
Новые плагины для веб сервисов, доведение до ума, с исправлением ошибок и введением новых функций, старых.
Визуализатор.
Логика противодействия мошенничеству по схеме "man on the middle" с интернет магазинами.
Поддержка режима mtp и прочих аппаратных медиаплееров, поддерживаемых в HAL-подсистеме.
Повышение вменяемости по отношению к юникоду.
Условия для возможного введения "тэггинга" в будущем, благодаря работам в db api.
Усовершенствование и обновление GUI.
Возможная поддержка возможности "умной" записи с радио, интернет-радио и last.fm - радио, также с цифрового или спутникового радио(обсуждается среди разработчиков).
Возможная поддержка p2p технологий.
Но несмотря на все новшества, Rhythmbox, по прежнему, остается вашим старым добрым плеером, верным вам, замыслу и идеалам.
Наш Rhythmbox растет не по дням, а по релизам и, как выразился один из разработчиков, Rhythmbox становится чем-то большим чем медиаплеер.
Обзор составлен по материалам почтовой рассылки разработчиков и анализа изменений в svn.