]> www.wagner.pp.ru Git - sites/home_page.git/blobdiff - articles/true_unix_gui_2_0.html
Добавлена книга про русалок в список
[sites/home_page.git] / articles / true_unix_gui_2_0.html
index 8cbd88e246935e72e7afbad4c052b62e7c0053b6..f6bbb212dba1968b5a22885cae49dfae5d319790 100644 (file)
 <HTML><HEAD>
-<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=koi8-r">
+<META HTTP-EQUIV="Content-Type" "text/html; charset=utf-8">
 <TITLE>True Unix GUI 2.0</TITLE>
-<META NAME="description" CONTENT="ðÒÏÅËÔ ÕÓÔÒÏÊÓÔ×Á GUI ÓÒÅÄÙ × ÓÔÉÌÅ
-Unix ÏÔÔÁÌËÉ×ÁÑÓØ ÏÔ ÒÅÁÌÉÊ 2009 ÇÏÄÁ">
+<META NAME="description" CONTENT="Проект устройства GUI среды в стиле
+Unix отталкиваясь от реалий 2009 года">
 </HEAD><BODY>
 <H1>True Unix GUI 2.0</H1>
-<p>ëÏÇÄÁ-ÔÏ ÄÁ×ÎÏ Ñ ÎÁÐÉÓÁÌ ÓÔÁÔØÀ <a href="true_unix_gui.html">True Unix
-GUI</a> ÐÏ ÐÏ×ÏÄÕ ÔÏÇÏ, ËÁË ÖÅ ÄÏÌÖÅΠÂÙÔØ ÕÓÔÒÏÅΠÉÎÔÅÒÆÅÊÓ
ÏÌØÚÏ×ÁÔÅÌÑ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÓÏÈÒÁÎÉÔØ ×ÓÅ ÄÏÓÔÏÉÎÓÔ×Á ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ
-Unix, ÎÏ ÐÒÉ ÜÔÏÍ ÍÁËÓÉÍÁÌØÎÏ ÐÏÄÄÅÒÖÁÔØ ÒÅÛÅÎÉÅ ÔÅÈ ÚÁÄÁÞ, ËÏÔÏÒÙÅ
-ÓÔÏÑÔ ÐÅÒÅÄ ÓÏ×ÒÅÍÅÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÅÍ.</p>
-<p>éÄÅÉ, ÉÚÌÏÖÅÎÎÙÅ ÔÁÍ, ÐÏËÁ ÏÓÔÁÀÔÓÑ ÎÁ ÕÒÏ×ÎÅ ÂÌÁÇÉÈ ÐÏÖÅÌÁÎÉÊ.</p>
-<p>óÅÊÞÁÓ ÐÏÐÒÏÂÕÀ ÒÅÛÉÔØ ÂÏÌÅÅ ÐÒÏÓÔÕÀ ÚÁÄÁÞÕ - ÏÐÉÓÁÔØ, ËÁË ÍÏÖÅÔ ÂÙÔØ
-ÕÓÔÒÏÅÎÁ ËÏÎÓÉÓÔÅÎÔÎÁÑ ÐÏ ÉÎÔÅÒÆÅÊÓÕ ÓÉÓÔÅÍÁ ÐÒÉÌÏÖÅÎÉÊ ÄÌÑ unix,
-ÌÉÛÅÎÎÁÑ ÏÓÎÏ×ÎÙÈ ÎÅÄÏÓÔÁÔËÏ× ÓÕÝÅÓÔ×ÕÀÝÉÈ desktop environments -
-ÎÅÓÔÁÂÉÌØÎÏÓÔÉ, ÓÌÏÖÎÏÓÔÉ × ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ etc.
-<h2>âÜËÇÒÁÕÎÄ</h2>
+<p>Когда-то давно я написал статью <a href="true_unix_gui.html">True Unix
+GUI</a> Ð¿Ð¾ Ð¿Ð¾Ð²Ð¾Ð´Ñ\83 Ñ\82ого, ÐºÐ°Ðº Ð¶Ðµ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ\8bÑ\82Ñ\8c Ñ\83Ñ\81Ñ\82Ñ\80оен Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81
¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8f Ð´Ð»Ñ\8f Ñ\82ого, Ñ\87Ñ\82обÑ\8b Ñ\81оÑ\85Ñ\80аниÑ\82Ñ\8c Ð²Ñ\81е Ð´Ð¾Ñ\81Ñ\82оинÑ\81Ñ\82ва ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð¹ Ñ\81Ñ\82Ñ\80оки
+Unix, но при этом максимально поддержать решение тех задач, которые
+стоят перед современным пользователем.</p>
+<p>Идеи, изложенные там, пока остаются на уровне благих пожеланий.</p>
+<p>Сейчас попробую решить более простую задачу - описать, как может быть
+устроена консистентная по интерфейсу система приложений для unix,
+лишенная основных недостатков существующих desktop environments -
+нестабильности, сложности в программировании etc.
+<h2>Бэкграунд</h2>
 <p>
-þÅÇÏ ÈÏÞÅÔ ÏÔ ÉÎÔÅÒÆÅÊÓÁ ËÏÍÐØÀÔÅÒÎÏÊ ÓÉÓÔÅÍÙ ÐÏÌØÚÏ×ÁÔÅÌØ? îÁÓËÏÌØËÏ Ñ
ÏÎÉÍÁÀ, ÐÒÅÖÄÅ ×ÓÅÇÏ ÏΠÈÏÞÅÔ, ÞÔÏÂÙ ÅÇÏ ÎÅ ÚÁÓÔÁ×ÌÑÌÉ ÄÕÍÁÔØ. åÓÌÉ
-ËÁËÉÅ-ÔÏ ÄÅÊÓÔ×ÉÑ ÐÏ×ÔÏÒÑÀÔÓÑ ÄÏÓÔÁÔÏÞÎÏ ÞÁÓÔÏ, ÞÔÏÂÙ ÏÎÉ ÐÒÅ×ÒÁÔÉÌÉÓØ ×
ÁÌØÃÅ×ÙÅ ÐÒÉ×ÙÞËÉ, ÎÁÐÒÉÍÅÒ, ÏÔËÒÙÔÉÅ ÆÁÊÌÁ ÞÅÒÅÚ ÓÔÁÎÄÁÒÔÎÙÊ ÄÉÁÌÏÇ,
-ÉÌÉ ËÌÉË ÐÒÁ×ÏÊ ËÎÏÐËÏÊ, ÏÎÉ ÄÏÌÖÎÙ ÒÁÂÏÔÁÔØ ÎÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, Ó ËÁËÉÍ
ÒÉÌÏÖÅÎÉÅÍ ÐÏÌØÚÏ×ÁÔÅÌØ ÓÅÊÞÁÓ ÒÁÂÏÔÁÅÔ. ôÏ ÅÓÔØ ÉÎÔÅÒÆÅÊÓ ÄÏÌÖÅΠÂÙÔØ
-ËÏÎÓÉÓÔÅÎÔÎÙÍ. é ÈÏÔÉÍ ÍÙ ÜÔÏÇÏ ÉÌÉ ÎÅÔ, ÜÔÉ ÐÒÉ×ÙÞËÉ ÓÆÏÒÍÉÒÏ×ÁÎÙ ×
-ÒÁÍËÁÈ CUA-ÐÁÒÁÄÉÇÍÙ ÉÎÔÅÒÆÅÊÓÁ
+Чего хочет от интерфейса компьютерной системы пользователь? Насколько я
¿Ð¾Ð½Ð¸Ð¼Ð°Ñ\8e, Ð¿Ñ\80ежде Ð²Ñ\81его Ð¾Ð½ Ñ\85оÑ\87еÑ\82, Ñ\87Ñ\82обÑ\8b ÐµÐ³Ð¾ Ð½Ðµ Ð·Ð°Ñ\81Ñ\82авлÑ\8fли Ð´Ñ\83маÑ\82Ñ\8c. Ð\95Ñ\81ли
+какие-то действия повторяются достаточно часто, чтобы они превратились в
¿Ð°Ð»Ñ\8cÑ\86евÑ\8bе Ð¿Ñ\80ивÑ\8bÑ\87ки, Ð½Ð°Ð¿Ñ\80имеÑ\80, Ð¾Ñ\82кÑ\80Ñ\8bÑ\82ие Ñ\84айла Ñ\87еÑ\80ез Ñ\81Ñ\82андаÑ\80Ñ\82нÑ\8bй Ð´Ð¸Ð°Ð»Ð¾Ð³,
+или клик правой кнопкой, они должны работать независимо от того, с каким
¿Ñ\80иложением Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8c Ñ\81ейÑ\87аÑ\81 Ñ\80абоÑ\82аеÑ\82. Ð¢Ð¾ ÐµÑ\81Ñ\82Ñ\8c Ð¸Ð½Ñ\82еÑ\80Ñ\84ейÑ\81 Ð´Ð¾Ð»Ð¶ÐµÐ½ Ð±Ñ\8bÑ\82Ñ\8c
+консистентным. И хотим мы этого или нет, эти привычки сформированы в
+рамках CUA-парадигмы интерфейса
 </p>
