<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.linuxformat.ru/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF124%3A%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0</id>
		<title>LXF124:Что за штука - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.linuxformat.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=LXF124%3A%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0"/>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;action=history"/>
		<updated>2026-05-13T00:13:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=12902&amp;oldid=prev</id>
		<title>Ewgen: добавлены категории</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=12902&amp;oldid=prev"/>
				<updated>2011-10-30T11:14:44Z</updated>
		
		<summary type="html">&lt;p&gt;добавлены категории&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 11:14, 30 октября 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 91:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 91:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''А под какой лицензией распространяется ''Vala''? Открыт ли исходный код? Можно ли распространять его свободно?'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''А под какой лицензией распространяется ''Vala''? Открыт ли исходный код? Можно ли распространять его свободно?'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Vala ''распространяется на условиях GNU LGPL версии 2.1. Это означает, что вы можете делать все что угодно, но при распространении необходимо сохранить свободу. Похоже на стандартную лицензию GPL, с той разницей, что возможна комбинация ''Vala'' с проприетарными продуктами (но вы обязаны предоставить исходный код ''Vala'' по запросу). Причина выбора LGPL в том, что при изготовлении проприетарного ПО код ''Vala'' копируется непосредственно в ''C''-код. Если взять GPL, то все ваше произведение нужно будет распространять на условиях &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;GPl&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;''Vala ''распространяется на условиях GNU LGPL версии 2.1. Это означает, что вы можете делать все что угодно, но при распространении необходимо сохранить свободу. Похоже на стандартную лицензию GPL, с той разницей, что возможна комбинация ''Vala'' с проприетарными продуктами (но вы обязаны предоставить исходный код ''Vala'' по запросу). Причина выбора LGPL в том, что при изготовлении проприетарного ПО код ''Vala'' копируется непосредственно в ''C''-код. Если взять GPL, то все ваше произведение нужно будет распространять на условиях &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GPL&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''А вот я нашел ошибку в ''Vala''! Куда сообщить об этом?'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* '''А вот я нашел ошибку в ''Vala''! Куда сообщить об этом?'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Пройдите вот сюда: http://bugzilla.gnome.org/browse.cgi?product=vala. Это стандартный вариант ''Bugzilla'', поэтому сперва создайте себе учетную запись. Обратите внимание: обнаружив проблему в конкретном приложении, используйте его собственную систему отслеживания ошибок. Ну, а связаться с ведущими разработчиками (и другими полезными людьми) можно по IRC на '''#vala''' по адресу irc.gimp.org. '''LXF'''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Пройдите вот сюда: http://bugzilla.gnome.org/browse.cgi?product=vala. Это стандартный вариант ''Bugzilla'', поэтому сперва создайте себе учетную запись. Обратите внимание: обнаружив проблему в конкретном приложении, используйте его собственную систему отслеживания ошибок. Ну, а связаться с ведущими разработчиками (и другими полезными людьми) можно по IRC на '''#vala''' по адресу irc.gimp.org. '''LXF'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Что за штука]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Дэн Дарт]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;[[Категория:Vala]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ewgen</name></author>	</entry>

	<entry>
		<id>http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=11066&amp;oldid=prev</id>
		<title>Crazy Rebel: викификация, оформление</title>
		<link rel="alternate" type="text/html" href="http://wiki.linuxformat.ru/wiki/index.php?title=LXF124:%D0%A7%D1%82%D0%BE_%D0%B7%D0%B0_%D1%88%D1%82%D1%83%D0%BA%D0%B0&amp;diff=11066&amp;oldid=prev"/>
				<updated>2010-11-10T09:55:24Z</updated>
		
		<summary type="html">&lt;p&gt;викификация, оформление&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Что за штука… ''Vala''==&lt;br /&gt;