-<p>óÅÊÞÁÓ ÜÔÏ × ÏÓÎÏ×ÎÏÍ ÄÏÓÔÉÇÁÅÔÓÑ ÐÕÔÅÍ ÕÂÉÒÁÎÉÑ ÜÔÉÈ
-ÆÕÎËÃÉÊ × ÒÁÚ×ÅÓÉÓÔÙÅ ÂÉÂÌÉÏÔÅËÉ ÉÎÔÅÒÆÅÊÓÎÙÈ ÔÕÌËÉÔÏ×.
+<p>Сейчас это в основном достигается путем убирания этих
+функций в развесистые библиотеки интерфейсных тулкитов.
 </p>
 <p>
-ôÕÌËÉÔÙ ÐÏÌÕÞÁÀÔÓÑ ÂÏÌØÛÉÍÉ, API ÒÁÚ×ÅÓÉÓÔÙÍÉ, ÒÁÚ×ÉÔÉÅ ÐÒÉ×ÏÄÉÔ Ë
-ÎÁÒÕÛÅÎÉÀ ÏÂÒÁÔÎÏÊ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ É Ô.Ä. âÏÌÅÅ-ÍÅÎÅÅ ÐÒÉÌÉÞÎÙÈ
-ÒÅÚÕÌØÔÁÔÏ× ÎÁ ÜÔÏÍ ÐÕÔÉ ÕÄÁÅÔÓÑ ÄÏÂÉÔØÓÑ ÔÏÌØËÏ ÂÏÌØÛÉÍ ËÏÍÍÅÒÞÅÓËÉÍ
-ÆÉÒÍÁÍ ×ÒÏÄÅ Apple É Microsoft, ËÏÔÏÒÙÅ ÍÏÇÕÔ ÓÅÂÅ ÐÏÚ×ÏÌÉÔØ ÚÁÔÒÁÔÙ ÎÁ
-Q&amp;A, ÐÒÅ×ÙÛÁÀÝÉÅ ÚÁÔÒÁÔÙ ÎÁ ÒÁÚÒÁÂÏÔËÕ, ÍÏÇÕÔ ×ÙÓÔÁ×ÌÑÔØ ÖÅÓÔËÉÅ
-ÔÒÅÂÏ×ÁÎÉÑ Ë 3-rd party ÒÁÚÒÁÂÏÔÞÉËÁÍ É Ô.Ä. é ×ÓÅ ÒÁ×ÎÏ ÐÏÌÕÞÁÅÔÓÑ
ÌÏÈÏ.
-<p>÷ ÍÉÒÅ OpenSource ×ÓÅ ÅÝÅ ÈÕÖÅ. îÅÌØÚÑ ÚÁÓÔÁ×ÉÔØ ÎÅÚÁ×ÉÓÉÍÏÇÏ
-ÒÁÚÒÁÂÏÔÞÉËÁ ÓÏÂÌÀÄÁÔØ HIG, ÅÓÌÉ ÜÔÏÔ HIG ÅÍÕ ÎÅ ÎÒÁ×ÉÔÓÑ.</p>
-<P>îÅÚÁ×ÉÓÉÍÙÅ ÒÁÚÒÁÂÏÔÞÉËÉ, ÜÔÏ ËÁË ÐÒÁ×ÉÌÏ, ÌÀÄÉ Ó ÂÏÌÅÅ ÓÌÏÖÎÙÍÉ
ÒÉ×ÙÞËÁÍÉ, ÞÅÍ ÐÒÏÓÔÙÅ ÐÏÌØÚÏ×ÁÔÅÌÉ. óÅÒØÅÚÎÏÇÏ ÒÁÚÒÁÂÏÔÞÉËÁ ÎÅ ÕÓÔÒÏÉÔ
-× ËÁÞÅÓÔ×Å ÒÅÄÁËÔÏÒÁ pico ÉÌÉ mcedit - ÅÍÕ ÐÏÄÁ×ÁÊ vim ÉÌÉ emacs Ó
-ÓÏ×ÅÒÛÅÎÎÏ ÕÖÁÓÎÙÍÉ ÄÌÑ ÐÒÏÓÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ ËÌÁ×ÉÛÎÙÍÉ ËÏÍÁÎÄÁÍÉ. úÁÔÏ
-ÍÏÝÎÙÊ É ÕÄÏÂÎÙÊ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ ÐÒÉ×ÙÞÎÏÇÏ.</p>
-<p>åÝÅ ÈÏÒÏÛÅÍÕ ÒÁÚÒÁÂÏÔÞÉËÕ ÎÕÖÎÏ ÐÏÎÉÍÁÔØ, ÞÔÏ ÄÅÌÁÅÔ ÔÏÔ ËÕÓÏË ÓÏÆÔÁ,
-ËÏÔÏÒÙÊ ÏΠÒÁÚÒÁÂÁÔÙ×ÁÅÔ. á ËÏÇÄÁ ÜÔÏÔ ËÕÓÏË ÓÏÆÔÁ ÚÁ×ÉÓÉÔ ÏÔ ËÕÞÉ
-ÂÉÂÌÉÏÔÅË, ÄÁ ÜÔÉ ÂÉÂÌÉÏÔÅËÉ ÐÏ ÓÏÂÓÔ×ÅÎÎÏÊ ÉÎÉÃÉÁÔÉ×Å ÐÌÏÄÑÔ ÐÏÔÏËÉ
-×ÙÐÏÌÎÅÎÉÑ, ÄÁ ×ÚÁÉÍÏÄÅÊÓÔ×ÕÀÔ ÎÅ ÓÌÉÛËÏÍ ÄÏËÕÍÅÎÔÉÒÏ×ÁÎÎÙÍ ÏÂÒÁÚÏÍ Ó
ÒÏÞÉÍÉ ËÏÍÐÏÎÅÎÔÁÍÉ ÓÉÓÔÅÍÙ, ËÁÒÔÉÎÕ ÍÉÒÁ ÐÒÉÈÏÄÉÔÓÑ ÏÇÒÁÎÉÞÉ×ÁÔØ
-ÉÓËÕÓÓÔ×ÅÎÎÏ. ÷ ÒÅÚÕÌØÔÁÔÅ ×ÏÚÎÉËÁÀÔ ÔÁËÉÅ ×ÅÝÉ ËÁË "Ñ ÔÕÔ ÎÁÛÅÌ
-ÚÁÍÅÞÁÔÅÌØÎÙÊ framework, Ñ ÐÒÁ×ÄÁ × ÎÅÍ ÎÉÆÉÇÁ ÎÅ ÒÁÚÏÂÒÁÌÓÑ, ÎÏ
-ÓÍÏÔÒÉÔÅ ËÁË ÚÄÏÒÏ×Ï ÐÏÌÕÞÉÌÏÓØ". äÌÑ ÍÅÎÑ ÐÏÄÏÂÎÏÅ ÚÁÑ×ÌÅÎÉÅ
-ÒÁÚÒÁÂÏÔÞÉËÁ - ÏÄÎÏÚÎÁÞÎÙÊ show-stopper. éÓÐÏÌØÚÏ×ÁÔØ ÔÁËÕÀ ÐÒÏÇÒÁÍÍÕ
-ÎÅÌØÚÑ. îÏ ÄÒÕÇÉÈ-ÔÏ ÎÅÔ. ðÉÓÁÔØ ÎÁÄÅÖÎÙÅ ÐÒÏÇÒÁÍÍÙ ÐÏÞÔÉ ÞÔÏ
-ÒÁÚÕÞÉÌÉÓØ. á ÐÏÌØÚÏ×ÁÔÅÌØ ÈÏÞÅÔ ÆÉÞ. </p>
-<p>ðÏ-ÍÏÅÍÕ, × ËÏÎÃÅ ÐÅÒ×ÏÇÏ ÄÅÓÑÔÉÌÅÔÉÑ XXI ×ÅËÁ ÓÔÒÅÍÌÅÎÉÅ ËÏ
-ÍÎÏÖÅÓÔ×Õ ÆÉÞ - ÁÔÁ×ÉÚÍ, ÐÏÄÂÎÙÊ ÎÅËÏÎÔÒÏÌÉÒÕÅÍÏÊ ÌÀÂ×É ÎÅËÏÔÏÒÙÈ
ÒÉÍÁÔÏ× Ë ÓÏÌÉ. ðÒÏÛÌÉ ÄÁ×ÎÏ ÔÅ ×ÒÅÍÅÎÁ, ËÏÇÄÁ × ÔÉÐÉÞÎÏÍ ÍÅÓÔÏÏÂÉÔÁÎÉÉ
ÒÉÍÁÔÏ× ÓÏÌÉ ÂÙÌ ÄÅÆÉÃÉÔ. å£ ÄÁ×ÎÏ ÕÖÅ ÎÁÕÞÉÌÉÓØ ÄÏÂÙ×ÁÔØ É ÉÚ ÍÏÒÑ, É
-ÉÚ ÚÅÍÌÉ × ÌÀÂÙÈ ÔÒÅÂÕÅÍÙÈ ËÏÌÉÞÅÓÔ×ÁÈ. îÏ ×ÏÔ ÏÔ×ÙËÎÕÔØ ÓÏÌÉÔØ ×ÓÅ
ÏÄÒÑÄ ÍÙ ÎÅ ÍÏÖÅÍ. âÉÏÌÏÇÉÑ ÔÁË ÂÙÓÔÒÏ ÎÅ ÐÅÒÅÓÔÒÁÉ×ÁÅÔÓÑ</p>
-<p>ôÁË ÖÅ É Ó ÆÉÞÁÍÉ. ëÁË ÐÒÁ×ÉÌÏ, ÔÉÐÉÞÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ ÎÅ ÚÎÁÅÔ ×ÓÅÈ
-×ÏÚÍÏÖÎÏÓÔÅÊ ÔÅÈ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÍÉ ÏΠÐÏÌØÚÕÅÔÓÑ. ÷ÏÚÎÉËÁÅÔ ÎÏ×ÁÑ
-ÚÁÄÁÞÁ, ÓÔÁ×ÉÔÓÑ ×ÏÐÒÏÓ ÎÅ &laquo;ëÁË ÒÅÛÉÔØ ÜÔÕ ÚÁÄÁÞÕ ÕÖÅ ÚÎÁËÏÍÙÍÉ
-ÉÎÓÔÒÕÍÅÎÔÁÍÉ&raquo; (× ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÎÁ ÜÔÏÔ ×ÏÐÒÏÓ ÅÓÔØ
-ÏÓÍÙÓÌÅÎÎÙÊ ÏÔ×ÅÔ), Á &laquo;çÄÅ ÂÙ ÎÁÒÙÔØ ÔÁËÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ
-ÄÅÌÁÅÔ ×ÓÅ ÞÔÏ ÍÎÅ ÎÁÄÏ É ÅÝÅ ÎÅÍÎÏÖËÏ&raquo;. ðÒÏÇÒÁÍÍÙ ÒÁÓÓÍÁÔÒÉ×ÁÀÔÓÑ
-ÎÅ ËÁË ÉÎÓÔÒÕÍÅÎÔÙ, Á ËÁË ÜÔÁËÉÅ ÍÁÇÉÞÅÓËÉÅ ÄÁÖÅ ÎÅ ÚÁËÌÉÎÁÎÉÑ, Á
-ÁÒÔÅÆÁËÔÙ, ×ÒÏÄÅ ÓËÁÔÅÒÔÉ-ÓÁÍÏÂÒÁÎËÉ.
+Тулкиты получаются большими, API развесистыми, развитие приводит к
+нарушению обратной совместимости и т.д. Более-менее приличных
+результатов на этом пути удается добиться только большим коммерческим
+фирмам вроде Apple и Microsoft, которые могут себе позволить затраты на
+Q&amp;A, Ð¿Ñ\80евÑ\8bÑ\88аÑ\8eÑ\89ие Ð·Ð°Ñ\82Ñ\80аÑ\82Ñ\8b Ð½Ð° Ñ\80азÑ\80абоÑ\82кÑ\83, Ð¼Ð¾Ð³Ñ\83Ñ\82 Ð²Ñ\8bÑ\81Ñ\82авлÑ\8fÑ\82Ñ\8c Ð¶ÐµÑ\81Ñ\82кие
+требования к 3-rd party разработчикам и т.д. И все равно получается
¿Ð»Ð¾Ñ\85о.
+<p>В мире OpenSource все еще хуже. Нельзя заставить независимого
+разработчика соблюдать HIG, если этот HIG ему не нравится.</p>
+<P>Независимые разработчики, это как правило, люди с более сложными
¿Ñ\80ивÑ\8bÑ\87ками, Ñ\87ем Ð¿Ñ\80оÑ\81Ñ\82Ñ\8bе Ð¿Ð¾Ð»Ñ\8cзоваÑ\82ели. Ð¡ÐµÑ\80Ñ\8cезного Ñ\80азÑ\80абоÑ\82Ñ\87ика Ð½Ðµ Ñ\83Ñ\81Ñ\82Ñ\80оиÑ\82
+в качестве редактора pico или mcedit - ему подавай vim или emacs с
+совершенно ужасными для простого пользователя клавишными командами. Зато
+мощный и удобный для пользователя привычного.</p>
+<p>Еще хорошему разработчику нужно понимать, что делает тот кусок софта,
+который он разрабатывает. А когда этот кусок софта зависит от кучи
+библиотек, да эти библиотеки по собственной инициативе плодят потоки
+выполнения, да взаимодействуют не слишком документированным образом с
¿Ñ\80оÑ\87ими ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ\82ами Ñ\81иÑ\81Ñ\82емÑ\8b, ÐºÐ°Ñ\80Ñ\82инÑ\83 Ð¼Ð¸Ñ\80а Ð¿Ñ\80иÑ\85одиÑ\82Ñ\81Ñ\8f Ð¾Ð³Ñ\80аниÑ\87иваÑ\82Ñ\8c
+искусственно. В результате возникают такие вещи как "я тут нашел
+замечательный framework, я правда в нем нифига не разобрался, но
+смотрите как здорово получилось". Для меня подобное заявление
+разработчика - однозначный show-stopper. Использовать такую программу
+нельзя. Но других-то нет. Писать надежные программы почти что
+разучились. А пользователь хочет фич. </p>
+<p>По-моему, в конце первого десятилетия XXI века стремление ко
+множеству фич - атавизм, подбный неконтролируемой любви некоторых
¿Ñ\80имаÑ\82ов Ðº Ñ\81оли. Ð\9fÑ\80оÑ\88ли Ð´Ð°Ð²Ð½Ð¾ Ñ\82е Ð²Ñ\80емена, ÐºÐ¾Ð³Ð´Ð° Ð² Ñ\82ипиÑ\87ном Ð¼ÐµÑ\81Ñ\82ообиÑ\82ании
¿Ñ\80имаÑ\82ов Ñ\81оли Ð±Ñ\8bл Ð´ÐµÑ\84иÑ\86иÑ\82. Ð\95Ñ\91 Ð´Ð°Ð²Ð½Ð¾ Ñ\83же Ð½Ð°Ñ\83Ñ\87илиÑ\81Ñ\8c Ð´Ð¾Ð±Ñ\8bваÑ\82Ñ\8c Ð¸ Ð¸Ð· Ð¼Ð¾Ñ\80Ñ\8f, Ð¸
+из земли в любых требуемых количествах. Но вот отвыкнуть солить все
¿Ð¾Ð´Ñ\80Ñ\8fд Ð¼Ñ\8b Ð½Ðµ Ð¼Ð¾Ð¶ÐµÐ¼. Ð\91иологиÑ\8f Ñ\82ак Ð±Ñ\8bÑ\81Ñ\82Ñ\80о Ð½Ðµ Ð¿ÐµÑ\80еÑ\81Ñ\82Ñ\80аиваеÑ\82Ñ\81Ñ\8f</p>
+<p>Так же и с фичами. Как правило, типичный пользователь не знает всех
+возможностей тех программ, которыми он пользуется. Возникает новая
+задача, ставится вопрос не &laquo;Как решить эту задачу уже знакомыми
+инструментами&raquo; (в большинстве случаев на этот вопрос есть
+осмысленный ответ), а &laquo;Где бы нарыть такую программу, которая
+делает все что мне надо и еще немножко&raquo;. Программы рассматриваются
+не как инструменты, а как этакие магические даже не заклинания, а
+артефакты, вроде скатерти-самобранки.
 </p>
-<p>á ×ÓÅ ÐÏÔÏÍÕ, ÞÔÏ ÎÁÐÉÓÁÔØ ÐÒÏÇÒÁÍÍÕ Ó ÂÏÌÅÅ-ÍÅÎÅÅ ÓÔÁÎÄÁÒÔÎÙÍ GUI -
-ÓÌÏÖÎÏ. üÔÏ ×ÁÍ ÎÅ Ä×ÕÈÓÔÒÏÞÎÙÊ shell-ÓËÒÉÐÔ. ÷ ÔÉÐÉÞÎÏÍ ÉÎÔÅÒÆÅÊÓÎÏÍ
-ÔÕÌËÉÔÅ ÄÁÖÅ ÔÒÉ×ÉÁÌØÎÏÅ ÏËÏÛËÏ Ó ÍÅÎÀÛËÏÊ ÉÚ ÐÑÔÉ ÐÏÚÉÃÉÊ É ÐÁÒÏÊ
-ÓÔÁÎÄÁÒÔÎÙÈ ÄÉÁÌÏÇÏ× ÓÄÅÌÁÔØ - ÎÁ ÜËÒÁΠÎÅ ×ÌÅÚÅÔ.
+<p>А все потому, что написать программу с более-менее стандартным GUI -
+сложно. Это вам не двухстрочный shell-скрипт. В типичном интерфейсном
+тулките даже тривиальное окошко с менюшкой из пяти позиций и парой
+стандартных диалогов сделать - на экран не влезет.
 </p>