&lt;br /&gt;
: '''Дэн Дарт''' заинтересовался платформой, работающей как ''Mono'', но без ''Mono''-библиотек. Запутались? Ничего, к концу статьи распутаетесь…&lt;br /&gt;
&lt;br /&gt;
* '''''Mono''? Я слышал это название. Не эту ли технологию использует ''Tomboy'', инструмент для заметок в Ubuntu?'''&lt;br /&gt;
Да, но проект Mono гораздо крупнее. Это платформа, на которой можно разрабатывать и запускать переносимые приложения – что-то вроде&lt;br /&gt;
''Java''. Она основана на технологиях ''Microsoft .NET'', и многие (к сожалению) усматривают в этом элемент оппортунизма.&lt;br /&gt;
С помощью ''Mono'' создано немало приложений, в том числе ''Beagle'', система мгновенного поиска.&lt;br /&gt;
&lt;br /&gt;
* '''Есть ли ''Mono'' в моем дистрибутиве?'''&lt;br /&gt;
В Ubuntu, до определенного времени – Fedora, OpenSUSE и даже новейшей версии Debian ''Mono'' устанавливается по умолчанию. Если нет, то нетрудно добавить&lt;br /&gt;
его и самому через менеджер пакетов.&lt;br /&gt;
&lt;br /&gt;
* '''Хорошо, но какое отношение это имеет к ''Vala''?'''&lt;br /&gt;
Синтаксис ''Vala'' очень напоминает ''C#'', основной язык ''Mono. Vala'' обладает многими новинками, появившимися&lt;br /&gt;
в ''C#'' недавно: например, обобщенными типами (generics), неявной типизацией (type inference) и нессылочными типами,&lt;br /&gt;
допускающими значение NULL, но ''Mono'' для работы ему не нужен – поэтому ''Vala'' можно&lt;br /&gt;
воспользоваться, если вы не уверены в его наличии у своих клиентов.&lt;br /&gt;
&lt;br /&gt;
* '''Вы же сказали, что ''Mono'' есть в большинстве дистрибутивов! Зачем нужно что-то еще?'''&lt;br /&gt;
Кроме универсальности, есть и другие причины. Например,&lt;br /&gt;
программы на ''Vala'' работают гораздо быстрее, чем аналогичные на ''C#.'' Если разобраться, ''Mono'' поддерживает&lt;br /&gt;
любые платформы и архитектуры, перерабатывая свои языки в подобие машинного кода,&lt;br /&gt;
который крутится в собственной виртуальной машине (примерно&lt;br /&gt;
как у ''Java'') и обычно компилируется только в момент выполнения. Это неизбежно влечет&lt;br /&gt;
определенные затраты системных ресурсов и, конечно, влияет на производительность.&lt;br /&gt;
А скомпилированный ''C''-код – это уже машинный код, и он выполняется очень быстро, ведь процессор&lt;br /&gt;
работает с ним без лишних преобразований. &lt;br /&gt;
&lt;br /&gt;
* '''Но… тогда ведь ''Vala'' тоже медленнее ''C''?'''&lt;br /&gt;
Вместо использования виртуальной машины, код ''Vala'' конвертируется в код ''C'',&lt;br /&gt;
а уже затем компилируется в машинный код. Поэтому скорость исполнения почти&lt;br /&gt;
такая же, как у ''C''. &lt;br /&gt;
&lt;br /&gt;
* '''Если уж углубляться в детали, то каковы отличия ''Vala'' от ''C, C++'' и ''C#'' в скорости?''' &lt;br /&gt;
Скорость ''Vala'' сравнима с ''C'': большинство сходных программ работает почти одинаково быстро. По сравнению с ''C++, Vala'' тоже&lt;br /&gt;
не уступает, а порой (в зависимости от задачи) и превосходит – во всяком случае, скомпилированный код получается&lt;br /&gt;
более компактным. В случае с ''Mono'' разница очевидна и составляет от двух до четырех раз, в зависимости от задачи.&lt;br /&gt;
&lt;br /&gt;
* '''Так нужен ли ''Mono'' для работы приложений ''Vala''?'''&lt;br /&gt;
Нет. Хотя код ''Vala'' визуально очень похож на ''C#'', на котором пишут для ''Mono'', он конвертируется в ''C'', и библиотеки&lt;br /&gt;
''Mono'' не используются. Вот и выходит, что пользователю они ни к чему.&lt;br /&gt;
&lt;br /&gt;
* '''Вот здорово: мои программы будут  работать быстрее без всякого ''Mono''! Но их пользователи обязаны работать на Linux, правда?'''&lt;br /&gt;
Вовсе нет! Библиотеки Gnome работают на многих платформах; то же справедливо для ''Vala''. Поэтому&lt;br /&gt;
программируйте что душе угодно – работать будет везде.&lt;br /&gt;
&lt;br /&gt;
* '''Ура! Друзья не посмотрят на меня косо, ведь ''Mono'' мне больше ни к чему!'''&lt;br /&gt;
Вот это верно: для тех, кто недолюбливает ''Mono'' за близость к Microsoft, поводов&lt;br /&gt;
для предубеждений против ''Vala'' уже не остается. Как говорится, в порочащих связях… и т. д.&lt;br /&gt;
&lt;br /&gt;
* '''Ну, хорошо. А что можно программировать на ''Vala''?'''&lt;br /&gt;
Да почти все, что работает в Gnome. Хотя бы еще один текстовый редактор или&lt;br /&gt;
IRC-клиент (впрочем, вот этого не надо, их и так навалом!). Существуют привязки&lt;br /&gt;
к библиотекам любых типов.&lt;br /&gt;
&lt;br /&gt;
* '''Как вы сказали? Привязки? Боюсь, мы меня теряем…'''&lt;br /&gt;
Чтобы включить в свою ''Vala''-программу какую-либо библиотеку, например мультимедиа-каркас ''GStreamer'', графическую&lt;br /&gt;
подсистему ''OpenGL'' или игровой инструментарий ''SDL'', вам не обойтись без привязок (bindings) к ним. Привязки служат&lt;br /&gt;
промежуточными звеньями между языками программирования и библиотеками,&lt;br /&gt;
и к ''Vala'' можно добавить практически любую – привязки «знают», как обходиться&lt;br /&gt;
с ними.&lt;br /&gt;
&lt;br /&gt;
* '''А какие привязки можно использовать с ''Vala''?'''&lt;br /&gt;
Можно брать многие существующие ''C''-библиотеки, только укажите их в API-файле с объявлениями классов и методов,&lt;br /&gt;
который хранится вместе с кодом ''Vala''. Привязки дают возможность подключить ''GCrypt'' (систему&lt;br /&gt;
шифрования Gnome), систему подключаемых модулей ''GEdit'', проверку орфографии&lt;br /&gt;
''GSpell'', аудиоплейер ''XMMS'' и, в скором времени, личные библиотеки. В стадии эксперимента – использование ''GLib'' и ''GTK'', системы&lt;br /&gt;
оконных виджетов (кнопки, поля ввода и т. п.). На подходе – полная привязка к платформе Gnome.&lt;br /&gt;
&lt;br /&gt;
* '''Можно ли компоновать код ''Vala'' с моим готовым ''C''-кодом?''' &lt;br /&gt;
Конечно. Достаточно установить заголовочные файлы, и можно запросто связать ''Vala'' с ''C''-кодом, включая ''C''-библиотеки. Другие языки, например ''C++, C#, Java'' и ''Python'', планируется оснастить связями с ''Vala'', но пока это только планы.&lt;br /&gt;
&lt;br /&gt;
* '''А как программировать на этом языке? Каков синтаксис?'''&lt;br /&gt;
Синтаксис напоминает ''C#'', но немного отличается. Присутствуют те же концепции, что в ''C#'': например сигналы, циклы, интерфейсы различных типов и даже подключаемые модули.&lt;br /&gt;
&lt;br /&gt;
* '''Круто. Но если эти системы так похожи, стоит ли менять шило на мыло? Не расскажете ли о преимуществах ''Vala'' перед ''Mono'' подробнее?'''&lt;br /&gt;
Допустим, вы хотите работать с Gnome, но не хотите пользоваться ''C#'' или ''Java''; тогда ''Vala'' – неплохой выбор. Считается, что программировать на нем проще, чем на ''C'', а приложения разрабатывать быстрее за счет наличия полезных встроенных функций, например, автоматизированного управления памятью. Эта функция предотвращает утечки памяти и повышает скорость выполнения программ. Кроме того, язык уже довольно широко используется.&lt;br /&gt;
&lt;br /&gt;
* '''Что, люди и правда его используют?'''&lt;br /&gt;
Именно! Например, на ''Vala'' портирована ''Cheese'', программа для работы с web-камерами, включенная в Ubuntu. Среди других программ, портированных или созданных заново, ''Scratchpad'' – текстовый редактор для Gnome, ''Seahorse'' – диспетчер шифровальных ключей для Gnome, докер панелей ''AllTray; Abraca'' – клиент ''XMMS2, Epris'' – музыкальный плейер на основе ''GStreamer'' с интерфейсом командной строки, программы просмотра PDF, IDE, системы цифровой видеозаписи и многое-многое другое. Полный список в сопровождении дополнительной информации доступен по адресу http://live.gnome.org/Vala.&lt;br /&gt;
&lt;br /&gt;
* '''Раз эта система так популярна, значит, она и стабильна?'''&lt;br /&gt;
Увы, нет. По крайней мере, пока. Функции языка время от времени меняются: грядет версия 1.0. В этом году, например, добавлена поддержка выражений-инициализаторов массивов, значительно исправлен синтаксис, добавлены привязки к ''Lua, MySQL, Fuse, libdaemon, V4L2, librsvg, X11, xcb'' и POSIX, условная компиляция, улучшен синтаксический анализатор, добавлена поддержка профилей POSIX и сигналов в статическом D-BUS. Текущая версия, на момент написания статьи, имеет номер 0.7.7 (вышла 27 сентября 2009 г.).&lt;br /&gt;
&lt;br /&gt;
* '''Где можно узнать о языке ''Vala''? Есть ли источники для новичков?'''&lt;br /&gt;
Лучше всего начинать с руководства: http://live.gnome.org/Vala/Tutorial. С его помощью можно научиться писать программы на ''Vala'' «с нуля». Справочные материалы есть на http://www.vala-project.org/doc/vala.&lt;br /&gt;
&lt;br /&gt;
* '''Откуда можно загрузить ''Vala''? Может быть, он у меня уже есть?'''&lt;br /&gt;
По умолчанию ''Vala'' не включается в состав ни одного дистрибутива Linux; этим он похож на другие компиляторы. Обычно его можно загрузить и установить из официального репозитория. Нет, программы-то на ''Vala'' будут работать – только вот сразу сесть и написать приложение вы не сможете. Есть модули для использования ''Vala'' с ''MonoDevelop, Eclipse'' и другими IDE.&lt;br /&gt;
&lt;br /&gt;
* '''А под какой лицензией распространяется ''Vala''? Открыт ли исходный код? Можно ли распространять его свободно?'''&lt;br /&gt;
''Vala ''распространяется на условиях GNU LGPL версии 2.1. Это означает, что вы можете делать все что угодно, но при распространении необходимо сохранить свободу. Похоже на стандартную лицензию GPL, с той разницей, что возможна комбинация ''Vala'' с проприетарными продуктами (но вы обязаны предоставить исходный код ''Vala'' по запросу). Причина выбора LGPL в том, что при изготовлении проприетарного ПО код ''Vala'' копируется непосредственно в ''C''-код. Если взять GPL, то все ваше произведение нужно будет распространять на условиях GPl.&lt;br /&gt;
&lt;br /&gt;
* '''А вот я нашел ошибку в ''Vala''! Куда сообщить об этом?'''&lt;br /&gt;
Пройдите вот сюда: http://bugzilla.gnome.org/browse.cgi?product=vala. Это стандартный вариант ''Bugzilla'', поэтому сперва создайте себе учетную запись. Обратите внимание: обнаружив проблему в конкретном приложении, используйте его собственную систему отслеживания ошибок. Ну, а связаться с ведущими разработчиками (и другими полезными людьми) можно по IRC на '''#vala''' по адресу irc.gimp.org. '''LXF'''&lt;/div&gt;</summary>
		<author><name>Crazy Rebel</name></author>	</entry>

	</feed>