-<p>îÁÄÏ ËÁË-ÔÏ ÜÔÕ ÓÉÔÕÁÃÉÀ ÍÅÎÑÔØ</p>
-<h2>ôÒÅÂÏ×ÁÎÉÑ</h2>
+<p>Надо как-то эту ситуацию менять</p>
+<h2>Требования</h2>
 <ol>
-<li>íÁËÓÉÍÁÌØÎÁÑ ÎÅÚÁ×ÉÓÉÍÏÓÔØ ×ÓÅÈ  ËÏÍÐÏÎÅÎÔ. ó ÏÄÎÏÊ
-ÓÔÏÒÏÎÙ ÄÏÌÖÎÁ ÂÙÔØ ×ÏÚÍÏÖÎÏÓÔØ ÏÂÒÁÂÏÔÁÔØ ÐÒÁËÔÉÞÅÓËÉ ÌÀÂÕÀ ÏÛÉÂËÕ É ÎÅ
ÏÔÅÒÑÔØ ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÈ ÄÁÎÎÙÈ, Ó ÄÒÕÇÏÊ - ÅÓÌÉ ÍÎÅ ÎÅ ÎÒÁ×ÉÔÓÑ ÄÉÁÌÏÇ
-ÏÔËÒÙÔÉÑ ÆÁÊÌÏ×, Ñ ÄÏÌÖÅΠÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ ÚÁÍÅÎÉÔØ ÅÇÏ ÎÁ ÂÏÌÅÅ ÄÒÕÇÏÊ
-(ÂÌÁÇÏ × ÄÉÓÔÒÉÂÕÔÉ×Å ÉÈ ÐÏÌÎÏ ÒÁÚÎÙÈ) ÂÅÚ ÐÅÒÅËÏÍÐÉÌÑÃÉÉ (É ÔÅÍ ÂÏÌÅÅ,
ÅÒÅÐÉÓÙ×ÁÎÉÑ) ×ÓÅÈ ÐÒÏÇÒÁÍÍ, ËÏÔÏÒÙÍÉ Ñ ÐÏÌØÚÕÀÓØ.
-<li>îÁÌÉÞÉÅ ÏÄÎÏÇÏ ÒÅÛÅÎÉÑ ÄÌÑ ËÁÖÄÏÊ ÚÁÄÁÞÉ. åÓÌÉ ÐÏÓÍÏÔÒÅÔØ ÓËÏÌØËÏ
-ÒÅÁÌÉÚÁÃÉÊ ÐÒÏÔÏËÏÌÁ HTTP ÅÓÔØ × ÔÉÐÉÞÎÏÊ ÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ ÓÉÓÔÅÍÅ -
-ÍÏÖÎÏ ÐÒÉÊÔÉ × ÕÖÁÓ. îÅÔ, Ñ ÎÅ ÐÒÏÔÉ× ÔÏÇÏ, ÞÔÏÂÙ × ÄÉÓÔÒÉÂÕÔÉ×Å ÂÙÌÉ
-ÎÅÓËÏÌØËÏ ÒÅÁÌÉÚÁÃÉÊ, ÞÔÏÂÙ Ñ ÍÏÇ ×ÙÂÒÁÔØ ÎÁÉÂÏÌÅÅ ÍÅÎÑ ÕÓÔÒÁÉ×ÁÀÝÕÀ,
-ÉÌÉ ÄÁÖÅ ÕÓÔÁÎÏ×ÌÅÎÎÙÈ ÏÄÎÏ×ÒÅÍÅÎÎÏ, ÞÔÏÂÙ ×ÙÂÉÒÁÔØ ÍÏÖÎÏ ÂÙÌÏ × ÍÏÍÅÎÔ
-ÉÓÐÏÌØÚÏ×ÁÎÉÑ. îÏ ×ÏÔ ÎÅÔ - ÔÁ ÉÌÉ ÉÎÁÑ ÒÅÁÌÉÚÁÃÉÑ ÎÁÍÅÒÔ×Ï ×ÓÔÒÏÅÎÁ ×
-ËÁÖÄÕÀ ÐÒÏÇÒÁÍÍÕ ÉÌÉ ÂÉÂÌÉÏÔÅËÕ ÑÚÙËÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ.
-<li>÷ÏÚÍÏÖÎÏÓÔØ ÐÉÓÁÔØ ÎÁ ÌÀÂÏÍ ÑÚÙËÅ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ. óÏ×ÒÅÍÅÎÎÙÊ
ÏÄÈÏÄ ÐÒÉ×ÏÄÉÔ Ë ÔÏÍÕ, ÞÔÏ ÂÏÌØÛÁÑ ÞÁÓÔØ ÆÕÎËÃÉÏÎÁÌØÎÏÓÔÉ ÒÅÁÌÉÚÏ×ÁÎÁ ×
-×ÉÄÅ ÓÔÁÎÄÁÒÔÎÙÈ ÂÉÂÌÉÏÔÅË Ó ÉÎÔÅÒÆÅÊÓÏÍ ÑÚÙËÁ C ÉÌÉ C++. ÷ÓÔÒÏÉÔØ ÜÔÉ
-ÂÉÂÌÉÏÔÅËÉ × ÂÏÌÅÅ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÙÊ ÑÚÙË ÎÅ ×ÓÅÇÄÁ ÔÒÉ×ÉÁÌØÎÏ, ÏÓÏÂÅÎÎÏ
-ÅÓÌÉ ÒÅÞØ ÉÄÅÔ Ï ÑÚÙËÅ, ÕÖÅ ÉÍÅÀÝÅÍ Ó×ÏÉ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ Ï ÃÉËÌÅ ÏÂÒÁÂÏÔËÉ
-ÓÏÂÙÔÉÊ É ÍÅÎÅÄÖÍÅÔÅ ÐÁÍÑÔÉ.
-<li>óÅÔÅ×ÁÑ ÐÒÏÚÒÁÞÎÏÓÔØ. ëÁË ÐÒÁ×ÉÌÏ, × Unix ÉÓÐÏÌØÚÕÅÔÓÑ ËÁËÏÊ-ÎÉÂÕÄØ
ÒÏÔÏËÏÌ ÕÄÁÌÅÎÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄ, ÎÁÐÒÉÍÅÒ ssh, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÑÅÔ
-×ÐÏÌÎÅ ÅÓÔÅÓÔ×ÅÎÎÙÍ ÏÂÒÁÚÏÍ ×ÙÐÏÌÎÑÔØ ÐÒÏÇÒÁÍÍÕ (× ÔÏÍ ÞÉÓÌÅ É ÉÍÅÀÝÕÀ
-GUI) ÎÁ ÕÄÁÌÅÎÎÏÊ ÍÁÛÉÎÅ, ÐÏÌÕÞÁѠţ ÒÅÚÕÌØÔÁÔÙ ÎÁ ÌÏËÁÌØÎÙÊ ÄÉÓÐÌÅÊ.
-ëÁË ÐÒÁ×ÉÌÏ, ÜÔÏÔ ÐÒÏÔÏËÏÌ ÉÍÅÅÔ ÅÝÅ É ÕÄÏÂÎÙÅ ×ÓÔÒÏÅÎÎÙÅ ÓÒÅÄÓÔ×Á
-Á×ÔÏÒÉÚÁÃÉÉ. ôÅÍ ÎÅ ÍÅÎÅÅ, ÐÏÞÔÉ ÎÉËÏÇÄÁ, ËÒÏÍÅ ÎÅËÏÔÏÒÙÈ ÐÒÏÄ×ÉÎÕÔÙÈ
-imap-ËÌÉÅÎÔÏ×, ÜÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÎÅ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÄÁÎÎÙÍ
-ÈÒÁÎÑÝÉÍÓÑ ÎÁ ÕÄÁÌÅÎÎÏÊ ÍÁÛÉÎÅ - ÉÓÐÏÌØÚÕÅÔÓÑ ÐÒÑÍÏÅ TCP-ÓÏÅÄÉÎÅÎÉÅ, Õ
-ËÏÔÏÒÏÇÏ ÍÏÇÕÔ ÂÙÔØ ÐÒÏÂÌÅÍÙ Ó ÆÁÊÒ×ÏÌÌÁÍÉ, ÔÒÅÂÕÅÔÓÑ ÏÔÄÅÌØÎÁÑ
-Á×ÔÏÒÉÚÁÃÉÑ (Á ÐÒÏ ident-ÐÒÏÔÏËÏÌ × ÎÁÛÅ ×ÒÅÍÑ ÍÏÖÎÏ ÓÍÅÌÏ ÚÁÂÙÔØ).
-<li>÷ÉÒÔÕÁÌØÎÁÑ ÆÁÊÌÏ×ÁÑ ÓÉÓÔÅÍÁ. ôÏ ÞÔÏ ÆÁÊÌÙ ÍÏÇÕÔ ÌÅÖÁÔØ ÎÅ ÔÏÌØËÏ ×
-ÌÏËÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÅ, ÎÏ É × ÕÄÁÌÅÎÎÏÊ, ÄÏÓÔÕÐÎÏÊ ÌÉÂÏ ÐÏ
ÒÏÔÏËÏÌÕ ×ÙÐÏÌÎÅÎÉÑ ËÏÍÁÎÄ, ÌÉÂÏ ÐÏ ÐÒÏÔÏËÏÌÕ ÓÅÔÅ×ÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ,
-ÎÁ ËÁËÏÍ-ÎÉÂÕÄØ ÍÏÂÉÌØÎÏÍ ÕÓÔÒÏÊÓÔ×Å, × ÁÒÈÉ×Å, ÎÁ ÓßÅÍÎÏÍ ÎÏÓÉÔÅÌÅ etc,
-ÚÎÁÀÔ ×ÓÅ. îÏ ÓÉÔÕÁÃÉÑ Ó VFS ÏÓÔÁ×ÌÑÅÔ ÖÅÌÁÔØ ÌÕÞÛÅÇÏ
-<li>ðÏÎÑÔÉÅ ÌÏÇÉÞÅÓËÏÊ ËÏÎÓÏÌÉ. ëÏÇÄÁ-ÔÏ ÄÁ×ÎÏ, ×ÓÅ ÞÅÍ ÒÁÓÐÏÌÁÇÁÌ
ÏÌØÚÏ×ÁÔÅÌØ ÄÌÑ ÏÂÍÅÎÁ ÉÎÆÏÒÍÁÃÉÅÊ Ó ËÏÍÐØÀÔÅÒÏÍ, ÂÙÌÏ ÄÉÓÐÌÅÊ,
-ËÌÁ×ÉÁÔÕÒÁ ÄÁ ÍÙÛØ. éÍÅÎÎÏ ÜÔÏÔ ÎÁÂÏÒ ÕÓÔÒÏÊÓÔ× ÐÏÄÄÅÒÖÉ×ÁÅÔ × ÎÏÒÍÅ
ÒÏÔÏËÏÌ X11 (ÈÏÔÑ ÔÁÍ ÐÏÎÑÔÉÅ <i>ÐÏÚÉÃÉÏÎÉÒÕÀÝÅÇÏ ÕÓÔÒÏÊÓÔ×Á</i>
-ÎÅÓËÏÌØËÏ ÛÉÒÅ, ÞÅÍ &laquo;ÍÙÛØ&raquo;). ÷ ÓÏ×ÒÅÍÅÎÎÙÈ ÕÓÌÏ×ÉÑÈ ÜÔÏ
-ÄÁ×ÎÏ ÎÅ ÔÁË. ÷Ï-ÐÅÒ×ÙÈ, ÅÓÔØ ÍÉËÒÏÆÏΠ É ËÏÌÏÎËÉ. é ÇÄÅ ÂÙ ÐÏÌØÚÏ×ÁÔÅÌØ
-ÎÅ ÚÁÐÕÓÔÉÌ ÐÒÏÇÒÁÍÍÕ, ÒÁÂÏÔÁÔØ ÏÎÁ ÄÏÌÖÎÁ ÒÏ×ÎÏ Ó ÔÅÍÉ ËÏÌÏÎËÁÍÉ,
-ËÏÔÏÒÙÅ ÒÁÓÐÏÌÏÖÅÎÙ ÒÑÄÏÍ (ÉÌÉ ×ÏÏÂÝÅ ×ÍÏÎÔÉÒÏ×ÁÎÙ ×) ÄÉÓÐÌÅÅÍ ÜÔÏÇÏ
ÏÌØÚÏ×ÁÔÅÌÑ. ÷Ï-×ÔÏÒÙÈ, ÅÓÔØ ÓËÁÎÅÒÙ, ÃÉÆÒÏ×ÙÅ ÆÏÔÏÁÐÐÁÒÁÔÙ,
-×ÅÂ-ËÁÍÅÒÙ, É ÐÒÏÞÉÅ ÉÓÔÏÞÎÉËÉ ÄÁÎÎÙÈ, ËÏÔÏÒÙÅ ËÁË-ÔÏ Ó×ÑÚÁÎÙ Ó
-ÆÉÚÉÞÅÓËÉÍ ÒÁÓÐÏÌÏÖÅÎÉÅÍ ÐÏÌØÚÏ×ÁÔÅÌÑ. åÓÔØ ÅÝÅ É ÓßÅÍÎÙÅ ÎÏÓÉÔÅÌÉ,
-ËÏÔÏÒÙÅ ÎÅ ÔÏÌØËÏ ÉÓÔÏÞÎÉË ÄÁÎÎÙÈ, É ÉÈ ÐÏÌÕÞÁÔÅÌØ. é ÔÏÖÅ ÎÁÈÏÄÑÔÓÑ ÔÁÍ
-ÖÅ, ÇÄÅ É ÐÏÌØÚÏ×ÁÔÅÌØ. ÷ÐÒÏÞÅÍ, ÓßÅÍÎÙÊ ÎÏÓÉÔÅÌØ - ÞÁÓÔÎÙÊ ÓÌÕÞÁÊ
-×ÉÒÔÕÁÌØÎÏÊ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ
+<li>Максимальная независимость всех  компонент. С одной
+стороны должна быть возможность обработать практически любую ошибку и не
¿Ð¾Ñ\82еÑ\80Ñ\8fÑ\82Ñ\8c Ð¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8cÑ\81киÑ\85 Ð´Ð°Ð½Ð½Ñ\8bÑ\85, Ñ\81 Ð´Ñ\80Ñ\83гой - ÐµÑ\81ли Ð¼Ð½Ðµ Ð½Ðµ Ð½Ñ\80авиÑ\82Ñ\81Ñ\8f Ð´Ð¸Ð°Ð»Ð¾Ð³
+открытия файлов, я должен иметь возможность заменить его на более другой
+(благо в дистрибутиве их полно разных) без перекомпиляции (и тем более,
¿ÐµÑ\80епиÑ\81Ñ\8bваниÑ\8f) Ð²Ñ\81еÑ\85 Ð¿Ñ\80огÑ\80амм, ÐºÐ¾Ñ\82оÑ\80Ñ\8bми Ñ\8f Ð¿Ð¾Ð»Ñ\8cзÑ\83Ñ\8eÑ\81Ñ\8c.
+<li>Наличие одного решения для каждой задачи. Если посмотреть сколько
+реализаций протокола HTTP есть в типичной пользовательской системе -
+можно прийти в ужас. Нет, я не против того, чтобы в дистрибутиве были
+несколько реализаций, чтобы я мог выбрать наиболее меня устраивающую,
+или даже установленных одновременно, чтобы выбирать можно было в момент
+использования. Но вот нет - та или иная реализация намертво встроена в
+каждую программу или библиотеку языка программирования.
+<li>Возможность писать на любом языке программирования. Современный
¿Ð¾Ð´Ñ\85од Ð¿Ñ\80иводиÑ\82 Ðº Ñ\82омÑ\83, Ñ\87Ñ\82о Ð±Ð¾Ð»Ñ\8cÑ\88аÑ\8f Ñ\87аÑ\81Ñ\82Ñ\8c Ñ\84Ñ\83нкÑ\86ионалÑ\8cноÑ\81Ñ\82и Ñ\80еализована Ð²
+виде стандартных библиотек с интерфейсом языка C или C++. Встроить эти
+библиотеки в более высокоуровневый язык не всегда тривиально, особенно
+если речь идет о языке, уже имеющем свои представления о цикле обработки
+событий и менеджмете памяти.
+<li>Сетевая прозрачность. Как правило, в Unix используется какой-нибудь
¿Ñ\80оÑ\82окол Ñ\83даленного Ð²Ñ\8bполнениÑ\8f ÐºÐ¾Ð¼Ð°Ð½Ð´, Ð½Ð°Ð¿Ñ\80имеÑ\80 ssh, ÐºÐ¾Ñ\82оÑ\80Ñ\8bй Ð¿Ð¾Ð·Ð²Ð¾Ð»Ñ\8fеÑ\82
+вполне естественным образом выполнять программу (в том числе и имеющую
+GUI) на удаленной машине, получая её результаты на локальный дисплей.
+Как правило, этот протокол имеет еще и удобные встроенные средства
+авторизации. Тем не менее, почти никогда, кроме некоторых продвинутых
+imap-клиентов, эта возможность не используется для доступа к данным
+хранящимся на удаленной машине - используется прямое TCP-соединение, у
+которого могут быть проблемы с файрволлами, требуется отдельная
+авторизация (а про ident-протокол в наше время можно смело забыть).
+<li>Виртуальная файловая система. То что файлы могут лежать не только в
+локальной файловой системе, но и в удаленной, доступной либо по
¿Ñ\80оÑ\82околÑ\83 Ð²Ñ\8bполнениÑ\8f ÐºÐ¾Ð¼Ð°Ð½Ð´, Ð»Ð¸Ð±Ð¾ Ð¿Ð¾ Ð¿Ñ\80оÑ\82околÑ\83 Ñ\81еÑ\82евой Ñ\84айловой Ñ\81иÑ\81Ñ\82емÑ\8b,
+на каком-нибудь мобильном устройстве, в архиве, на съемном носителе etc,
+знают все. Но ситуация с VFS оставляет желать лучшего
+<li>Понятие логической консоли. Когда-то давно, все чем располагал
¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8c Ð´Ð»Ñ\8f Ð¾Ð±Ð¼ÐµÐ½Ð° Ð¸Ð½Ñ\84оÑ\80маÑ\86ией Ñ\81 ÐºÐ¾Ð¼Ð¿Ñ\8cÑ\8eÑ\82еÑ\80ом, Ð±Ñ\8bло Ð´Ð¸Ñ\81плей,
+клавиатура да мышь. Именно этот набор устройств поддерживает в норме
¿Ñ\80оÑ\82окол X11 (Ñ\85оÑ\82Ñ\8f Ñ\82ам Ð¿Ð¾Ð½Ñ\8fÑ\82ие <i>позиÑ\86иониÑ\80Ñ\83Ñ\8eÑ\89его Ñ\83Ñ\81Ñ\82Ñ\80ойÑ\81Ñ\82ва</i>
+несколько шире, чем &laquo;мышь&raquo;). В современных условиях это
+давно не так. Во-первых, есть микрофон  и колонки. И где бы пользователь
+не запустил программу, работать она должна ровно с теми колонками,
+которые расположены рядом (или вообще вмонтированы в) дисплеем этого
¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8f. Ð\92о-вÑ\82оÑ\80Ñ\8bÑ\85, ÐµÑ\81Ñ\82Ñ\8c Ñ\81канеÑ\80Ñ\8b, Ñ\86иÑ\84Ñ\80овÑ\8bе Ñ\84оÑ\82оаппаÑ\80аÑ\82Ñ\8b,
+веб-камеры, и прочие источники данных, которые как-то связаны с
+физическим расположением пользователя. Есть еще и съемные носители,
+которые не только источник данных, и их получатель. И тоже находятся там
+же, где и пользователь. Впрочем, съемный носитель - частный случай
+виртуальной файловой системы
 </li>
-<h2>áÒÈÉÔÅËÔÕÒÁ</h2>
+<h2>Архитектура</h2>
 <p>
-ðÏÓËÏÌØËÕ ×ÎÉÚÕ Õ ÎÁÓ ÔÁËÉ Unix, ÁÒÈÉÔÅËÔÕÒÕ ÓÌÅÄÕÅÔ ÏÓÎÏ×Ù×ÁÔØ ÎÁ ÔÏÍ,
-ÞÔÏ Unix ÕÍÅÅÔ ÈÏÒÏÛÏ, ÎÁ ÔÏÍ ÞÔÏ ÏÐÉÓÁÎÏ ×Ï ×ÓÅÈ ËÎÉÖËÁÈ ÐÏ
ÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÀ. üÔÏ - ËÏÍÁÎÄÎÁÑ ÓÔÒÏËÁ É ÐÁÊÐÙ.
+Поскольку внизу у нас таки Unix, архитектуру следует основывать на том,
+что Unix умеет хорошо, на том что описано во всех книжках по
¿Ñ\80огÑ\80аммиÑ\80ованиÑ\8e. Ð­Ñ\82о - ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð°Ñ\8f Ñ\81Ñ\82Ñ\80ока Ð¸ Ð¿Ð°Ð¹Ð¿Ñ\8b.
 </p>
-<p>íÏÝÎÏÓÔØ ÓÏ×ÒÅÍÅÎÎÙÈ ËÏÍÐØÀÔÅÒÏ× ×ÅÓØÍÁ ×ÅÌÉËÁ. é ÚÁÞÁÓÔÕÀ ÚÁÐÕÓË
-ÏÔÄÅÌØÎÏÇÏ ÐÒÏÃÅÓÓÁ Ñ×ÌÑÅÔÓÑ ÄÏÐÕÓÔÉÍÙÍ Ï×ÅÒÈÅÄÏÍ ÄÌÑ ÌÀÂÏÊ
-ÉÎÔÅÒÁËÔÉ×ÎÏÊ ÏÐÅÒÁÃÉÉ. ÷ ËÏÎÃÅ ËÏÎÃÏ×, ÜÔÏ ÂÙÌÏ ÄÏÐÕÓÔÉÍÙÍ Ï×ÅÒÈÅÄÏÍ ×Ï
-×ÒÅÍÅÎÁ ëÅÒÎÉÇÁÎÁ É ðÁÊËÁ, ËÏÇÄÁ ËÏÍÐØÀÔÅÒÙ ÂÙÌÉ ÇÏÒÁÚÄÏ ÓÌÁÂÅÅ.
-ëÏÎÅÞÎÏ, ÚÁÐÕÓË ÓÏ×ÒÅÍÅÎÎÏÊ ÐÒÏÇÒÁÍÍÙ Ó ËÕÞÅÊ ÂÉÂÌÉÏÔÅË, ×ÓÔÒÏÅÎÎÙÍÉ
-ÉÎÔÅÒÐÒÅÔÁÔÏÒÁÍÉ et cetera, et cetera ÏÂÈÏÄÉÔÓÑ ÇÏÒÁÚÄÏ ÄÏÒÏÖÅ, ÞÅÍ
-ÚÁÐÕÓË ÕÔÉÌÉÔÙ cat, ÎÏ ËÔÏ ÓËÁÚÁÌ, ÞÔÏ ËÏÍÐÏÎÅÎÔÙ ×ÙÐÏÌÎÑÀÝÉÅ
-ÓÔÁÎÄÁÒÔÎÙÅ ÆÕÎÃÉÉ ÄÏÌÖÎÙ ÂÙÔØ &laquo;ÓÏ×ÒÅÍÅÎÎÙÍÉ ÐÒÏÇÒÁÍÍÁÍÉ&raquo; ×
-ÜÔÏÍ ÓÍÙÓÌÅ ÓÌÏ×Á?
+<p>Мощность современных компьютеров весьма велика. И зачастую запуск
+отдельного процесса является допустимым оверхедом для любой
+интерактивной операции. В конце концов, это было допустимым оверхедом во
+времена Кернигана и Пайка, когда компьютеры были гораздо слабее.
+Конечно, запуск современной программы с кучей библиотек, встроенными
+интерпретаторами et cetera, et cetera обходится гораздо дороже, чем
+запуск утилиты cat, но кто сказал, что компоненты выполняющие
+стандартные фунции должны быть &laquo;современными программами&raquo; в
+этом смысле слова?
 </p>
 <p>
-åÓÌÉ ÐÒÅÄÐÏÌÏÖÉÔØ, ÞÔÏ ÎÁÍ ÎÅ ÖÁÌËÏ ÐÏÒÏÄÉÔØ ÏÔÄÅÌØÎÙÊ GUI-ÐÒÏÃÅÓÓ ÄÌÑ
-ÏÐÅÒÁÃÉÉ ×ÙÂÏÒÁ ÏÔËÒÙ×ÁÅÍÏÇÏ ÆÁÊÌÁ, ÔÏ × ÐÒÏÇÒÁÍÍÅ ×ÙÚÏ× ÜÔÏÇÏ ÄÉÁÌÏÇÁ
-ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ËÁË
+Если предположить, что нам не жалко породить отдельный GUI-процесс для
+операции выбора открываемого файла, то в программе вызов этого диалога
+будет выглядеть как
 <pre>
 f=popen("filedialog","r");
 fgets(f,filename,sizeof(filename);
 pclose(f);
 </pre>
-éÓÐÏÌÎÑÅÍÙÊ ÆÁÊÌ filedialog ÍÏÖÅÔ ÂÙÔØ ÌÉÂÏ
+Исполняемый файл filedialog может быть либо
 <pre>
 #!/bin/sh
 exec zenity --file-dialog
 </pre>
-ÌÉÂÏ
+либо
 <pre>
 #!/usr/bin/wish
 puts [tkGetOpenFile]
 </pre>
-ÜÔÏ ÕÖ ËÁË ×ÁÍ ÂÏÌØÛÅ ÎÒÁ×ÉÔÓÑ. õÐÒÁ×ÌÑÔØ ÎÁÂÏÒÏÍ ÐÏÄÏÂÎÙÈ ÕÔÉÌÉÔ ÍÏÖÎÏ
-ÌÉÂÏ Ó ÐÏÍÏÝØÀ ÍÅÈÁÎÉÚÍÁ ÁÎÁÌÏÇÉÞÎÏÇÏ ÄÅÂÉÁÎÏ×ÓËÉÍ alternatives, ÌÉÂÏ
-Ó ÐÏÍÏÝØÀ ÓÐÅÃÉÁÌØÎÏÇÏ ËÁÔÁÌÏÇÁ × ${HOME}, ÎÁÐÒÉÍÅÒ ~/components, ÇÄÅ
-ÌÅÖÁÔ ÓÉÍÌÉÎËÉ ÉÌÉ ÓËÒÉÐÔÙ, ÄÅÌÁÀÝÉÅ ÔÏ, ÞÔÏ ÎÒÁ×ÉÔÓÑ ÔÅËÕÝÅÍÕ
ÏÌØÚÏ×ÁÔÅÌÀ.
+это уж как вам больше нравится. Управлять набором подобных утилит можно
+либо с помощью механизма аналогичного дебиановским alternatives, либо
+с помощью специального каталога в ${HOME}, например ~/components, где
+лежат симлинки или скрипты, делающие то, что нравится текущему
¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8e.
 </p>
 <p>
-÷ÏÔ ÐÏÍÅÎÑÌÉ ÏÄÎÕ  ÓÉÍÌÉÎËÕ, É ÓÒÁÚÕ ÷ï ÷óåè ÐÒÏÇÒÁÍÍÁÈ ÉÚÍÅÎÉÌÓÑ ÄÉÁÌÏÇ
-ÏÔËÒÙÔÉÑ ÆÁÊÌÏ×. îÅÚÁ×ÉÓÉÍÏ ÏÔ ÔÏÇÏ, ËÁËÕÀ GUI-ÂÉÂÌÉÏÔÅËÕ ÉÓÐÏÌØÚÕÅÔ
-ÓÁÍÁ ÐÒÏÇÒÁÍÍÁ
+Вот поменяли одну  симлинку, и сразу ВО ВСЕХ программах изменился диалог
+открытия файлов. Независимо от того, какую GUI-библиотеку использует
+сама программа
 </p>
 <p>
-á ÅÓÌÉ ×Ù ÐÏÌØÚÕÅÔÅÓØ ËÁËÉÍ-ÎÉÂÕÄØ ÐÒÏÄ×ÉÎÕÔÙÍ ÆÁÊÌ-ÍÅÎÅÄÖÅÒÏÍ, ËÏÔÏÒÙÊ
-ÍÎÏÇÏ ÞÅÇÏ ÕÍÅÅÔ, ×ÁÛ ÓËÒÉÐÔ filedialog ÍÏÖÅÔ ÐÏÏÂÝÁÔØÓÑ Ó ÜÔÉÍ
-ÆÁÊÌÍÅÎÅÄÖÅÒÏÍ (ÞÅÒÅÚ unix-domain socket, ÞÅÒÅÚ X-Ï×ÙÊ ICCCM, ËÁË
-ÕÇÏÄÎÏ) É ÏÔËÒÙÔØ ÅÇÏ ÐÁÎÅÌØ ÓÏ ×ÓÅÍÉ ÅÇÏ ×ÏÚÍÏÖÎÏÓÔÑÍÉ.
+А если вы пользуетесь каким-нибудь продвинутым файл-менеджером, который
+много чего умеет, ваш скрипт filedialog может пообщаться с этим
+файлменеджером (через unix-domain socket, через X-овый ICCCM, как
+угодно) и открыть его панель со всеми его возможностями.
 </p>
-<p>ëÁË ÒÅÁÌÉÚÏ×ÁÔØ ÔÁËÉÍ ÖÅ ÏÂÒÁÚÏÍ progress-bar ÓÍ × ÔÏÊ ÖÅ zenity.
+<p>Как реализовать таким же образом progress-bar см в той же zenity.
 </p>
-<p>á ×ÅÄØ ÍÏÖÎÏ ×ÙÎÅÓÔÉ × ÐÏÄÏÂÎÏÇÏ ÒÏÄÁ ËÏÍÐÏÎÅÎÔÙ É ÂÏÌÅÅ ÓÌÏÖÎÙÅ
-ÏÐÅÒÁÃÉÉ. ðÏÉÓË ÐÏ ÔÅËÓÔÕ, ÎÁÐÒÉÍÅÒ. ïÓÎÏ×ÎÁÑ ÐÒÏÇÒÁÍÍÁ ×ÙÄÉÒÁÅÔ ÉÚ
-Ó×ÏÅÇÏ ÆÏÒÍÁÔÁ ÄÁÎÎÙÈ ÉÓËÁÂÅÌØÎÙÊ ÔÅËÓÔ, É ÓËÁÒÍÌÉ×ÁÅÔ ËÏÍÐÏÎÅÎÔÕ,
-ËÏÔÏÒÙÊ ×ÏÚ×ÒÁÝÁÅÔ "ÎÁÊÄÅÎÏ/ÎÅ ÎÁÊÄÅÎÏ" (Á ÅÓÌÉ ÎÁÊÄÅÎÏ, ÔÏ ÓÍÅÝÅÎÉÅ ÏÔ
ÏÓÌÅÄÎÅÇÏ ÂÌÏËÁ ÔÅËÓÔÁ). ÷ ÒÅÚÕÌØÔÁÔÅ, Ó ËÁËÉÍ ÂÙ ÆÏÒÍÁÔÏÍ ÄÁÎÎÙÈ ÍÙ ÎÅ
-ÒÁÂÏÔÁÌÉ, ÈÏÔØ Ó html, ÈÏÔØ postscript, ÄÉÁÌÏÇÏ×ÏÅ ÏËÎÏ ÐÏÉÓËÁ ÉÍÅÅÔ
-ÏÄÉÎÁËÏ×ÙÅ ÏÐÃÉÉ, ÐÏÄÄÅÒÖÉ×ÁÅÔ ÏÄÉÎÁËÏ×ÙÊ ÓÉÎÔÁËÓÉÓ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ
+<p>А ведь можно вынести в подобного рода компоненты и более сложные
+операции. Поиск по тексту, например. Основная программа выдирает из
+своего формата данных искабельный текст, и скармливает компоненту,
+который возвращает "найдено/не найдено" (а если найдено, то смещение от
¿Ð¾Ñ\81леднего Ð±Ð»Ð¾ÐºÐ° Ñ\82екÑ\81Ñ\82а). Ð\92 Ñ\80езÑ\83лÑ\8cÑ\82аÑ\82е, Ñ\81 ÐºÐ°ÐºÐ¸Ð¼ Ð±Ñ\8b Ñ\84оÑ\80маÑ\82ом Ð´Ð°Ð½Ð½Ñ\8bÑ\85 Ð¼Ñ\8b Ð½Ðµ
+работали, хоть с html, хоть postscript, диалоговое окно поиска имеет
+одинаковые опции, поддерживает одинаковый синтаксис регулярных выражений
 etc.
 </p>
 <p>
-åÝÅ ÍÏÖÎÏ ÏÔÏÒ×ÁÔØ ÏÔ ÐÒÉÌÏÖÅÎÉÊ ÓÉÓÔÅÍÕ ÇÌÁ×ÎÏÇÏ ÍÅÎÀ, ×ÙÎÅÓѠţ ×
-ÏÔÄÅÌØÎÕÀ ÐÒÏÇÒÁÍÍÕ. úÄÅÓØ, ÐÏÖÁÌÕÊ, ÐÁÊÐÙ ÂÕÄÕÔ ÎÅ ÓÁÍÙÍ ÕÄÏÂÎÙÍ
-ÍÅÈÁÎÉÚÍÏÍ ÍÅÖÐÒÏÃÅÓÓÎÏÊ ËÏÍÍÕÎÉËÁÃÉÉ, ÌÕÞÛÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÅÒÅÄÁÞÕ
-ÓÏÂÙÔÉÊ X11, ÎÏ ÚÁÔÏ ÜÔÁ ËÏÎÓÔÒÕËÃÉÑ ÐÏÚ×ÏÌÑÅÔ ÐÏÌÎÏÃÅÎÎÏ ÒÅÁÌÉÚÏ×ÁÔØ
-ÉÎÔÅÒÆÅÊÓÎÕÀ ÐÁÒÁÄÉÇÍÕ íÁËïó, ÇÄÅ ÍÅÎÀ ÎÅ ××ÅÒÈÕ ÏËÎÁ, Á × ×ÅÒÈÕ ÜËÒÁÎÁ.
-üÔÏ ÏÞÅÎØ ÕÄÏÂÎÏ, ÐÏÔÏÍÕ ÞÔÏ ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ ÐÏÐÁÓÔØ ÍÙÛØÀ × ×ÅÒÈÎÀÀ
-ÓÔÒÏÞËÕ ÜËÒÁÎ, ÎÅ ÎÁÄÏ ÐÒÉÃÅÌÉ×ÁÔØÓÑ. ðÒÏÓÔÏ ÒÅÚËÏ ÄÅÒÇÁÅÛØ ÒÕËÕ ××ÅÒÈ,
-ÍÉÍÏ ÇÒÁÎÉÃÙ ÜËÒÁÎÁ ÎÅ ÐÒÏÍÁÈÎÅÛØÓÑ. á ÍÏÖÎÏ ÎÅ ÒÅÁÌÉÚÏ×Ù×ÁÔØ. ÷ ÔÁËÏÊ
-ËÏÎÃÅÐÃÉÉ ÓÏÚÄÁÎÉÅ ÍÅÎÀ ÐÒÉÌÏÖÅÎÉÊ - ÆÕÎËÃÉÑ window manager-Á, Á ÔÏÔ ÕÖ
-ÍÏÖÅÔ ×ÙÂÉÒÁÔØ, ÒÉÓÏ×ÁÔØ ÍÅÎÀ × ×ÅÒÈÎÅÊ ÓÔÒÏËÅ ÉÌÉ × ÒÁÍËÅ ÔÅËÕÝÅÇÏ
-ÏËÎÁ. åÍÕ ÄÏÓÔÕÐÎÏ É ÔÏ, É ÄÒÕÇÏÅ.
+Еще можно оторвать от приложений систему главного меню, вынеся её в
+отдельную программу. Здесь, пожалуй, пайпы будут не самым удобным
+механизмом межпроцессной коммуникации, лучше использовать передачу
+событий X11, но зато эта конструкция позволяет полноценно реализовать
+интерфейсную парадигму МакОС, где меню не вверху окна, а в верху экрана.
+Это очень удобно, потому что для того, чтобы попасть мышью в верхнюю
+строчку экран, не надо прицеливаться. Просто резко дергаешь руку вверх,
+мимо границы экрана не промахнешься. А можно не реализовывать. В такой
+концепции создание меню приложений - функция window manager-а, а тот уж
+может выбирать, рисовать меню в верхней строке или в рамке текущего
+окна. Ему доступно и то, и другое.
 </p>
-<p>÷ ÒÅÚÕÌØÔÁÔÅ ÐÏÌÕÞÁÅÔÓÑ, ÞÔÏ ÐÒÉÌÏÖÅÎÉÅ ÓÏÂÓÔ×ÅÎÎÏ, ÔÏÖÅ ÐÒÅ×ÒÁÝÁÅÔÓÑ
-× ËÏÍÐÏÎÅÎÔ. ïÎÏ ÒÁÓÐÏÒÑÖÁÅÔÓÑ ÔÏÌØËÏ ÏÓÎÏ×ÎÙÍ ÐÏÌÅÍ Ó×ÏÅÇÏ ÏËÎÁ,
-ÏÂÒÁÂÁÔÙ×ÁÅÔ ËÏÍÁÎÄÙ, ÐÒÉÈÏÄÑÝÉÅ × ×ÉÄÅ ÇÏÒÑÞÉÈ ËÌÁ×ÉÛ É ÓÏÂÙÔÉÊ,
-ÓÇÅÎÅÒÉÒÏ×ÁÎÎÙÈ ÍÅÎÅÄÖÅÒÏÍ ÍÅÎÀ. á ÔÁËÉÅ ÐÒÉÌÏÖÅÎÉÑ ÍÏÖÎÏ, ÉÓÐÏÌØÚÕÑ
-X-Ï×ÙÊ ÍÅÈÁÎÉÚÍ reparenting ×ÓÑÞÅÓËÉ ËÏÍÂÉÎÉÒÏ×ÁÔØ ÍÅÖÄÕ ÓÏÂÏÊ.
+<p>В результате получается, что приложение собственно, тоже превращается
+в компонент. Оно распоряжается только основным полем своего окна,
+обрабатывает команды, приходящие в виде горячих клавиш и событий,
+сгенерированных менеджером меню. А такие приложения можно, используя
+X-овый механизм reparenting всячески комбинировать между собой.
 </p>
-<p>äÁÂÙ ÎÅ ÉÚÏÂÒÅÔØ ×ÅÌÏÓÉÐÅÄÏ×, ×ÓÐÏÍÎÉÍ, ÞÔÏ Õ Xt-ÐÒÉÌÏÖÅÎÉÊ ÅÓÔØ
-ÚÁÍÅÞÁÔÅÌØÎÙÊ ÒÅÓÕÒÓ translations, ËÏÔÏÒÙÊ ÐÏÚ×ÏÌÑÅÔ Ó×ÑÚÙ×ÁÔØ
ÒÉËÌÁÄÎÙÅ ÆÕÎËÃÉÉ  Ó ËÌÁ×ÉÁÔÕÒÎÙÍÉ ÓÏÂÙÔÉÑÍÉ. îÁ ÕÒÏ×ÎÅ
ÏÌØÚÏ×ÁÔÅÌØÓËÏÊ, per-display, per-site ÉÌÉ per-application
-ËÏÎÆÉÇÕÒÁÃÉÉ. áÎÁÌÏÇÉÞÎÙÍ ÏÂÒÁÚÏÍ ÄÏÌÖÎÙ ÏÂÒÁÂÁÔÙ×ÁÔØÓÑ É ÓÏÂÙÔÉÑ ÏÔ
-ÍÅÎÅÄÖÅÒÁ ÍÅÎÀ.
+<p>Дабы не изобреть велосипедов, вспомним, что у Xt-приложений есть
+замечательный ресурс translations, который позволяет связывать
¿Ñ\80икладнÑ\8bе Ñ\84Ñ\83нкÑ\86ии  Ñ\81 ÐºÐ»Ð°Ð²Ð¸Ð°Ñ\82Ñ\83Ñ\80нÑ\8bми Ñ\81обÑ\8bÑ\82иÑ\8fми. Ð\9dа Ñ\83Ñ\80овне
¿Ð¾Ð»Ñ\8cзоваÑ\82елÑ\8cÑ\81кой, per-display, per-site Ð¸Ð»Ð¸ per-application
+конфигурации. Аналогичным образом должны обрабатываться и события от
+менеджера меню.