<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</TITLE>
-<META NAME="DESCRIPTION" CONTENT="òÁÚÍÙÛÌÅÎÉÑ Ï ÔÏÍ, ËÁËÉÍÉ
-ÐÒÉÎÃÉÐÉÁÌØÎÙÍÉ Ó×ÏÊÓÔ×ÁÍÉ ÏÂÌÁÄÁÅÔ ÔÅËÓÔÏ×ÙÊ ÉÎÔÅÒÆÅÊÓ Unix, É ÐÏÞÅÍÕ
-ÎÉ ÏÄÉÎ ÉÚ ÓÏ×ÒÅÍÅÎÎÙÈ ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ÎÅ ÍÏÖÅÔ ÓÞÉÔÁÔØÓÑ
-ÐÏÌÎÏÐÒÁ×ÎÙÍ ÎÁÓÌÅÄÎÉËÏÍ ÜÔÏÇÏ ÉÎÔÅÒÆÅÊÓÁ">
+<META NAME="DESCRIPTION" CONTENT="Размышления о том, какими
+пÑ\80инÑ\86ипиалÑ\8cнÑ\8bми Ñ\81войÑ\81Ñ\82вами обладаеÑ\82 Ñ\82екÑ\81Ñ\82овÑ\8bй инÑ\82еÑ\80Ñ\84ейÑ\81 Unix, и поÑ\87емÑ\83
+ни один из современных графических интерфейсов не может считаться
+полнопÑ\80авнÑ\8bм наÑ\81ледником Ñ\8dÑ\82ого инÑ\82еÑ\80Ñ\84ейÑ\81а">
</HEAD><BODY>
<H1>True Unix GUI</H1>
<p>
-÷ ÐÏÓÌÅÄÎÅÅ ×ÒÅÍÑ ÍÎÏÇÏ ÛÕÍÁ ÒÁÚÄÁÅÔÓÑ ×ÏËÒÕÇ ÉÄÅÉ Ï ×ÓÔÕÐÌÅÎÉÉ
-Linux (É ×ÏÏÂÝÅ Unix-ÐÏÄÏÂÎÙÈ ÓÉÓÔÅÍ) × ×ÏÊÎÕ ÚÁ ÍÅÓÔÏ ÎÁ ÒÙÎËÅ
-ÎÁÓÔÏÌØÎÙÈ ÓÉÓÔÅÍ. ÷ ËÁÞÅÓÔ×Å ÒÁÚ×ÅÄËÉ ÂÏÅÍ × ÜÔÏÊ ×ÏÊÎÅ ×ÏÚÎÉËÌÉ É
-ÒÁÚ×É×ÁÀÔÓÑ ÔÁËÉÅ ÓÉÓÔÅÍÙ, ËÁË KDE É GNOME. îÏ, ÐÏ ÍÏÅÍÕ ÍÎÅÎÉÀ, ÜÔÉ
-ÓÉÓÔÅÍÙ ÏÂÒÅÞÅÎÙ ÎÁ ÐÒÏ×ÁÌ. ñ ÎÅ ÓÞÉÔÁÀ, ÞÔÏ Linux ÎÅ ÍÅÓÔÏ ÎÁ ÄÅÓËÔÏÐÅ
-ÐÏÌØÚÏ×ÁÔÅÌÑ. ðÒÏÓÔÏ ÁÔÁËÏ×ÁÔØ ÐÏÚÉÃÉÉ Windows ÎÁÄÏ Ó ÄÒÕÇÏÇÏ ÆÌÁÎÇÁ.
-</p><p>
-þÔÏ ÔÁËÏÅ KDE É GNOME — ÜÔÏ ×ÓÅÇÏ ÌÉÛØ ÐÏÐÙÔËÁ ÐÏÓÔÒÏÉÔØ ÎÁÄ ÑÄÒÏÍ
-Unix É X-Window ÓÉÓÔÅÍÕ, ÏÓÎÏ×ÁÎÎÕÀ ÎÁ ÔÅÈ ÖÅ ÐÒÉÎÃÉÐÁÈ, ÞÔÏ É Windows -
-ÄÏËÕÍÅÎÔ-ÏÒÉÅÎÔÉÒÏ×ÁÎÎÁÑ ÍÏÄÅÌØ, ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÍÅÖÄÕ ÐÒÉÌÏÖÅÎÉÑÍÉ ÎÁ
-ÂÁÚÅ drag'n'drop É Object Request Broker, ËÕÞÁ ÂÅÓÐÏÌÅÚÎÏÇÏ
-ÕËÒÁÛÁÔÅÌØÓÔ×Á. æÁËÔÉÞÅÓËÉ ÄÌÑ ÔÁËÏÊ ÓÉÓÔÅÍÙ ×ÓÅ ÐÒÅÉÍÕÝÅÓÔ×Á
-ÎÉÖÅÌÅÖÁÝÅÊ ÍÎÏÇÏÚÁÄÁÞÎÏÊ, ÍÎÏÇÏÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ, ÐÒÏÚÒÁÞÎÏ
-ÉÎÔÅÇÒÉÒÏ×ÁÎÎÏÊ × ÓÅÔØ ÓÉÓÔÅÍÙ ÓÔÁÎÏ×ÑÔÓÑ ÎÅÄÏÓÔÁÔËÁÍÉ, ÐÒÉ×ÏÄÑÝÉÍÉ
-ÔÏÌØËÏ Ë ÎÅÎÕÖÎÏÍÕ ÒÁÓÈÏÄÕ ÒÅÓÕÒÓÏ×. òÅÓÕÒÓÏ× ÓÅÊÞÁÓ, ËÁË ÐÒÁ×ÉÌÏ
-ÉÚÂÙÔÏË, ÎÏ ÜÔÏ ÖÅ ÎÅ ÐÏ×ÏÄ ÔÒÁÎÖÉÒÉÔØ ÉÈ ÂÅÚ ÐÏÌØÚÙ.
-</p><p>
-÷ ÒÅÚÕÌØÔÁÔÅ, ÍÙ ÐÏÌÕÞÁÅÍ ÍÏÎÓÔÒÁ, × ËÏÔÏÒÏÍ ÒÁÂÏÔÁ Ó ÕÄÁÌÅÎÎÙÍÉ
-ÒÅÓÕÒÓÁÍÉ ÏÇÒÁÎÉÞÅÎÁ ÌÁÚÁÎØÅÍ ÐÏ Web, ×ÏÚÍÏÖÎÏÓÔÅÊ ÒÁÓÛÉÒÅÎÉÑ — ÎÅ
-ÂÏÌØÛÅ ÞÅÍ × Windows. èÏÒÏÛÏ ÈÏÔØ ËÏÍÐÉÌÑÔÏÒ ÂÅÓÐÌÁÔÎÙÊ, ÎÏ ×ÅÄØ É ×
-Windows ÅÇÏ ÕÖÅ ÐÏÒÔÁÎÕÌÉ, Á ÔÁË ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÉÎÉÍÁÌØÎÏÊ ÐÒÉÍÏÞËÉ Ë
-ÎÕÖÎÏ ÐÉÓÁÔØ ÎÁ C, ÉÌÉ × ÓÌÕÞÁÅ KDE ÎÁ C++.
-</p><p>
-ðÏÌØÚÏ×ÁÔÅÌØ ÜÔÏÊ ÓÉÓÔÅÍÙ ÏÐÑÔØ ÏÔÄÁÅÔÓÑ ÎÁ ÍÉÌÏÓÔØ ÐÒÏÇÒÁÍÍÉÓÔÁÍ — ÏÎ
-ÍÏÖÅÔ ÐÏÌØÚÏ×ÁÔØÓÑ ÔÏÌØËÏ ÔÅÍ ÞÔÏ ÄÌÑ ÎÅÇÏ ÎÁÐÉÓÁÌÉ, ÐÏÓËÏÌØËÕ ÉÚÕÞÁÔØ C
-É, ÔÅÍ ÂÏÌÅÅ ÐÉÓÁÔØ ÎÁ ÎÅÍ, Õ ÎÅÇÏ ÎÅÔ ×ÒÅÍÅÎÉ. õ ÎÅÇÏ Ó×ÏÉ,
-ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ, ÚÁÄÁÞÉ — ÏÔÞÅÔÉË ËÒÁÓÉ×ÙÊ Ó×ÁÑÔØ, ÐÏÓÞÉÔÁÔØ
-ÞÔÏ-ÎÉÂÕÄØ.
-</p><p>
-úÁÍÅÔÉÍ, ÞÔÏ É ÐÒÏÇÒÁÍÍÉÓÔÙ × ÎÁÛÅ ×ÒÅÍÑ, ×Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ ÔÏ
-ÐÏÄÁ×ÌÑÀÝÅÅ ÂÏÌØÛÉÎÓÔ×Ï ÉÈ, ËÏÔÏÒÏÅ ÏÂÓÌÕÖÉ×ÁÅÔ ÚÁÄÁÞÉ
-ÂÉÚÎÅÓ-ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ×ÓÑÞÅÓËÉÍÉ ÓÉÓÔÅÍÁÍÉ
-Rapid Application Development, ÔÏ ÅÓÔØ ÐÏ ÏÔÎÏÛÅÎÉÀ Ë ÓÁÍÏÍÕ Desktop
-Environment ×ÙÓÔÕÐÁÀÔ ÓËÏÒÅÅ ËÁË ÐÏÌØÚÏ×ÁÔÅÌÉ, ÞÅÍ ËÁË ÐÒÏÇÒÁÍÍÉÓÔÙ.
-÷ ÔÏ ÖÅ ×ÒÅÍÑ ÎÉ KDE ÎÉ GNOME ÎÅ ÎÁÞÉÎÁÌÉÓØ Ó ÉÄÅÉ — ÄÁ×ÁÊÔÅ ÎÁÐÉÛÅÍ
-RAD-ÓÒÅÄÕ, × ËÏÔÏÒÏÊ ÍÏÖÎÏ ÓÄÅÌÁÔØ ×ÓÅ. þÔÏ, ËÓÔÁÔÉ, ÓÉÌØÎÏ ÏÇÒÁÎÉÞÉ×ÁÅÔ
-É ËÏÌÉÞÅÓÔ×Ï ÉÈ ÒÁÚÒÁÂÏÔÞÉËÏ×, É ÐÒÏÄÕËÔÉ×ÎÏÓÔØ ËÁÖÄÏÇÏ ÉÚ ÎÉÈ.
-</p><p>
-òÁÚÒÁÂÏÔÞÉËÉ NextStep ÌÕÞÛÅ ÐÒÏÄÕÍÁÌÉ Ó×ÏÀ ÐÏÌÉÔÉËÕ × ÜÔÏÍ ÏÔÎÏÛÅÎÉÉ, ÎÏ
-É ÏÎÉ ÐÏÔÅÒÐÅÌÉ ÎÅÕÄÁÞÕ × ×ÏÊÎÅ ËÁË ÚÁ ÄÅÓËÔÏÐÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÔÁË É ÚÁ
-ÕÍÙ ÐÒÏÇÒÁÍÍÉÓÔÏ×.
-</p><p>
-óÒÁ×ÎÉÍ ÜÔÏ Ó ÓÉÔÕÁÃÉÅÊ × ÎÁÞÁÌÅ 70-È ÇÏÄÏ× — ÜÐÏÈÉ ÐÏÂÅÄÎÏÇÏ ÛÅÓÔ×ÉÑ
-Unix ÐÏ ÕÎÉ×ÅÒÓÉÔÅÔÁÍ óûá. ðÏÞÅÍÕ ÜÔÁ ÓÉÓÔÅÍÁ ÓÍÏÇÌÁ ÔÏÇÄÁ ×ÙÔÅÓÎÉÔØ
-ÇÏÒÁÚÄÏ ÂÏÌÅÅ «ÄÒÕÖÅÓÔ×ÅÎÎÙÅ Ë ÐÏÌØÚÏ×ÁÔÅÌÀ» LISP-ÍÁÛÉÎÙ?
-</p><p>
-îÁ ÍÏÊ ×ÚÇÌÑÄ ÐÏÔÏÍÕ, ÞÔÏ ÏÎÁ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÐÒÏ×ÏÄÉÌÁ ÏÄÎÕ
-ÎÅÚÁÍÙÓÌÏ×ÁÔÕÀ ÉÄÅÀ — <strong>«ÎÅ ÈÏÞÅÛØ ÏÂÝÁÔØÓÑ Ó ÐÒÏÇÒÁÍÍÏÊ ÓÁÍ — ÚÁÓÔÁ×Ø ÜÔÏ
-ÄÅÌÁÔØ ÄÒÕÇÕÀ ÐÒÏÇÒÁÍÍÕ»</strong>. ñ Õ×ÅÒÅÎ, ÞÔÏ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ËÁÖÄÙÊ ÉÚ
-ÞÉÔÁÔÅÌÅÊ ×ÓÐÏÍÎÉÌ ÞÔÏ-ÔÏ ÔÉÐÁ <tt>ls -l|grep root</tt> ÉÌÉ
-<tt>find . -name "*.bak"|xargs rm</tt>. äÁ, ÒÅÞØ ÉÍÅÎÎÏ Ï ÜÔÉÈ ËÏÎÓÔÒÕËÃÉÑÈ.
-</p><p>
-ïÓÎÏ×ÎÏÅ ÉÈ ÄÏÓÔÏÉÎÓÔ×Ï ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ ÞÔÏ ÏÎÉ, ×Ï-ÐÅÒ×ÙÈ, ×ÐÏÌÎÅ
-ÄÏÓÔÕÐÎÙ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÕÍÅÀÝÅÍÕ ÒÁÂÏÔÁÔØ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, Á ×Ï-×ÔÏÒÙÈ
-Ñ×ÌÑÀÔÓÑ ÐÏÌÎÏÃÅÎÎÙÍÉ ÐÒÏÇÒÁÍÍÁÍÉ ÎÁ ÑÚÙËÅ shell. éÈ ÍÏÖÎÏ ÚÁÐÉÓÁÔØ ×
-ÆÁÊÌ, ÏÂßÑ×ÉÔØ ÜÔÏÔ ÆÁÊÌ ÉÓÐÏÌÎÑÅÍÙÍ É ÐÏÌØÚÏ×ÁÔØÓÑ ÎÁÒÑÄÕ Ó ÐÒÏÞÉÍÉ
-ËÏÍÁÎÄÁÍÉ ÓÉÓÔÅÍÙ.
-</p><p>
-åÓÌÉ ×ÓÐÏÍÎÉÔØ, ÞÔÏ ÏÔÞÅÔÙ × ÔÅ ×ÒÅÍÅÎÁ ÐÉÓÁÌÉ ÎÁ troff, ËÏÔÏÒÙÊ ×ÅÓØÍÁ
-ÐÏÄÈÏÄÉÔ ÄÌÑ ÏÂÒÁÂÏÔËÉ sed-ÏÍ É awk, ÔÏ ÏËÁÖÅÔÓÑ ÞÔÏ
-ÐÏÌØÚÏ×ÁÔÅÌÉ ×ÐÏÌÎÅ ÍÏÇÌÉ ÌÅÇËÏ ÁÄÁÐÔÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ Ë Ó×ÏÉÍ ÎÕÖÄÁÍ.
-ðÒÉÞÅÍ ÜÔÏÔ ÐÒÏÃÅÓÓ ÓËÏÒÅÅ ÎÁÐÏÍÉÎÁÌ ÏÂÕÞÅÎÉÅ — ÓÄÅÌÁÌ ÞÔÏ-ÔÏ ÏÄÉÎ ÒÁÚ,
-ÄÁÌ ÜÔÏÊ ÏÐÅÒÁÃÉÉ ÉÍÑ, É ÄÁÌØÛÅ ÔÒÅÂÕÅÛØ ÓÄÅÌÁÔØ ÏÐÅÒÁÃÉÀ Ó ÔÁËÉÍ-ÔÏ
-ÎÁÚ×ÁÎÉÅÍ.
-</p><p>
-òÅÚÕÌØÔÁÔÏÍ ÜÔÏÇÏ Ñ×ÉÌÏÓØ ÐÒÁËÔÉÞÅÓËÉ ÐÏÌÎÏÅ ÏÔÓÕÔÓÔ×ÉÅ ÂÁÒØÅÒÁ ÍÅÖÄÕ
-ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÓÉÓÔÅÍÙ É ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅÍ × ÎÅÊ. é ÄÁÌØÎÅÊÛÅÅ ÒÁÚ×ÉÔÉÅ
-× ÏÂÝÅÍ-ÔÏ ÎÅ ÐÒÉ×ÅÌÏ Ë ÅÇÏ Õ×ÅÌÉÞÅÎÉÀ. ÷ ÏÔ×ÅÔ ÎÁ X-Window ÐÏÑ×ÉÌÓÑ Tk,
-× ÏÔ×ÅÔ ÎÁ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÐÒÏÇÒÁÍÍÙ ÔÉÐÁ ftp — expect.
-</p><p>
-äÒÕÇÏÅ ÄÅÌÏ ÞÔÏ ÐÒÁËÔÉÞÅÓËÉ ÎÅÉÚÍÅÎÎÙÍ ÏÓÔÁÌÓÑ ÂÁÒØÅÒ ÍÅÖÄÕ ÞÅÌÏ×ÅËÏÍ,
-×ÉÄÑÝÉÍ ËÏÍÐØÀÔÅÒ × ÐÅÒ×ÙÊ ÒÁÚ É Ë×ÁÌÉÆÉÃÉÒÏ×ÁÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, ×
-ÓÎÑÔÉÉ ËÏÔÏÒÏÇÏ ÐÒÅÕÓÐÅÌÉ ÄÒÕÇÉÅ ÓÉÓÔÅÍÙ, × ÏÓÏÂÅÎÎÏÓÔÉ MacOS.
-</p><p>
-ðÁÍÑÔÎÉËÏÍ ÔÏÍÕ ÓÌÁ×ÎÏÍÕ ×ÒÅÍÅÎÉ ÓÌÕÖÉÔ O'Reilly-×ÓËÁÑ ËÎÉÖËÁ
+В последнее время много шума раздается вокруг идеи о вступлении
+Linux (и вообще Unix-подобных систем) в войну за место на рынке
+настольных систем. В качестве разведки боем в этой войне возникли и
+развиваются такие системы, как KDE и GNOME. Но, по моему мнению, эти
+системы обречены на провал. Я не считаю, что Linux не место на десктопе
+полÑ\8cзоваÑ\82елÑ\8f. Ð\9fÑ\80оÑ\81Ñ\82о аÑ\82аковаÑ\82Ñ\8c позиÑ\86ии Windows надо Ñ\81 дÑ\80Ñ\83гого Ñ\84ланга.
+</p><p>
+Что такое KDE и GNOME — это всего лишь попытка построить над ядром
+Unix и X-Window систему, основанную на тех же принципах, что и Windows -
+документ-ориентированная модель, взаимодействие между приложениями на
+базе drag'n'drop и Object Request Broker, куча бесполезного
+украшательства. Фактически для такой системы все преимущества
+нижележащей многозадачной, многопользовательской, прозрачно
+интегрированной в сеть системы становятся недостатками, приводящими
+только к ненужному расходу ресурсов. Ресурсов сейчас, как правило
+избыток, но это же не повод транжирить их без пользы.
+</p><p>
+В результате, мы получаем монстра, в котором работа с удаленными
+ресурсами ограничена лазаньем по Web, возможностей расширения — не
+больше чем в Windows. Хорошо хоть компилятор бесплатный, но ведь и в
+Windows его уже портанули, а так для написания минимальной примочки к
+нужно писать на C, или в случае KDE на C++.
+</p><p>
+Пользователь этой системы опять отдается на милость программистам — он
+может пользоваться только тем что для него написали, поскольку изучать C
+и, тем более писать на нем, у него нет времени. У него свои,
+полÑ\8cзоваÑ\82елÑ\8cÑ\81кие, задаÑ\87и — оÑ\82Ñ\87еÑ\82ик кÑ\80аÑ\81ивÑ\8bй Ñ\81ваÑ\8fÑ\82Ñ\8c, поÑ\81Ñ\87иÑ\82аÑ\82Ñ\8c
+что-нибудь.
+</p><p>
+Заметим, что и программисты в наше время, во всяком случае то
+подавлÑ\8fÑ\8eÑ\89ее болÑ\8cÑ\88инÑ\81Ñ\82во иÑ\85, коÑ\82оÑ\80ое обÑ\81лÑ\83живаеÑ\82 задаÑ\87и
+бизнес-пользователей, пользуется для разработки всяческими системами
+Rapid Application Development, то есть по отношению к самому Desktop
+Environment выступают скорее как пользователи, чем как программисты.
+В то же время ни KDE ни GNOME не начинались с идеи — давайте напишем
+RAD-среду, в которой можно сделать все. Что, кстати, сильно ограничивает
+и количество их разработчиков, и продуктивность каждого из них.
+</p><p>
+Разработчики NextStep лучше продумали свою политику в этом отношении, но
+и они потерпели неудачу в войне как за десктопы пользователей, так и за
+умы программистов.
+</p><p>
+Сравним это с ситуацией в начале 70-х годов — эпохи победного шествия
+Unix по Ñ\83нивеÑ\80Ñ\81иÑ\82еÑ\82ам СШÐ\90. Ð\9fоÑ\87емÑ\83 Ñ\8dÑ\82а Ñ\81иÑ\81Ñ\82ема Ñ\81могла Ñ\82огда вÑ\8bÑ\82еÑ\81ниÑ\82Ñ\8c
+гораздо более «дружественные к пользователю» LISP-машины?
+</p><p>
+На мой взгляд потому, что она последовательно проводила одну
+незамысловатую идею — <strong>«не хочешь общаться с программой сам — заставь это
+делать другую программу»</strong>. Я уверен, что на этом месте каждый из
+читателей вспомнил что-то типа <tt>ls -l|grep root</tt> или
+<tt>find . -name "*.bak"|xargs rm</tt>. Да, речь именно об этих конструкциях.
+</p><p>
+Основное их достоинство заключается в том что они, во-первых, вполне
+доступны пользователю, умеющему работать в командной строке, а во-вторых
+Ñ\8fвлÑ\8fÑ\8eÑ\82Ñ\81Ñ\8f полноÑ\86еннÑ\8bми пÑ\80огÑ\80аммами на Ñ\8fзÑ\8bке shell. Ð\98Ñ\85 можно запиÑ\81аÑ\82Ñ\8c в
+файл, объявить этот файл исполняемым и пользоваться наряду с прочими
+командами системы.
+</p><p>
+Если вспомнить, что отчеты в те времена писали на troff, который весьма
+подÑ\85одиÑ\82 длÑ\8f обÑ\80абоÑ\82ки sed-ом и awk, Ñ\82о окажеÑ\82Ñ\81Ñ\8f Ñ\87Ñ\82о
+полÑ\8cзоваÑ\82ели вполне могли легко адапÑ\82иÑ\80оваÑ\82Ñ\8c Ñ\81иÑ\81Ñ\82емÑ\83 к Ñ\81воим нÑ\83ждам.
+Причем этот процесс скорее напоминал обучение — сделал что-то один раз,
+дал этой операции имя, и дальше требуешь сделать операцию с таким-то
+названием.
+</p><p>
+Результатом этого явилось практически полное отсутствие барьера между
+использованием системы и программированием в ней. И дальнейшее развитие
+в общем-то не привело к его увеличению. В ответ на X-Window появился Tk,
+в ответ на интерактивные программы типа ftp — expect.
+</p><p>
+Другое дело что практически неизменным остался барьер между человеком,
+видящим компьютер в первый раз и квалифицированным пользователем, в
+снятии которого преуспели другие системы, в особенности MacOS.
+</p><p>
+Памятником тому славному времени служит O'Reilly-вская книжка
«<em>sed &
-awk</em>», ËÏÔÏÒÁÑ ÆÁËÔÉÞÅÓËÉ Ñ×ÌÑÅÔÓÑ ÌÅÔÏÐÉÓØÀ ×ÅÒÓÔËÉ ÓÅÒÉÉ ÐÒÏ X window.
+awk</em>», которая фактически является летописью верстки серии про X window.
</p><p>
-ëÁËÏ×Ù ÖÅ ÓÏÓÔÁ×ÌÑÀÝÉÅ ÉÎÔÅÒÆÅÊÓÁ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ Unix, ËÏÔÏÒÙÅ
-ÏËÁÚÁÌÉÓØ × Ó×ÏÅ ×ÒÅÍÑ ÎÁÓÔÏÌØËÏ ÕÄÁÞÎÙÅ, ÞÔÏ ÖÉ×ÕÔ ÕÖÅ 30 ÌÅÔ, É ÄÏ ÓÉÈ
-ÐÏÒ ÎÁÈÏÄÉÔÓÑ ÎÅÍÁÌÏ ÌÀÄÅÊ, ÐÒÅÄÐÏÞÉÔÁÀÝÉÈ ÉÈ ÒÁÚÎÏÏÂÒÁÚÎÙÍ GUI?
+Каковы же составляющие интерфейса командной строки Unix, которые
+оказались в свое время настолько удачные, что живут уже 30 лет, и до сих
+поÑ\80 наÑ\85одиÑ\82Ñ\81Ñ\8f немало лÑ\8eдей, пÑ\80едпоÑ\87иÑ\82аÑ\8eÑ\89иÑ\85 иÑ\85 Ñ\80азнообÑ\80азнÑ\8bм GUI?
</p><p>
-îÁ ÍÏÊ ×ÚÇÌÑÄ ÉÈ ÞÅÔÙÒÅ:
+На мой взгляд их четыре:
</p>
<ol>
<li>
- õÎÉ×ÅÒÓÁÌØÎÁÑ ÆÏÒÍÁ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ — ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ,
-ÐÏÎÉÍÁÅÍÙÊ ËÁË ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÓÉÍ×ÏÌÏ×, ÎÅËÏÔÏÒÙÅ ÉÚ ËÏÔÏÒÙÈ ÉÍÅÀÔ
-ÓÐÅÃÉÁÌØÎÙÊ ÓÍÙÓÌ — ÒÁÚÄÅÌÑÀÔ ÓÔÒÏËÉ(ÚÁÐÉÓÉ), ÐÏÌÑ É ÓÌÏ×Á.
- åÇÏ ËÏÍÁÎÄÎÏ-ÓÔÒÏÞÎÙÅ ÐÒÏÇÒÁÍÍÙ ×ÙÄÁÀÔ ÎÁ ÜËÒÁÎ ÞÅÌÏ×ÅËÕ (stdout),
- ÅÇÏ ÖÅ ÏÖÉÄÁÀÔ × ËÁÞÅÓÔ×Å ××ÏÄÁ (stdin). îÅ ÂÕÄØ ÜÔÏÇÏ ÓÔÁÎÄÁÒÔÁ
- ÂÅÓÐÏÌÅÚÅÎ ÂÙÌ ÂÙ ÓÌÅÄÕÀÝÉÊ ÐÕÎËÔ
-<li> ðÅÒÅÎÁÚÎÁÞÅÎÉÅ ××ÏÄÁ-×Ù×ÏÄÁ. üÔÏÔ ÉÎÓÔÒÕÍÅÎÔ × Unix ÚÎÁÀÔ ÐÏ-ÍÏÅÍÕ
- ×ÓÅ.
-<li> Toolbox Phylosophy. üÔÏ Ó×ÏÊÓÔ×Ï ÔÏÖÅ ÛÉÒÏËÏ ÉÚ×ÅÓÔÎÏ. ÷Ï-×ÓÑËÏÍ
- ÓÌÕÞÁÅ ÉÍÅÎÎÏ ÎÁ ÎÅÍ ÚÁÏÓÔÒÑÅÔ ×ÎÉÍÁÎÉÅ òÉÞÁÒÄ óÔÏÌÌÍÁÎ ×
- info-ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ textutuls. éÄÅÑ ÓÏÓÔÏÉÔ × ÎÁÌÉÞÉÉ ÍÎÏÇÉÈ ÍÁÌÅÎØËÉÈ
- ÕÔÉÌÉÔ, ËÏÔÏÒÙÅ ÈÏÒÏÛÏ ÉÎÔÅÇÒÉÒÕÀÔÓÑ, ×ÍÅÓÔÏ ÏÇÒÏÍÎÏÇÏ ÍÏÎÓÔÒÁ, ËÏÔÏÒÙÊ
- ÕÍÅÅÔ ×ÓÅ. üÔÏ ÅÄÉÎÓÔ×ÅÎÎÙÊ ÕÒÏË Unix, ËÏÔÏÒÙÊ ÕÓ×ÏÉÌÉ ÒÁÚÒÁÂÏÔÞÉËÉ
- GNOME É KDE.
-<li> òÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ. üÔÏ ÔÏÖÅ ÐÕÎËÔ, Ï ËÏÔÏÒÏÍ ÍÎÏÇÉÅ ÚÁÂÙ×ÁÀÔ,
- ÎÏ ÂÅÚ ÎÉÈ ÉÄÅÑ «ÚÁÓÔÁ×ÉÔØ ÏÄÎÕ ÐÒÏÇÒÁÍÍÕ ÞÉÔÁÔØ ×Ù×ÏÄ ÄÒÕÇÏÊ» ÂÙÌÁ ÂÙ
- ÂÅÓÓÍÙÓÌÅÎÎÏÊ. üÔÏ ÆÏÒÍÁÌØÎÙÊ, ÄÏÓÔÁÔÏÞÎÏ ÇÉÂËÉÊ É ÂÏÌÅÅ-ÍÅÎÅÅ
- ÉÎÔÕÉÔÉ×ÎÙÊ ÓÐÏÓÏ ÕËÁÚÁÔØ ÐÒÏÇÒÁÍÍÅ, ÞÔÏ ÓÌÅÄÕÅÔ ÉÓËÁÔØ × ÐÏÔÏËÅ
- ÄÁÎÎÙÈ. é ÓÔÁÎÄÁÒÔÎÙÅ ÓÒÅÄÓÔ×Á ÔÅËÓÔÏ×ÏÊ ÏÂÒÁÂÏÔËÉ, É ÔÁËÉÅ
- ÉÎÓÔÒÕÍÅÎÔÙ ËÁË expect, ÐÏÑ×É×ÛÉÅÓÑ × ÏÔ×ÅÔ ÎÁ ÐÏÑ×ÌÅÎÉÅ ÐÒÏÇÒÁÍÍ,
- ÏÔËÁÚÙ×Á×ÛÉÈÓÑ ÞÅÓÔÎÏ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ ÓÏ ÓÔÁÎÄÁÒÔÎÙÍÉ ÆÉÌØÔÒÁÍÉ,
- ÏÐÉÒÁÀÔÓÑ ÉÍÅÎÎÏ ÎÁ ÜÔÏÔ ÍÅÈÁÎÉÚÍ.
+ Универсальная форма представления информации — текстовый файл,
+понимаемÑ\8bй как поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82Ñ\8c Ñ\81имволов, некоÑ\82оÑ\80Ñ\8bе из коÑ\82оÑ\80Ñ\8bÑ\85 имеÑ\8eÑ\82
+специальный смысл — разделяют строки(записи), поля и слова.
+ Его командно-строчные программы выдают на экран человеку (stdout),
+ его же ожидают в качестве ввода (stdin). Не будь этого стандарта
+ бесполезен был бы следующий пункт
+<li> Переназначение ввода-вывода. Этот инструмент в Unix знают по-моему
+ все.
+<li> Toolbox Phylosophy. Это свойство тоже широко известно. Во-всяком
+ случае именно на нем заостряет внимание Ричард Столлман в
+ info-документации на textutuls. Идея состоит в наличии многих маленьких
+ утилит, которые хорошо интегрируются, вместо огромного монстра, который
+ умеет все. Это единственный урок Unix, который усвоили разработчики
+ GNOME и KDE.
+<li> Регулярные выражения. Это тоже пункт, о котором многие забывают,
+ но без них идея «заставить одну программу читать вывод другой» была бы
+ бессмысленной. Это формальный, достаточно гибкий и более-менее
+ интуитивный способ указать программе, что следует искать в потоке
+ данных. И стандартные средства текстовой обработки, и такие
+ инструменты как expect, появившиеся в ответ на появление программ,
+ отказывавшихся честно взаимодействовать со стандартными фильтрами,
+ опираются именно на этот механизм.
</ol>
<p>
-ïÞÅ×ÉÄÎÏ, ÞÔÏ ÍÏÄÅÌØ ÏÂÒÁÂÏÔËÉ ÄÁÎÎÙÈ, ÏÓÎÏ×ÁÎÎÁÑ ÎÁ ÜÔÉÈ ÞÅÔÙÒÅÈ ËÉÔÁÈ,
-ÎÅ ÐÏËÒÙ×ÁÅÔ ÐÏÔÒÅÂÎÏÓÔÅÊ ÓÏ×ÒÅÍÅÎÎÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ.
-</p><p>
-îÁÉÂÏÌÅÅ ÓÌÁÂÙÍ ÍÅÓÔÏÍ ÏËÁÚÙ×ÁÅÔÓÑ ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ ËÁË ÕÎÉ×ÅÒÓÁÌØÎÙÊ
-ÓÐÏÓÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ × ÓÏÞÅÔÁÎÉÉ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÉÑÍÉ
-ÄÌÑ ÅÇÏ ÏÂÒÁÂÏÔËÉ. ÷Ï-ÐÅÒ×ÙÈ, ËÒÏÍÅ ÔÅËÓÔÁ ÅÓÔØ ËÁÒÔÉÎËÉ É Ú×ÕË.
-÷Ï-×ÔÏÒÙÈ,
-ÏÐÅÒÉÒÏ×ÁÔØ Ó ÔÅËÓÔÏÍ ÎÁ ÕÒÏ×ÎÅ ÓÉÍ×ÏÌÏ× ÎÅ ×ÓÅÇÄÁ ÕÄÏÂÎÏ — ÈÏÞÅÔÓÑ
-ÏÐÅÒÉÒÏ×ÁÔØ ÎÁ ÕÒÏ×ÎÅ ÐÒÅÄÌÏÖÅÎÉÊ, ÁÂÚÁÃÅ×, Á ÔÏ É ÇÌÁ×. ÷-ÔÒÅÔØÉÈ,
-ÓÕÝÅÓÔ×ÕÀÔ ÔÁÂÌÉÞÎÙÅ ÄÁÎÎÙÅ, ËÏÔÏÒÙÅ ÎÅ ×ÓÅÇÄÁ ÕÄÏÂÎÏ ÏÂÒÁÂÁÔÙ×ÁÔØ ×
-awk — ÉÎÏÇÄÁ ÎÕÖÅÎ sql. ÷ ÞÅÔ×ÅÒÔÙÈ, ÅÓÔØ ÜÌÅÍÅÎÔÙ ÏÆÏÒÍÌÅÎÉÑ — ÛÒÉÆÔÙ,
-ÎÁÞÅÒÔÁÎÉÑ É ÐÒ., ËÏÔÏÒÙÅ ÉÎÏÇÄÁ ÎÅÓÕÔ ÓÕÝÅÓÔ×ÅÎÎÕÀ ÔÅÍÁÔÉÞÅÓËÕÀ
-ÎÁÇÒÕÚËÕ. (úÄÅÓØ ÍÙ ×ÓÔÕÐÁÅÍ ÎÁ ÔÅÁÔÒ ×ÏÅÎÎÙÈ ÄÅÊÓÔ×ÉÊ ÍÅÖÄÕ
-ÓÔÏÒÏÎÎÉËÁÍÉ ÌÏÇÉÞÅÓËÏÊ É ÆÉÚÉÞÅÓËÏÊ ÒÁÚÍÅÔËÉ, Ë ÂÏÒØÂÅ ÍÅÖÄÕ ËÏÔÏÒÙÍÉ
-ÍÙ ÅÝÅ ×ÅÒÎÅÍÓÑ).
-</p><p>
-äÒÕÇÉÍ ÓÌÁÂÙÍ ÍÅÓÔÏÍ Ñ×ÌÑÀÔÓÑ ÒÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ, ËÁË ×ÓÔÒÏÅÎÎÙÊ ×
-ÓÉÓÔÅÍÕ ÓÐÏÓÏ ÒÁÓÐÏÚÎÁ×ÁÎÉÑ ÏÂÒÁÚÏ×. ïÎÉ ×Ï-ÐÅÒ×ÙÈ, ÓÌÏÖÎÙ ÄÌÑ
-ÐÏÌØÚÏ×ÁÔÅÌÑ — ÎÅÄÁÒÏÍ AltaVista ÉÍÉ ÎÅ ÐÏÌØÚÕÅÔÓÑ, ×Ï-×ÔÏÒÙÈ ÏÞÅÎØ
-ÏÇÒÁÎÉÞÅÎÙ ÐÏ Ó×ÏÉÍ ×ÏÚÍÏÖÎÏÓÔÑÍ — ÐÅÒÅÓÔÁ×ØÔÅ ÍÅÓÔÁÍÉ Ä×Á ÓÌÏ×Á É ×ÓÅ.
-</p><p>
-åÓÔØ ÏÇÒÁÎÉÞÅÎÉÑ É Õ ËÏÎÃÅÐÃÉÉ ÐÅÒÅÎÁÚÎÁÞÅÎÉÑ ××ÏÄÁ-×Ù×ÏÄÁ. ïÎÁ
-ÐÒÉÎÃÉÐÉÁÌØÎÏ ÌÉÎÅÊÎÁ, ÈÏÔÑ ÐÒÏÓÔÒÁÎÓÔ×Ï ÎÁ ÜËÒÁÎÅ ÐÒÉÎÃÉÐÉÁÌØÎÏ
-Ä×ÕÍÅÒÎÏ. íÎÅ ÏÞÅÎØ ÞÁÓÔÏ ÈÏÞÅÔÓÑ ÎÁÐÉÓÁÔØ ÞÔÏ-ÔÏ ×ÒÏÄÅ
+Очевидно, что модель обработки данных, основанная на этих четырех китах,
+не покрывает потребностей современного пользователя.
+</p><p>
+Наиболее слабым местом оказывается текстовый файл как универсальный
+способ представления информации в сочетании с регулярными выражениями
+для его обработки. Во-первых, кроме текста есть картинки и звук.
+Во-вторых,
+оперировать с текстом на уровне символов не всегда удобно — хочется
+оперировать на уровне предложений, абзацев, а то и глав. В-третьих,
+существуют табличные данные, которые не всегда удобно обрабатывать в
+awk — иногда нужен sql. В четвертых, есть элементы оформления — шрифты,
+начертания и пр., которые иногда несут существенную тематическую
+нагрузку. (Здесь мы вступаем на театр военных действий между
+сторонниками логической и физической разметки, к борьбе между которыми
+мы еще вернемся).
+</p><p>
+Другим слабым местом являются регулярные выражения, как встроенный в
+систему способ распознавания образов. Они во-первых, сложны для
+полÑ\8cзоваÑ\82елÑ\8f — недаÑ\80ом AltaVista ими не полÑ\8cзÑ\83еÑ\82Ñ\81Ñ\8f, во-вÑ\82оÑ\80Ñ\8bÑ\85 оÑ\87енÑ\8c
+ограничены по своим возможностям — переставьте местами два слова и все.
+</p><p>
+Есть ограничения и у концепции переназначения ввода-вывода. Она
+пÑ\80инÑ\86ипиалÑ\8cно линейна, Ñ\85оÑ\82Ñ\8f пÑ\80оÑ\81Ñ\82Ñ\80анÑ\81Ñ\82во на Ñ\8dкÑ\80ане пÑ\80инÑ\86ипиалÑ\8cно
+двумерно. Мне очень часто хочется написать что-то вроде
</p><p>
<pre>
- gzcat /var/log/httpd/access.log.gz | tee v | grep ÏÄÎÏ
+ gzcat /var/log/httpd/access.log.gz | tee v | grep одно
|
- +-> grep ÄÒÕÇÏÅ
+ +-> grep другое
</pre>
</p><p>
-÷ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÔÁË ÎÅÌØÚÑ. èÏÔÑ ÓÏ ÓÔÏÒÏÎÙ ÑÄÒÁ Unix ÐÒÉÎÃÉÐÉÁÌØÎÙÈ
-×ÏÚÒÁÖÅÎÉÊ ÎÅÔ. äÒÕÇÏÅ ÄÅÌÏ ÞÔÏ ÐÙÔÁÑÓØ ÚÁÐÉÓÁÔØ ÜÔÏ Ó ËÁËÉÍ ÕÇÏÄÎÏ
-ÓÉÎÔÁËÓÉÓÏÍ ÎÁ ×ÔÏÒÏÍ-ÔÒÅÔØÅÍ ÕÒÏ×ÎÅ ×ÌÏÖÅÎÎÏÓÔÉ ÏÂÑÚÁÔÅÌØÎÏ
-ÚÁÐÕÔÁÅÛØÓÑ. á ÅÓÌÉ ÎÅ ÐÉÓÁÔØ, Á ÒÉÓÏ×ÁÔØ ÎÁ ÜËÒÁÎÅ ÍÙÛËÏÊ ÓÔÒÅÌÏÞËÉ?
-ôÏÇÄÁ ÍÏÖÎÏ ÏÈ×ÁÔÉÔØ ×ÚÇÌÑÄÏÍ ÄÏ×ÏÌØÎÏ ÓÌÏÖÎÕÀ ÓÈÅÍÕ ÐÏÔÏËÏ× ÄÁÎÎÙÈ. ó
-×ÅÔ×ÌÅÎÉÑÍÉ, ÓÌÉÑÎÉÑÍÉ É ÍÎÏÇÏ ÞÅÍ ÅÝÅ.
-</p><p>
-ïÔ×ÌÅËÁÑÓØ ÎÅÍÎÏÇÏ ÏÔ ÔÅÍÙ: á ÎÅ ËÁÖÅÔÓÑ ÌÉ ×ÁÍ, ÞÔÏ ×ÒÅÍÑ
-ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ËÁË ÔÁËÏ×ÙÈ ÚÁËÁÎÞÉ×ÁÅÔÓÑ? çÒÑÄÅÔ ×ÒÅÍÑ
-ÉÎÔÅÒÆÅÊÓÏ× ÇÏÌÏÓÏ×ÙÈ, ËÏÔÏÒÙÅ, ËÁË ÎÉ ÓÔÒÁÎÎÏ ËÕÄÁ ÂÌÉÖÅ Ë ËÏÍÁÎÄÎÏÊ
-ÓÔÒÏËÅ Unix, ÞÅÍ Ë ÇÒÁÆÉÞÅÓËÏÍÕ ÉÎÔÅÒÆÅÊÓÕ Windows. ÷ÅÄØ ÒÅÞØ ÌÉÎÅÊÎÁ, É
-ÂÕÄÅ ÎÁÄÌÅÖÁÝÉÍ ÏÂÒÁÚÏÍ ÒÁÓÐÏÚÎÁÎÁ, ÐÒÅ×ÒÁÝÁÅÔÓÑ × ÔÏÔ ÓÁÍÙÊ ÐÏÔÏË
-ÔÅËÓÔÏ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ, ËÏÔÏÒÙÊ ÔÁË ÌÀÂÑÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ÕÔÉÌÉÔÙ Unix.
-þÔÏ ÖÅ ËÁÓÁÅÔÓÑ ÓÉÎÔÅÚÁ ÒÅÞÉ, ÔÏ ÜÔÁ ÚÁÄÁÞÁ ÐÒÏÓÔÏ ÕÖÅ ÒÅÛÅÎÁ — ÂÅÒÅÔÅ
-festival É ÐÅÒÅÎÁÚÎÁÞÁÅÔÅ ×Ù×ÏÄ ÎÁ ÎÅÇÏ. ðÏÔÒÅÂÕÅÔÓÑ, ÐÒÁ×ÄÁ ÎÅÍÎÏÇÏ
-ÉÚÍÅÎÉÔØ ÓÉÎÔÁËÓÉÓ shell'Á É, ÏÓÏÂÅÎÎÏ, ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ, ÞÔÏÂÙ
-ËÏÍÁÎÄÙ ÂÙÌÏ ÕÄÏÂÎÏ ÐÒÏÉÚÎÏÓÉÔØ, Á ×ÙÄÁÞÕ — ×ÏÓÐÒÉÎÉÍÁÔØ ÎÁ ÓÌÕÈ.
-</p><p>
-îÏ ÇÏÌÏÓÏ×ÏÊ ××ÏÄ — ÐÏËÁ ÅÝÅ ÔÕÍÁÎÎÏÅ ÂÕÄÕÝÅÅ. âÌÉÖÁÊÛÉÅ ÇÏÄÁ Ä×Á-ÔÒÉ
-ÎÁÍ ÐÒÅÄÓÔÏÉÔ ÖÉÔØ Ó ÍÙÛËÏÊ, ÏËÏÛËÁÍÉ É ÉËÏÎËÁÍÉ, ËÏÔÏÒÙÍ ËÓÔÁÔÉ,
-ÐÒÉÍÅÒÎÏ ÓÔÏÌØËÏ ÖÅ ÌÅÔ, ÞÔÏ É Unix.
-</p><p>
-éÔÁË, ËÁËÉÍ ÖÅ ÄÏÌÖÅÎ ÂÙÔØ ÉÓÔÉÎÎÏ ÀÎÉËÓÑÞÉÊ ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ?
+В командной строке так нельзя. Хотя со стороны ядра Unix принципиальных
+возражений нет. Другое дело что пытаясь записать это с каким угодно
+синтаксисом на втором-третьем уровне вложенности обязательно
+запутаешься. А если не писать, а рисовать на экране мышкой стрелочки?
+Тогда можно охватить взглядом довольно сложную схему потоков данных. С
+ветвлениями, слияниями и много чем еще.
+</p><p>
+Отвлекаясь немного от темы: А не кажется ли вам, что время
+графических интерфейсов как таковых заканчивается? Грядет время
+интерфейсов голосовых, которые, как ни странно куда ближе к командной
+строке Unix, чем к графическому интерфейсу Windows. Ведь речь линейна, и
+буде надлежащим образом распознана, превращается в тот самый поток
+текстовой информации, который так любят традиционные утилиты Unix.
+Что же касается синтеза речи, то эта задача просто уже решена — берете
+festival и переназначаете вывод на него. Потребуется, правда немного
+изменить синтаксис shell'а и, особенно, регулярных выражений, чтобы
+команды было удобно произносить, а выдачу — воспринимать на слух.
+</p><p>
+Но голосовой ввод — пока еще туманное будущее. Ближайшие года два-три
+нам предстоит жить с мышкой, окошками и иконками, которым кстати,
+пÑ\80имеÑ\80но Ñ\81Ñ\82олÑ\8cко же леÑ\82, Ñ\87Ñ\82о и Unix.
+</p><p>
+Итак, каким же должен быть истинно юниксячий графический интерфейс?
</p>
<ol>
-<li> äÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ ÅÄÉÎÙÊ ÓÐÏÓÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ.
- üÔÏ ÐÏÚ×ÏÌÉÔ ÎÁÐÒÁ×ÌÑÔØ ×ÙÄÁÞÕ ÌÀÂÏÊ ÐÒÏÇÒÁÍÍÙ ÎÁ ×ÈÏÄ ÄÒÕÇÏÊ.
-<li> äÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÓÒÅÄÓÔ×Ï ÐÏÉÓËÁ ÛÁÂÌÏÎÏ× × ÜÔÏÍ ÐÏÔÏËÅ
- ÉÎÆÏÒÍÁÃÉÉ, ÐÒÉÞÅÍ ÔÁËÏÅ, ÞÔÏÂÙ ×ÉÄÑ ÎÅÞÔÏ ÎÁ ÜËÒÁÎÅ, ÐÏÌØÚÏ×ÁÔÅÌØ ÌÅÇËÏ
- ÍÏÇ ÓÆÏÒÍÕÌÉÒÏ×ÁÔØ ÚÁÄÁÞÕ «ÎÁÊÄÉ ÍÎÅ ×ÓÅ, ÐÏÈÏÖÅÅ ÎÁ ÜÔÏ»
-<li> îÅ ÄÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÍÏÎÓÔÒÏ× ÔÉÐÁ Microsoft Word ÉÌÉ Netscape
+<li> Должен существовать единый способ представления информации.
+ Это позволит направлять выдачу любой программы на вход другой.
+<li> Должно существовать средство поиска шаблонов в этом потоке
+ информации, причем такое, чтобы видя нечто на экране, пользователь легко
+ мог сформулировать задачу «найди мне все, похожее на это»
+<li> Не должно существовать монстров типа Microsoft Word или Netscape
Communicator.
- äÏÌÖÎÁ ÂÙÔØ ÍÁÌÅÎØËÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ ÐÏËÁÚÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÎÏÇÏ ÔÅËÓÔÁ,
- ÄÒÕÇÁÑ ÍÁÌÅÎØËÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ ÐÏËÁÚÁ ÔÁÂÌÉÃ (ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÏÄÎÏ
- ÐÏÌØÚÏ×ÁÔØÓÑ É ÓÒÅÄÓÔ×Ï ÄÏÓÔÕÐÁ Ë sql-ÂÁÚÅ), ÏÔÄÅÌØÎÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ
- ÄÏÓÔÕÐÁ Ë ÕÄÁÌÅÎÎÙÍ ÒÅÓÕÒÓÁÍ, ÂÏÌØÛÅ ÐÏÈÏÖÁÑ ÎÁ wget,
+ Должна быть маленькая утилитка для показа форматированного текста,
+ другая маленькая утилитка для показа таблиц (которой будет заодно
+ полÑ\8cзоваÑ\82Ñ\8cÑ\81Ñ\8f и Ñ\81Ñ\80едÑ\81Ñ\82во доÑ\81Ñ\82Ñ\83па к sql-базе), оÑ\82делÑ\8cнаÑ\8f Ñ\83Ñ\82илиÑ\82ка длÑ\8f
+ доступа к удаленным ресурсам, больше похожая на wget,
-<li> äÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ ÎÅÌÉÎÅÊÎÙÊ ÓÐÏÓÏ ÉÎÔÅÇÒÉÒÏ×ÁÎÉÑ ÜÔÉÈ ÕÔÉÌÉÔ,
- ÔÁËÏÊ, ÞÔÏ Ó ÏÄÎÏÊ ÓÔÏÒÏÎÙ, ÐÏÌØÚÏ×ÁÔÅÌØ ÓÐÏÓÏÂÅÎ Ó ÎÉÍ ÓÐÒÁ×ÉÔØÓÑ
- ÓÁÍ, Ó ÄÒÕÇÏÊ — ÏÎ ÐÏÚ×ÏÌÑÅÔ ÓÃÅÐÉÔØ wget
- Ó ÐÏËÁÚÙ×ÁÌËÏÊ ÔÅËÓÔÁ É ÐÏÌÕÞÉÔØ ÜË×É×ÁÌÅÎÔ Netscape. üÔÏÔ ÓÐÏÓÏÂ
- ÄÏÌÖÅÎ ÉÍÅÔØ ÉÎÔÕÉÔÉ×ÎÏ ÑÓÎÏÅ ÉÎÔÅÒÆÅÊÓÎÏÅ ×ÙÒÁÖÅÎÉÅ.
+<li> Должен существовать нелинейный способ интегрирования этих утилит,
+ такой, что с одной стороны, пользователь способен с ним справиться
+ сам, с другой — он позволяет сцепить wget
+ с показывалкой текста и получить эквивалент Netscape. Этот способ
+ должен иметь интуитивно ясное интерфейсное выражение.
</ol>
<p>
-åÓÔÅÓÔ×ÅÎÎÏ, ÞÔÏ ÒÅÁÌØÎÁÑ ÓÒÅÄÁ, ÐÏÓÔÒÏÅÎÎÁÑ ÎÁ ÜÔÉÈ ÐÒÉÎÃÉÐÁÈ, ÎÅ ÂÕÄÅÔ
-ÓÏÓÔÏÑÔØ ÉÚ ÏÄÎÉÈ ÇÏÌÙÈ ËÉÒÐÉÞÉËÏ×. ÷ ÄÉÓÔÒÉÂÕÔÉ× ÄÏÌÖÎÏ ×ÈÏÄÉÔØ
-ÎÅÓËÏÌØËÏ ÓÏÔÅÎ ÓËÒÉÐÔÏ×, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ Õ ÐÏÌØÚÏ×ÁÔÅÌÑ
-×ÐÅÞÁÔÌÅÎÉÅ, ÞÔÏ Õ ÎÅÇÏ ÅÓÔØ É Netscape É Word É Excel. îÏ ÅÓÌÉ ÅÍÕ
-×ÄÒÕÇ ÚÁÈÏÞÅÔÓÑ ÏÔÏÒ×ÁÔØ ÓÞÉÔÁÌËÕ ÆÏÒÍÕÌ ÏÔ ÜÌÅËÔÒÏÎÎÏÊ ÔÁÂÌÉÃÙ É
-×ÏÔËÎÕÔØ ÅÅ (×ÍÅÓÔÅ Ó sql-ÉÎÔÅÒÆÅÊÓÏÍ) ×ÎÕÔÒØ ÔÅËÓÔÏ×ÏÇÏ ÄÏËÕÍÅÎÔÁ, ÜÔÏ
-ÄÏÌÖÎÏ ÄÅÌÁÔØÓÑ ÄÁÖÅ ÎÅ ÎÁÐÉÓÁÎÉÅÍ ÐÑÔÉ ÓÔÒÏË, Á ÎÅÓËÏÌØËÉÍÉ Ä×ÉÖÅÎÉÑÍÉ
-ÍÙÛÉ. éÎÔÅÒÅÓÎÁÑ ÍÅÔÁÆÏÒÁ ÎÁ ÜÔÕ ÔÅÍÕ ÂÙÌÁ ÒÅÁÌÉÚÏ×ÁÎÁ × Ó×ÏÅ ×ÒÅÍÑ ×Ï
-FrameWork — Õ ËÁÖÄÏÇÏ ÏËÎÁ ÂÙÌÁ ÌÉÃÅ×ÁÑ ÓÔÏÒÏÎÁ (ÐÒÉÍÅÒÎÏ ÔÏ, ÞÔÏ
-ÏËÁÖÅÔÓÑ ÎÁ ÐÒÉÎÔÅÒÅ) É ÉÚÎÁÎËÁ (ÍÁËÒÏÓ ËÏÔÏÒÙÊ ÜÔÏ ÇÅÎÅÒÉÒÕÅÔ).
-</p><p>
-éÎÔÅÒÅÓÎÏ, ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÁÑ ÒÅÁÌÉÚÁÃÉÑ ÜÔÏÊ ËÏÎÃÅÐÃÉÉ ÍÏÖÅÔ ÐÒÉ×ÅÓÔÉ
-Ë ÓÕÝÅÓÔ×ÅÎÎÏÍÕ ÕÍÅÎØÛÅÎÉÀ ÒÁÚÍÅÒÏ× ÄÉÓÔÒÉÂÕÔÉ×Á. ÷Ù ÎÉËÏÇÄÁ ÎÅ
-ÚÁÄÕÍÙ×ÁÌÉÓØ ÓËÏÌØËÏ ÒÁÚÎÙÈ http-ËÌÉÅÎÔÏ× ×ÈÏÄÉÔ × ÔÉÐÉÞÎÙÊ ÄÉÓÔÒÉÂÕÔÉ×
-Linux? óÈÏÄÕ: Netscape, Lynx, wget, http-ÐÁËÅÔ ÄÌÑ Tcl, libwww-perl.
-á ×ÅÄØ È×ÁÔÉÌÏ ÂÙ ÏÄÎÏÇÏ, ÎÏ ÈÏÒÏÛÅÇÏ. é ÔÁË ÄÌÑ ×ÓÅÇÏ ÏÓÔÁÌØÎÏÇÏ.
-</p><p>
-ðÒÅÄ×ÉÖÕ ×ÏÚÒÁÖÅÎÉÑ, ÞÔÏ ÏÐÉÓÁÎÎÁÑ ÓÉÓÔÅÍÁ — ÒÁÊ ÄÌÑ ÐÒÏÇÒÁÍÍÉÓÔÁ, ÎÏ ÎÅ
-ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ. ðÏÌØÚÏ×ÁÔÅÌÀ ÎÅ ÎÕÖÎÙ reusable components — ÅÍÕ
-ÐÏÄÁ×ÁÊ ÇÏÔÏ×ÙÅ ÐÒÉÌÏÖÅÎÉÑ. äÁ, ÎÏ... åÓÌÉ ÓÉÓÔÅÍÁ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ
-ÏÄÎÏ ÂÏÌØÛÏÅ ÓÒÅÄÓÔ×Ï ÄÌÑ ÂÙÓÔÒÏÊ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÊ, ÔÏ ÚÁ
-ÐÏÓÌÅÄÎÉÍÉ ÄÅÌÏ ÎÅ ÓÔÁÎÅÔ — ÎÁÊÄÅÔÓÑ ÎÅÍÁÌÏ (ÇÏÒÁÚÄÏ ÂÏÌØÛÅ ÞÅÍ
-ÕÞÁÓÔÎÉËÏ× «ÂÁÚÁÒÁ» ÓÅÊÞÁÓ) ÌÀÄÅÊ ËÏÔÏÒÙÅ ÚÁ ÄÅÎØÇÉ, ÄÌÑ ÕÄÏ×ÌÅÔ×ÏÒÅÎÉÑ
-ÓÏÂÓÔ×ÅÎÎÙÈ ÐÏÔÒÅÂÎÏÓÔÅÊ, É ÐÒÏÓÔÏ ÒÁÄÉ ÓÁÍÏ×ÙÒÁÖÅÎÉÑ ÂÕÄÕÔ ÜÔÉ ÓÁÍÙÅ
-ÐÒÉÌÏÖÅÎÉÑ ËÌÅÐÁÔØ. ðÒÁ×ÄÁ, ÜÔÏ ÄÏÌÖÎÁ ÂÙÔØ ÓÒÅÄÁ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÊ,
-ËÏÔÏÒÁÑ ÓÏÏÔÎÏÓÉÔÓÑ Ó ÓÕÝÅÓÔ×ÕÀÝÉÍÉ Delphi É C Builder-ÁÍÉ, ÐÒÉÍÅÒÎÏ ËÁË
-«óÒÅÄÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ Unix» ×ÒÅÍÅÎ ëÅÒÎÉÇÁÎÁ É ðÁÊËÁ
-(shell+awk+yacc+C) ÓÏÏÔÎÏÓÉÌÁÓØ Ó ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍÉ × ÔÅ ×ÒÅÍÅÎÁ ÑÚÙËÁÍÉ
-ÔÉÐÁ Fortran É Basic.
-</p><p>
-ðÏÓÍÏÔÒÉÍ, ËÁËÉÍÉ ÖÅ ÓÒÅÄÓÔ×ÁÍÉ ÍÙ ÒÁÓÐÏÌÁÇÁÅÍ ÓÅÊÞÁÓ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ
-ÐÏÐÙÔÁÔØÓÑ ÒÅÁÌÉÚÏ×ÁÔØ ÐÏÄÏÂÎÕÀ ÉÄÅÀ. îÁÞÎÅÍ Ó ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÓÐÏÓÏÂÁ
-ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ. ÷ NextStep ÐÏÐÙÔÁÌÉÓØ Ó ÜÔÏÊ ÃÅÌØÀ
-ÉÓÐÏÌØÚÏ×ÁÔØ Display Postscript. ë ÓÏÖÁÌÅÎÉÀ, ËÒÕÐÎÙÍ ÎÅÄÏÓÔÁÔËÏÍ
-Postscript Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÜÔÏ ÐÏÌÎÏÃÅÎÎÙÊ ÐÒÏÃÅÄÕÒÎÙÊ ÑÚÙË, É
-ÐÒÅÄÓÔÁ×ÉÔØ ÓÅÂÅ ËÁË ×ÙÇÌÑÄÉÔ ÐÏÓÔÓËÒÉÐÔÏ×ÓËÉÊ ÆÁÊÌ, ÎÅ
-ÐÒÏÉÎÔÅÒÐÒÅÔÉÒÏ×Á× ÅÇÏ ÐÏÌÎÏÓÔØÀ, ÐÒÉÎÃÉÐÉÁÌØÎÏ ÎÅÌØÚÑ. ðÏÜÔÏÍÕ
-Postscript ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÐÏÄÈÏÄÉÔ ÄÌÑ ÐÒÏÇÒÁÍÍÎÏÊ ÏÂÒÁÂÏÔËÉ.
-ëÒÏÍÅ ÔÏÇÏ, Postscript ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÚÁÂÏÔÉÔÓÑ Ï ÓÏÈÒÁÎÅÎÉÉ
-×ÙÓÏËÏÕÒÏ×ÎÅ×ÏÊ ÓÏÄÅÒÖÁÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ — ÄÅÌÅÎÉÑ ÎÁ ËÁËÉÅ-ÌÉÂÏ
-ÌÏÇÉÞÅÓËÉÅ ÞÁÓÔÉ, ÎÁÐÒÉÍÅÒ.
-</p><p>
-÷Ï ×ÓÅÈ
-ÏÓÔÁÌØÎÙÈ ÓÍÙÓÌÁÈ ÏÎ ÓÏ×ÅÒÛÅÎÎÏ ÚÁÍÅÞÁÔÅÌÅÎ — ÛÉÒÏËÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎ, ÅÓÔØ
-Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÊ ËÏÄ ÄÌÑ ÉÎÔÅÒÐÒÅÔÁÃÉÉ (Ghostscript), ËÁÒÔÉÎËÉ
-ÐÅÒÅÄÁÀÔÓÑ × ÔÏÍ ÖÅ ÐÏÔÏËÅ, ÞÔÏ É ÔÅËÓÔ.
-</p><p>
-Display PDF ÕÖÅ ÇÏÒÁÚÄÏ ÌÕÞÛÅ, ÞÅÍ Display Postscript, ÐÏÓËÏÌØËÕ PDF -
-ÑÚÙË ÐÒÅÉÍÕÝÅÓÔ×ÅÎÎÏ ÄÅËÌÁÒÁÔÉ×ÎÙÊ, Á ÐÒÏÇÒÁÍÍÙ ÎÁ ÄÅËÌÁÒÁÔÉ×ÎÙÈ ÑÚÙËÁÈ
-ÇÏÒÁÚÄÏ ÌÕÞÛÅ ÐÏÄÄÁÀÔÓÑ Á×ÔÏÍÁÔÉÚÉÒÏ×ÁÎÎÏÍÕ ÁÎÁÌÉÚÕ, ÞÅÍ ÐÒÏÇÒÁÍÍÙ ÎÁ
-ÐÒÏÃÅÄÕÒÎÙÈ. åÓÔØ × PDF É ÍÉÎÉÍÁÌØÎÙÅ ÓÒÅÄÓÔ×Á ÓÔÒÕËÔÕÒÉÒÏ×ÁÎÉÑ,
-ÎÁÐÒÉÍÅÒ ÇÉÐÅÒÓÓÙÌËÉ. îÏ ÔÕÔ ÇÏÒÁÚÄÏ ÈÕÖÅ ËÁË ÓÏ ÓÒÅÄÓÔ×ÁÍÉ ÒÅÎÄÅÒÉÎÇÁ, ÈÏÔÑ
-Alladin (Á ÔÅÐÅÒØ ÕÖÅ É GNU) Ghostscript Ó ÜÔÉÍ ÓÐÒÁ×ÌÑÅÔÓÑ, É ÏÓÏÂÅÎÎÏ
-ÓÏ ÓÒÅÄÓÔ×ÁÍÉ ÇÅÎÅÒÁÃÉÉ. ëÒÏÍÅ pdftex É ÔÏÇÏ ÖÅ Ghostscript ÎÉÞÅÇÏ É
-ÎÅÔ.
-</p><p>
-ðÏÐÒÏÂÕÅÍ ÚÁÊÔÉ Ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ — ÓÏ ÓÔÏÒÏÎÙ ÑÚÙËÏ× ÌÏÇÉÞÅÓËÏÊ
-ÒÁÚÍÅÔËÉ. óÒÁÚÕ ÖÅ × ÇÏÌÏ×Õ ÐÒÉÈÏÄÉÔ SGML Ó ÅÇÏ ÎÁÉÂÏÌÅÅ
-ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍ ×ÁÒÉÁÎÔÏÍ HTML É ÎÁÓÌÅÄÎÉËÏÍ XML. ðÏÈÏÖÅ, ÞÔÏ ÜÔÏ
-ÉÍÅÎÎÏ ÔÏ, ÞÔÏ ÎÁÍ ÎÁÄÏ. ðÒÁ×ÄÁ, × HTML ËÁÒÔÉÎËÉ ÈÒÁÎÑÔÓÑ ÏÔÄÅÌØÎÏ ÏÔ
-ÔÅËÓÔÁ, ÎÏ ËÔÏ ÍÅÛÁÅÔ ÐÒÉÄÕÍÁÔØ ÄÒÕÇÕÀ DTD. úÁÔÏ ÅÓÔØ ÓÒÅÄÓÔ×Á ÓËÏÌØ
-ÕÇÏÄÎÏ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÏÇÏ ÌÏÇÉÞÅÓËÏÇÏ ÓÔÒÕËÔÕÒÉÒÏ×ÁÎÉÑ, ÓÕÝÅÓÔ×ÅÎÎÏ
-ÕÐÒÏÝÁÀÝÉÅ ÏÂßÑÓÎÅÎÉÅ ÐÒÏÇÒÁÍÍÅ ÔÏÇÏ, ÞÔÏ ÎÁÍ ÏÔ ÎÅÅ ÎÕÖÎÏ.
-</p><p>
-åÝÅ ÏÄÎÉÍ, ÎÅÏÖÉÄÁÎÎÙÍ, ËÁÎÄÉÄÁÔÏÍ ÎÁ ÒÏÌØ ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÓÐÏÓÏÂÁ
-ÐÒÅÄÓÔÁ×ÌÅÎÉÑ Ñ×ÌÑÅÔÓÑ X-ÐÒÏÔÏËÏÌ. ó ÏÞÅ×ÉÄÎÏÓÔØÀ, ×ÓÅ ÞÔÏ ÍÏÖÎÏ
-ÐÏËÁÚÁÔØ ÎÁ ÜËÒÁÎÅ, ÍÏÖÎÏ ÐÒÅÄÓÔÁ×ÉÔØ × ×ÉÄÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ËÏÍÁÎÄ
-ÜÔÏÇÏ ÑÚÙËÁ. âÏÌÅÅ ÔÏÇÏ, Ó ÐÏÑ×ÌÅÎÉÅÍ Xprt ÏÎ ÔÅÐÅÒØ ÇÏÄÉÔÓÑ É ËÁË ÑÚÙË
-ÏÐÉÓÁÎÉÑ ÓÔÒÁÎÉÃ. ìÀÂÁÑ ÓÕÝÅÓÔ×ÕÀÝÁÑ ÐÒÏÇÒÁÍÍÁ ÐÏÄ Unix ÕÍÅÅÔ ÅÇÏ
-ÇÅÎÅÒÉÒÏ×ÁÔØ. åÄÉÎÓÔ×ÅÎÎÙÊ ÎÅÄÏÓÔÁÔÏË — ÎÉËÔÏ ÎÅ ÐÙÔÁÌÓÑ ÎÁÐÉÓÁÔØ
-ÐÒÏÇÒÁÍÍÕ ÏÂÒÁÂÏÔËÉ, ËÏÔÏÒÁÑ ÎÅ ÂÙÌÁ ÂÙ X-ÓÅÒ×ÅÒÏÍ. ë ÔÏÍÕ ÖÅ, ×
-X-ÐÒÏÔÏËÏÌÅ ÐÏÔÏË ÓÏÂÙÔÉÊ ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ Ë ÐÒÏÇÒÁÍÍÅ ÏÞÅÎØ ÎÅ ÐÏÈÏÖ
-ÎÁ ÐÏÔÏË ÓÏÂÙÔÉÊ ÏÔ ÐÒÏÇÒÁÍÍÙ Ë ÐÏÌØÚÏ×ÁÔÅÌÀ (è-ÓÅÒ×ÅÒÕ).
-</p><p>
-é ÅÝÅ ÏÄÉÎ ÎÅÔÒÉ×ÉÁÌØÎÙÊ ËÁÎÄÉÄÁÔ:
+Естественно, что реальная среда, построенная на этих принципах, не будет
+состоять из одних голых кирпичиков. В дистрибутив должно входить
+несколько сотен скриптов, которые будут создавать у пользователя
+впечатление, что у него есть и Netscape и Word и Excel. Но если ему
+вдруг захочется оторвать считалку формул от электронной таблицы и
+воткнуть ее (вместе с sql-интерфейсом) внутрь текстового документа, это
+должно делаться даже не написанием пяти строк, а несколькими движениями
+мыши. Интересная метафора на эту тему была реализована в свое время во
+FrameWork — у каждого окна была лицевая сторона (примерно то, что
+окажется на принтере) и изнанка (макрос который это генерирует).
+</p><p>
+Интересно, что последовательная реализация этой концепции может привести
+к существенному уменьшению размеров дистрибутива. Вы никогда не
+задумывались сколько разных http-клиентов входит в типичный дистрибутив
+Linux? Сходу: Netscape, Lynx, wget, http-пакет для Tcl, libwww-perl.
+А ведь хватило бы одного, но хорошего. И так для всего остального.
+</p><p>
+Предвижу возражения, что описанная система — рай для программиста, но не
+для пользователя. Пользователю не нужны reusable components — ему
+подавай гоÑ\82овÑ\8bе пÑ\80иложениÑ\8f. Ð\94а, но... Ð\95Ñ\81ли Ñ\81иÑ\81Ñ\82ема пÑ\80едÑ\81Ñ\82авлÑ\8fеÑ\82 Ñ\81обой
+одно большое средство для быстрой разработки приложений, то за
+поÑ\81ледними дело не Ñ\81Ñ\82анеÑ\82 — найдеÑ\82Ñ\81Ñ\8f немало (гоÑ\80аздо болÑ\8cÑ\88е Ñ\87ем
+участников «базара» сейчас) людей которые за деньги, для удовлетворения
+собственных потребностей, и просто ради самовыражения будут эти самые
+пÑ\80иложениÑ\8f клепаÑ\82Ñ\8c. Ð\9fÑ\80авда, Ñ\8dÑ\82о должна бÑ\8bÑ\82Ñ\8c Ñ\81Ñ\80еда Ñ\80азÑ\80абоÑ\82ки пÑ\80иложений,
+которая соотносится с существующими Delphi и C Builder-ами, примерно как
+«Среда программирования Unix» времен Кернигана и Пайка
+(shell+awk+yacc+C) соотносилась с распространенными в те времена языками
+типа Fortran и Basic.
+</p><p>
+Посмотрим, какими же средствами мы располагаем сейчас, для того, чтобы
+попÑ\8bÑ\82аÑ\82Ñ\8cÑ\81Ñ\8f Ñ\80еализоваÑ\82Ñ\8c подобнÑ\83Ñ\8e идеÑ\8e. Ð\9dаÑ\87нем Ñ\81 Ñ\83нивеÑ\80Ñ\81алÑ\8cного Ñ\81поÑ\81оба
+пÑ\80едÑ\81Ñ\82авлениÑ\8f инÑ\84оÑ\80маÑ\86ии. Ð\92 NextStep попÑ\8bÑ\82алиÑ\81Ñ\8c Ñ\81 Ñ\8dÑ\82ой Ñ\86елÑ\8cÑ\8e
+использовать Display Postscript. К сожалению, крупным недостатком
+Postscript Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f Ñ\82о, Ñ\87Ñ\82о Ñ\8dÑ\82о полноÑ\86еннÑ\8bй пÑ\80оÑ\86едÑ\83Ñ\80нÑ\8bй Ñ\8fзÑ\8bк, и
+пÑ\80едÑ\81Ñ\82авиÑ\82Ñ\8c Ñ\81ебе как вÑ\8bглÑ\8fдиÑ\82 поÑ\81Ñ\82Ñ\81кÑ\80ипÑ\82овÑ\81кий Ñ\84айл, не
+пÑ\80оинÑ\82еÑ\80пÑ\80еÑ\82иÑ\80овав его полноÑ\81Ñ\82Ñ\8cÑ\8e, пÑ\80инÑ\86ипиалÑ\8cно нелÑ\8cзÑ\8f. Ð\9fоÑ\8dÑ\82омÑ\83
+Postscript совершенно не подходит для программной обработки.
+Кроме того, Postscript совершенно не заботится о сохранении
+высокоуровневой содержательной информации — деления на какие-либо
+логические части, например.
+</p><p>
+Во всех
+остальных смыслах он совершенно замечателен — широко распространен, есть
+свободно распространяемый код для интерпретации (Ghostscript), картинки
+пеÑ\80едаÑ\8eÑ\82Ñ\81Ñ\8f в Ñ\82ом же поÑ\82оке, Ñ\87Ñ\82о и Ñ\82екÑ\81Ñ\82.
+</p><p>
+Display PDF уже гораздо лучше, чем Display Postscript, поскольку PDF -
+Ñ\8fзÑ\8bк пÑ\80еимÑ\83Ñ\89еÑ\81Ñ\82венно деклаÑ\80аÑ\82ивнÑ\8bй, а пÑ\80огÑ\80аммÑ\8b на деклаÑ\80аÑ\82ивнÑ\8bÑ\85 Ñ\8fзÑ\8bкаÑ\85
+гораздо лучше поддаются автоматизированному анализу, чем программы на
+пÑ\80оÑ\86едÑ\83Ñ\80нÑ\8bÑ\85. Ð\95Ñ\81Ñ\82Ñ\8c в PDF и минималÑ\8cнÑ\8bе Ñ\81Ñ\80едÑ\81Ñ\82ва Ñ\81Ñ\82Ñ\80Ñ\83кÑ\82Ñ\83Ñ\80иÑ\80ованиÑ\8f,
+например гиперссылки. Но тут гораздо хуже как со средствами рендеринга, хотя
+Alladin (а теперь уже и GNU) Ghostscript с этим справляется, и особенно
+со средствами генерации. Кроме pdftex и того же Ghostscript ничего и
+нет.
+</p><p>
+Попробуем зайти с другой стороны — со стороны языков логической
+разметки. Сразу же в голову приходит SGML с его наиболее
+распространенным вариантом HTML и наследником XML. Похоже, что это
+именно то, что нам надо. Правда, в HTML картинки хранятся отдельно от
+текста, но кто мешает придумать другую DTD. Зато есть средства сколь
+угодно высокоуровневого логического структурирования, существенно
+упрощающие объяснение программе того, что нам от нее нужно.
+</p><p>
+Еще одним, неожиданным, кандидатом на роль универсального способа
+пÑ\80едÑ\81Ñ\82авлениÑ\8f Ñ\8fвлÑ\8fеÑ\82Ñ\81Ñ\8f X-пÑ\80оÑ\82окол. С оÑ\87евидноÑ\81Ñ\82Ñ\8cÑ\8e, вÑ\81е Ñ\87Ñ\82о можно
+показаÑ\82Ñ\8c на Ñ\8dкÑ\80ане, можно пÑ\80едÑ\81Ñ\82авиÑ\82Ñ\8c в виде поÑ\81ледоваÑ\82елÑ\8cноÑ\81Ñ\82и команд
+этого языка. Более того, с появлением Xprt он теперь годится и как язык
+описания страниц. Любая существующая программа под Unix умеет его
+генерировать. Единственный недостаток — никто не пытался написать
+пÑ\80огÑ\80аммÑ\83 обÑ\80абоÑ\82ки, коÑ\82оÑ\80аÑ\8f не бÑ\8bла бÑ\8b X-Ñ\81еÑ\80веÑ\80ом. Ð\9a Ñ\82омÑ\83 же, в
+X-пÑ\80оÑ\82околе поÑ\82ок Ñ\81обÑ\8bÑ\82ий оÑ\82 полÑ\8cзоваÑ\82елÑ\8f к пÑ\80огÑ\80амме оÑ\87енÑ\8c не поÑ\85ож
+на поток событий от программы к пользователю (Х-серверу).
+</p><p>
+И еще один нетривиальный кандидат:
<pre>
.c create rectangle 107.0 81.0 203.0 172.0 -disabledwidth 0 -tags {Rectangle obj utag1}
.c create line 108.0 81.0 158.0 18.0 202.0 82.0 -joinstyle miter -tags {Line obj utag2}
} -tags {text obj utag5}
</pre>
<p>
-þÔÏ ÜÔÏ ÔÁËÏÅ ÐÏ-×ÁÛÅÍÕ? ÷ÅËÔÏÒÎÙÊ ÇÒÁÆÉÞÅÓËÉÊ ÆÏÒÍÁÔ? ðÒÏÇÒÁÍÍÁ?
-é ÔÏ É ÄÒÕÇÏÅ — ÜÔÏ ÒÉÓÕÎÏË, ÓÄÅÌÁÎÎÙÊ × ÇÒÁÆÉÞÅÓËÏÊ ÐÒÏÇÒÁÍÍÅ tkpaint,
-ËÏÔÏÒÙÊ ÎÁ ÓÁÍÏÍ ÄÅÌÅ Ñ×ÌÑÅÔÓÑ ÐÒÏÇÒÁÍÍÏÊ ÎÁ ÑÚÙËÅ Tcl (ÎÁ ËÏÔÏÒÏÍ
-ÎÁÐÉÓÁÎ ÓÁÍ Tkpaint).
-</p><p>
-ôÅÐÅÒØ Ï ÔÏÍ, ÞÔÏ ÎÅ Ñ×ÌÑÅÔÓÑ ÄÏËÕÍÅÎÔÏÍ — ÍÅÎÀ, ÄÉÁÌÏÇÏ×ÏÅ ÏËÎÏ.
-úÁÍÅÔÉÍ, ÞÔÏ ÎÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ÐÏÄÏÂÎÙÈ ×ÅÝÅÊ ÕÈÏÄÉÔ ÌØ×ÉÎÁÑ ÄÏÌÑ
-ÔÒÕÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ RAD-ÓÉÓÔÅÍ, ÈÏÔÑ ËÁÚÁÌÏÓØ ÂÙ ×ÏÔ ÞÔÏ RAD-ÉÎÓÔÒÕÍÅÎÔÙ
-ÄÅÌÁÀÔ ÈÏÒÏÛÏ, ÔÁË ÜÔÏ ÄÉÁÌÏÇÏ×ÙÅ ÏËÎÁ.
-</p><p>
-îÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÎÅ ÔÁË.
-ðÏÒÏÞÅÎ ÓÁÍ ÐÏÄÈÏÄ Ë ÉÎÔÅÒÆÅÊÓÕ ËÁË Ë ËÁÒÔÉÎËÅ. ðÏÌØÚÏ×ÁÔÅÌØ ÔÉÐÉÞÎÏÇÏ
-Delphi ÒÁÓÓÕÖÄÁÅÔ ÔÁË «ÒÁÚÍÅÓÔÉÍ ÚÄÅÓØ ×ÏÔ ÜÔÏÔ ÉÎÔÅÒÆÅÊÓÎÙÊ ÜÌÅÍÅÎÔ. ïÎ
-ÂÕÄÅÔ ÄÅÌÁÔØ ÔÏ-ÔÏ É ÔÏ-ÔÏ». ðÒÉ ÜÔÏÍ ÍÉÎÉÍÁÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ, ÔÁËÉÅ ËÁË
-ÐÅÒÅÈÏÄ Ë ÄÒÕÇÏÍÕ ÛÒÉÆÔÕ ÐÒÉ ÓÏÚÄÁÎÉÉ ÎÁÃÉÏÎÁÌØÎÏÊ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ, ÉÌÉ
-Õ×ÅÌÉÞÅÎÉÅ ÒÁÚÍÅÒÁ ÐÏÌÑ âä ÐÒÉ×ÏÄÑÔ Ë ÐÏÌÎÏÍÕ ÒÁÚ×ÁÌÕ ÔÝÁÔÅÌØÎÏ
-ÐÒÏÄÕÍÁÎÎÏÇÏ ×ÎÅÛÎÅÇÏ ×ÉÄÁ ÏËÎÁ.
-</p><p>
-îÅÓËÏÌØËÏ ÂÏÌÅÅ ÒÁÚÕÍÎÙÍ ÐÏÄÈÏÄÏÍ
-ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ geometry manager, ËÁË × Tk ÉÌÉ Xview, ËÏÇÄÁ
-ÒÁÓÐÏÌÏÖÅÎÉÅ ×ÉÄÉÍÙÈ ÜÌÅÍÅÎÔÏ× ÏÐÒÅÄÅÌÑÅÔÓÑ × ÔÅÒÍÉÎÁÈ ÉÈ ÏÔÎÏÓÉÔÅÌØÎÏÇÏ
-ÐÏÌÏÖÅÎÉÑ «×ÏÔ ÜÔÁ ËÎÏÐËÁ ÐÏÄ ÜÔÏÊ ÓÔÒÏËÏÊ ××ÏÄÁ, ×ÙÒÁ×ÎÅÎÎÁÑ ÐÏ ÅÅ
-ÐÒÁ×ÏÊ ÇÒÁÎÉÃÅ». ïÞÅ×ÉÄÎÏ, ÞÔÏ ÔÁËÏÊ ÓÐÏÓÏ ÂÏÌÅÅ ÕÓÔÏÊÞÉ× Ë ÉÚÍÅÎÅÎÉÑÍ
-ÒÁÚÍÅÒÏ× ÛÒÉÆÔÁ ÉÌÉ ÐÏÌÅÊ ÂÁÚÙ ÄÁÎÎÙÈ.
-</p><p>
-ë ÓÏÖÁÌÅÎÉÀ, ÍÏÝÎÙÅ geometry manager'Ù ÉÍÅÀÔ ÏÄÉÎ ÓÕÝÅÓÔ×ÅÎÎÙÊ
-ÎÅÄÏÓÔÁÔÏË — ÏÎÉ ÏÔÕÞÁÀÔ ÐÏÌØÚÏ×ÁÔÅÌÑ ÐÏÌØÚÏ×ÁÔØÓÑ ÇÒÁÆÉÞÅÓËÉÍÉ
-application-designer'ÁÍÉ. úÁÞÅÍ, ÓÐÒÁÛÉ×ÁÅÔÓÑ ÒÉÓÏ×ÁÔØ ÎÁ ÜËÒÁÎÅ ÄÅÓÑÔØ
-ÐÏÌÅÊ ××ÏÄÁ, ËÏÇÄÁ ÔÒÅÈÓÔÒÏÞÎÙÊ ÓËÒÉÐÔ Ó ÃÉËÌÏÍ foreach ÓÁÍ ÉÈ
-ÚÁÍÅÞÁÔÅÌØÎÏ ÎÁÒÉÓÕÅÔ. èÏÔÑ, ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÒÁÚÕÍÎÏÊ ÂÙÌÁ ÂÙ ÇÉÂËÁÑ
-ËÏÍÂÉÎÁÃÉÑ ÏÂÏÉÈ ÐÏÄÈÏÄÏ×. ðÒÏÂÌÅÍÁ × ÔÏÍ, ÞÔÏ ÄÌÑ ÜÔÏÇÏ ÎÕÖÎÏ ÔÏ, ÞÔÏ
-ÎÅ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ ÎÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÎÉ ÏÄÎÉÍ ÓÒÅÄÓÔ×ÏÍ RAD — ×ÏÚÍÏÖÎÏÓÔØ
-ÐÅÒÅËÌÀÞÁÔØÓÑ ÍÅÖÄÕ ÇÒÁÆÉÞÅÓËÉÍ ÄÉÚÁÊÎÏÍ É ÐÉÓÁÎÉÅÍ ËÏÄÁ × ÌÀÂÏÊ ÍÏÍÅÎÔ.
-</p><p>
-îÏ ÜÔÏ ÔÏÌØËÏ ÏÄÎÁ ÓÔÏÒÏÎÁ ×ÏÐÒÏÓÁ. ÷ÔÏÒÁÑ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ ÍÙ,
-ÉÍÅÑ ÇÏÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ Ó ÄÉÁÌÏÇÏ×ÙÍÉ ÏËÎÁÍÉ É ÐÒÏÞÉÍ ÇÒÁÆÉÞÅÓËÉÍ
-ÉÎÔÅÒÆÅÊÓÏÍ, ÈÏÔÉÍ ÕÐÒÁ×ÌÑÔØ ÅÊ ÉÚ ÄÒÕÇÏÊ ÐÒÏÇÒÁÍÍÙ. îÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ
-ÓÕÝÅÓÔ×ÕÅÔ ÔÏÌØËÏ ÏÄÉÎ ÓÐÏÓÏ ÒÅÛÅÎÉÑ ÜÔÏÊ ÐÒÏÂÌÅÍÙ — ×ÓÔÒÁÉ×ÁÎÉÅ ×
-ÐÒÏÇÒÁÍÍÕ ÍÁËÒÏÑÚÙËÁ, Ô.Å. ÎÁÂÏÒÁ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÍÏÖÎÏ ÔÅÍ ÉÌÉ ÉÎÙÍ
-ÓÐÏÓÏÂÏÍ ×ÙÚÙ×ÁÔØ, ÂÕÄØ ÔÏ ×ÓÔÒÏÅÎÎÙÊ ÑÚÙË ÔÉÐÁ WordBasic, ÉÌÉ ÍÅÔÏÄÙ
-ÏÂßÅËÔÁ OLE ÉÌÉ CORBA, ËÏÇÄÁ ÓÁÍ ÐÏ ÓÅÂÅ ÑÚÙË ÒÅÁÌÉÚÏ×ÁÎ ÇÄÅ-ÔÏ
-ÏÔÄÅÌØÎÏ, Á ÐÒÏÇÒÁÍÍÁ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÔÏÌØËÏ ÎÁÂÏÒ ÆÕÎËÃÉÊ.
-</p><p>
-é × ÔÏÍ É × ÄÒÕÇÏÍ ÓÌÕÞÁÅ, ÎÁÂÏÒ ÆÕÎËÃÉÊ ËÁË ÐÒÁ×ÉÌÏ ÓÉÌØÎÏ ÏÔÌÉÞÁÅÔÓÑ
-ÏÔ ÎÁÂÏÒÁ ÐÏÚÉÃÉÊ ÍÅÎÀ, Á ÎÁÂÏÒ ÉÈ ÐÁÒÁÍÅÔÒÏ× ÏÔ ÎÁÂÏÒÁ ÐÏÌÅÊ ××ÏÄÁ ×
-ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÄÉÁÌÏÇÏ×ÙÈ ÏËÎÁÈ. äÁ, ËÏÎÅÞÎÏ, ÅÓÔØ ÏÐÅÒÁÃÉÉ, ËÏÔÏÒÙÅ
-ÍÏÇÕÔ ÂÙÔØ ÉÎÔÅÒÅÓÎÙ ÒÁÚÒÁÂÏÔÞÉËÁÍ ÐÒÉÌÏÖÅÎÉÊ, ÎÏ ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÎÕÖÎÙ
-ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ÎÁÐÒÉÍÅÒ «ÏÔËÒÙÔØ ÆÁÊÌ É ÐÏÌÕÞÉÔØ ÅÇÏ ÄÅÓËÒÉÐÔÏÒ».
-</p><p>
-îÏ, ÐÒÉÎÃÉÐ ÐÅÒ×ÙÊ: ×ÓÅ ÞÔÏ ÍÏÖÅÔ ÓÄÅÌÁÔØ ÐÏÌØÚÏ×ÁÔÅÌØ, ÄÏÌÖÎÁ ÉÍÅÔØ
-×ÏÚÍÏÖÎÏÓÔØ ÓÄÅÌÁÔØ ÐÒÏÇÒÁÍÍÁ. âÅÚ ÒÅÁÌÉÚÁÃÉÉ ÜÔÏÇÏ ÐÒÉÎÃÉÐÁ ÒÅÁÌÉÚÏ×ÁÔØ
-ÂÁÚÏ×ÕÀ ÉÄÅÀ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÑ ËÁË ÉÎÔÅÇÒÁÃÉÉ ÓÕÝÅÓÔ×ÕÀÝÉÈ
-ÉÎÓÔÒÕÍÅÎÔÏ×, ÎÅ ÕÄÁÓÔÓÑ.
-</p><p>
-ðÒÉÎÃÉÐ ×ÔÏÒÏÊ: åÓÌÉ ÓÕÝÅÓÔ×ÕÀÔ ÏÐÅÒÁÃÉÉ, ÄÏÓÔÕÐÎÙÅ ÔÏÌØËÏ ÉÚ ÑÚÙËÁ
-ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÎÏ ÎÅ ÞÅÒÅÚ GUI, ÔÏ ÄÏÌÖÎÁ ÂÙÔØ ËÏÎÓÏÌØ, Ó ËÏÔÏÒÏÊ
-ËÏÍÁÎÄÙ ÜÔÏÇÏ ÑÚÙËÁ ÍÏÖÎÏ ××ÅÓÔÉ. âÅÚ ÒÅÁÌÉÚÁÃÉÉ ÜÔÏÇÏ ÐÒÉÎÃÉÐÁ ÂÕÄÅÔ
-ÎÅÕÄÏÂÎÏ ÏÔÌÁÖÉ×ÁÔØÓÑ É ÉÚÕÞÁÔØ ÐÏ×ÅÄÅÎÉÅ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÐÒÉÌÏÖÅÎÉÊ.
-éÚ×ÅÓÔÎÏ, ÞÔÏ ÐÅÒ×ÙÍ ÐÕÎËÔÏÍ × ÒÁÚÄÅÌÅ BUGS ÌÀÂÏÇÏ man ÄÏÌÖÎÏ ÉÄÔÉ
-«User never reads documentation». ðÏÜÔÏÍÕ ÎÁÄÏ ÄÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÀ
-×ÏÚÍÏÖÎÏÓÔØ ÉÚÕÞÁÔØ ÓÉÓÔÅÍÕ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÍ ÐÕÔÅÍ.
-</p><p>
-ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ × DOS ÓÕÝÅÓÔ×Ï×ÁÌ ËÏÍÁÎÄÎÙÊ ÑÚÙË, ÓÌÁÂÅÎØËÉÊ, ÎÏ
-ÑÚÙË. ÷ Windows 3.1 ÂÙÌ Macro Recorder — ÐÏÐÙÔËÁ ÒÅÁÌÉÚÏ×ÁÔØ ÉÄÅÀ ÚÁÐÉÓÉ
-ÓÃÅÎÁÒÉÅ× ÒÁÂÏÔÙ. ÷ Windows 95 ÅÇÏ ÕÖÅ ÎÅÔ. ðÏÐÙÔËÁ ÒÅÁÌÉÚÏ×ÁÔØ ÐÉÓÁÎÉÅ
-ÓËÒÉÐÔÏ× ÐÕÔÅÍ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÑ ÄÅÊÓÔ×ÉÊ ÐÏÌØÚÏ×ÁÔÅÌÑ × GUI-ÓÒÅÄÅ
-ÂÌÉÓÔÁÔÅÌØÎÏ ÐÒÏ×ÁÌÉÌÁÓØ. ðÏÞÅÍÕ? ðÏÔÏÍÕ ÞÔÏ ÆÉËÓÉÒÏ×ÁÌÉÓØ ÓÌÉÛËÏÍ
-ÎÉÚËÏÕÒÏ×ÎÅ×ÙÅ ÓÏÂÙÔÉÑ — ÎÁÖÁÔÉÑ ËÎÏÐÏË ÍÙÛÉ × ÔÁËÉÈ-ÔÏ ËÏÏÒÄÉÎÁÔÁÈ. üÔÏ
-ÓÕÝÅÓÔ×ÅÎÎÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÔÅÈ ÐÏÎÑÔÉÊ, ËÏÔÏÒÙÍÉ ÏÐÅÒÉÒÕÅÔ ÐÏÌØÚÏ×ÁÔÅÌØ
-«÷ÙÔÁÝÉÍ ÎÁ×ÅÒÈ ÏËÎÏ Word É ×ÙÂÅÒÅÍ ÐÏÚÉÃÉÀ Open × ÍÅÎÀ File». åÓÌÉ ÂÙ
-ÍÁËÒÏÓ ÚÁÐÉÓÁÎÎÙÊ ÍÁËÒÏ-ÒÅËÏÒÄÅÒÏÍ ×ÙÇÌÑÄÅÌ ÂÙ ËÁË
+Что это такое по-вашему? Векторный графический формат? Программа?
+И то и другое — это рисунок, сделанный в графической программе tkpaint,
+который на самом деле является программой на языке Tcl (на котором
+написан сам Tkpaint).
+</p><p>
+Теперь о том, что не является документом — меню, диалоговое окно.
+Заметим, что на программирование подобных вещей уходит львиная доля
+труда пользователей RAD-систем, хотя казалось бы вот что RAD-инструменты
+делают хорошо, так это диалоговые окна.
+</p><p>
+На самом деле это не так.
+Порочен сам подход к интерфейсу как к картинке. Пользователь типичного
+Delphi рассуждает так «разместим здесь вот этот интерфейсный элемент. Он
+будет делать то-то и то-то». При этом минимальные изменения, такие как
+пеÑ\80еÑ\85од к дÑ\80Ñ\83гомÑ\83 Ñ\88Ñ\80иÑ\84Ñ\82Ñ\83 пÑ\80и Ñ\81оздании наÑ\86ионалÑ\8cной веÑ\80Ñ\81ии пÑ\80огÑ\80аммÑ\8b, или
+увеличение размера поля БД приводят к полному развалу тщательно
+пÑ\80одÑ\83манного внеÑ\88него вида окна.
+</p><p>
+Несколько более разумным подходом
+пÑ\80едÑ\81Ñ\82авлÑ\8fеÑ\82Ñ\81Ñ\8f иÑ\81полÑ\8cзование geometry manager, как в Tk или Xview, когда
+расположение видимых элементов определяется в терминах их относительного
+положениÑ\8f «Ð²Ð¾Ñ\82 Ñ\8dÑ\82а кнопка под Ñ\8dÑ\82ой Ñ\81Ñ\82Ñ\80окой ввода, вÑ\8bÑ\80авненнаÑ\8f по ее
+пÑ\80авой гÑ\80аниÑ\86е». Ð\9eÑ\87евидно, Ñ\87Ñ\82о Ñ\82акой Ñ\81поÑ\81об более Ñ\83Ñ\81Ñ\82ойÑ\87ив к изменениÑ\8fм
+размеров шрифта или полей базы данных.
+</p><p>
+К сожалению, мощные geometry manager'ы имеют один существенный
+недостаток — они отучают пользователя пользоваться графическими
+application-designer'ами. Зачем, спрашивается рисовать на экране десять
+полей ввода, когда Ñ\82Ñ\80еÑ\85Ñ\81Ñ\82Ñ\80оÑ\87нÑ\8bй Ñ\81кÑ\80ипÑ\82 Ñ\81 Ñ\86иклом foreach Ñ\81ам иÑ\85
+замечательно нарисует. Хотя, на самом деле разумной была бы гибкая
+комбинация обоих подходов. Проблема в том, что для этого нужно то, что
+не обеспечивается на данный момент ни одним средством RAD — возможность
+пеÑ\80еклÑ\8eÑ\87аÑ\82Ñ\8cÑ\81Ñ\8f междÑ\83 гÑ\80аÑ\84иÑ\87еÑ\81ким дизайном и пиÑ\81анием кода в лÑ\8eбой моменÑ\82.
+</p><p>
+Но это только одна сторона вопроса. Вторая заключается в том, что мы,
+имея готовую программу с диалоговыми окнами и прочим графическим
+интерфейсом, хотим управлять ей из другой программы. На данный момент
+существует только один способ решения этой проблемы — встраивание в
+пÑ\80огÑ\80аммÑ\83 макÑ\80оÑ\8fзÑ\8bка, Ñ\82.е. набоÑ\80а команд, коÑ\82оÑ\80Ñ\8bе можно Ñ\82ем или инÑ\8bм
+способом вызывать, будь то встроенный язык типа WordBasic, или методы
+объекта OLE или CORBA, когда сам по себе язык реализован где-то
+отдельно, а программа предоставляет только набор функций.
+</p><p>
+И в том и в другом случае, набор функций как правило сильно отличается
+от набора позиций меню, а набор их параметров от набора полей ввода в
+соответствующих диалоговых окнах. Да, конечно, есть операции, которые
+могут быть интересны разработчикам приложений, но совершенно не нужны
+полÑ\8cзоваÑ\82елÑ\8fм, напÑ\80имеÑ\80 «Ð¾Ñ\82кÑ\80Ñ\8bÑ\82Ñ\8c Ñ\84айл и полÑ\83Ñ\87иÑ\82Ñ\8c его деÑ\81кÑ\80ипÑ\82оÑ\80».
+</p><p>
+Но, принцип первый: все что может сделать пользователь, должна иметь
+возможность сделать программа. Без реализации этого принципа реализовать
+базовую идею разработки приложения как интеграции существующих
+инструментов, не удастся.
+</p><p>
+Принцип второй: Если существуют операции, доступные только из языка
+пÑ\80огÑ\80аммиÑ\80ованиÑ\8f, но не Ñ\87еÑ\80ез GUI, Ñ\82о должна бÑ\8bÑ\82Ñ\8c конÑ\81олÑ\8c, Ñ\81 коÑ\82оÑ\80ой
+команды этого языка можно ввести. Без реализации этого принципа будет
+неудобно отлаживаться и изучать поведение существующих приложений.
+Известно, что первым пунктом в разделе BUGS любого man должно идти
+«User never reads documentation». Поэтому надо дать пользователю
+возможность изучать систему экспериментальным путем.
+</p><p>
+Обратите внимание, что в DOS существовал командный язык, слабенький, но
+Ñ\8fзÑ\8bк. Ð\92 Windows 3.1 бÑ\8bл Macro Recorder — попÑ\8bÑ\82ка Ñ\80еализоваÑ\82Ñ\8c идеÑ\8e запиÑ\81и
+сценариев работы. В Windows 95 его уже нет. Попытка реализовать писание
+скриптов путем протоколирования действий пользователя в GUI-среде
+блистательно провалилась. Почему? Потому что фиксировались слишком
+низкоуровневые события — нажатия кнопок мыши в таких-то координатах. Это
+существенно отличается от тех понятий, которыми оперирует пользователь
+«Вытащим наверх окно Word и выберем позицию Open в меню File». Если бы
+макрос записанный макро-рекордером выглядел бы как
</p>
<pre>
MaximizeOrStart "winword.exe"
FileDialog.OpenButton invoke
</pre>
<p>
-ÍÏÖÅÔ ÂÙÔØ ÜÔÉÍ É ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÐÏÌØÚÏ×ÁÔØÓÑ. ïÓÏÂÅÎÎÏ ÅÓÌÉ ÐÒÉ
-ÐÏÓÌÅÄÕÀÝÅÍ ÒÅÄÁËÔÉÒÏ×ÁÎÉÉ ÍÁËÒÏÓÁ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÐÒÅÄÏÓÔÁ×ÉÔØ
-ÐÏÌØÚÏ×ÁÔÅÌÀ Ó×ÏÂÏÄÕ ÄÅÊÓÔ×ÉÊ ÎÁ ËÁËÉÈ-ÔÏ ÜÔÁÐÁÈ, ÎÁÐÒÉÍÅÒ
+может быть этим и можно было бы пользоваться. Особенно если при
+поÑ\81ледÑ\83Ñ\8eÑ\89ем Ñ\80едакÑ\82иÑ\80овании макÑ\80оÑ\81а можно бÑ\8bло бÑ\8b пÑ\80едоÑ\81Ñ\82авиÑ\82Ñ\8c
+полÑ\8cзоваÑ\82елÑ\8e Ñ\81вободÑ\83 дейÑ\81Ñ\82вий на какиÑ\85-Ñ\82о Ñ\8dÑ\82апаÑ\85, напÑ\80имеÑ\80
</p>
<pre>
Menu.File.Open invoke
endif
</pre>
<p>
-ÉÌÉ ÎÁÏÂÏÒÏÔ, ÐÏÍÅÓÔÉÔØ ÜÔÉ ÄÅÊÓÔ×ÉÑ ×ÎÕÔÒØ ÃÉËÌÁ, ÓËÁÖÅÍ ÐÏ ×ÓÅÍ ÆÁÊÌÁÍ
-× ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ.
-</p><p>
-úÄÅÓØ ÍÙ ÓÔÁÌËÉ×ÁÅÍÓÑ Ó ÔÏÊ ÖÅ ÐÒÏÂÌÅÍÏÊ, ÞÔÏ É ÐÒÉ ÐÒÏÅËÔÉÒÏ×ÁÎÉÉ
-ÄÉÁÌÏÇÏ×ÙÈ ÏËÏÎ — ÐÏÌØÚÏ×ÁÔÅÌØ ÎÉËÏÇÄÁ ÎÅ ÍÙÓÌÉÔ × ÔÅÒÍÉÎÁÈ ËÏÏÒÄÉÎÁÔ
-ÜËÒÁÎÁ, ÄÁÖÅ ËÏÇÄÁ ÏÎ ÒÉÓÕÅÔ ÍÙÛËÏÊ ÌÉÎÉÀ × ÇÒÁÆÉÞÅÓËÏÍ ÒÅÄÁËÔÏÒÅ.
-</p><p>
-ôÁËÉÍ ÏÂÒÁÚÏÍ, ÓËÌÁÄÙ×ÁÅÔÓÑ ËÏÎÃÅÐÃÉÑ ÐÒÉÎÃÉÐÉÁÌØÎÏ ÎÏ×ÏÇÏ ÐÏÄÈÏÄÁ
-Ë ÕÓÔÒÏÊÓÔ×Õ ÄÅÓËÔÏÐÎÏÊ OS, ËÏÔÏÒÁÑ ÓÏÓÔÏÉÔ × ÓÌÅÄÕÀÝÅÍ:
-</p><p>
-éÍÅÅÔÓÑ ÂÁÚÏ×ÙÊ ÓËÒÉÐÔÏ×ÙÊ ÑÚÙË, ÉÍÅÀÝÉÊ ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ.
-÷ÓÅ ÎÅÏÂÈÏÄÉÍÙÅ ËÏÍÐÏÎÅÎÔÙ ÒÅÁÌÉÚÕÀÔÓÑ ËÁË ÒÁÓÛÉÒÅÎÉÑ ÄÌÑ ÜÔÏÇÏ ÑÚÙËÁ.
-ïÎÉ ÍÏÇÕÔ ÂÙÔØ ËÁË ÏÂßÅËÔÎÏ-ÏÒÉÅÎÔÉÒÏ×ÁÎÎÙÍÉ, ÔÁË É ÎÅÔ. ñ ÓÞÉÔÁÀ, ÞÔÏ
-ïïð ÜÔÏ ÎÅ ÐÁÎÁÃÅÑ, ÔÅÍ ÂÏÌÅÅ × ÓÉÔÕÁÃÉÉ ËÏÇÄÁ ÒÁÂÏÔÁÔØ Ó ÜÔÉÍ ÑÚÙËÏÍ
-ÚÁÞÁÓÔÕÀ ÂÕÄÅÔ ËÏÎÅÞÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ, ËÏÔÏÒÏÍÕ ÌÅÇÞÅ × ËÁÞÅÓÔ×Å
-ÓÏÂÅÓÅÄÎÉËÁ ×ÏÓÐÒÉÎÉÍÁÔØ ËÏÍÐØÀÔÅÒ × ÃÅÌÏÍ É ÆÏÒÍÕÌÉÒÏ×ÁÔØ Ó×ÏÀ ÍÙÓÌØ
-ËÁË «óÄÅÌÁÊ ÔÏ-ÔÏ ×ÏÔ Ó ÜÔÉÍ ÏÂßÅËÔÏÍ», Á ÎÅ «üÊ, ÏÂßÅËÔ, ÓÄÅÌÁÊ ×ÏÔ
-ÜÔÏ», ÏÓÏÂÅÎÎÏ × ÓÉÔÕÁÃÉÑÈ ËÏÇÄÁ ÚÁÄÅÊÓÔ×Ï×ÁÎÏ ÎÅÓËÏÌØËÏ ÏÂßÅËÔÏ×.
-îÁÐÒÉÍÅÒ, ÎÅ ÏÞÅ×ÉÄÎÏ, ÞØÉÍ ÍÅÔÏÄÏÍ ÄÏÌÖÎÏ Ñ×ÌÑÔØÓÑ ËÏÐÉÒÏ×ÁÎÉÅ ÉÚ
-ÏÂßÅËÔÁ × ÏÂßÅËÔ — ÉÓÔÏÞÎÉËÁ ÉÌÉ ÎÁÚÎÁÞÅÎÉÑ.
-</p><p>
-õÒÏ×ÅÎØ ÁÂÓÔÒÁËÃÉÉ, ÎÁ ËÏÔÏÒÏÍ ÐÏÌØÚÏ×ÁÔÅÌØ ÒÁÂÏÔÁÅÔ Ó ÜÔÉÍ ÑÚÙËÏÍ
-ÄÏÌÖÅÎ ÂÙÔØ ÎÅÓËÏÌØËÏ ×ÙÛÅ, ÞÅÍ ÔÏÔ, ËÏÔÏÒÙÊ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ Tcl/Tk ÉÌÉ
+или наоборот, поместить эти действия внутрь цикла, скажем по всем файлам
+в текущей директории.
+</p><p>
+Здесь мы сталкиваемся с той же проблемой, что и при проектировании
+диалоговых окон — пользователь никогда не мыслит в терминах координат
+экрана, даже когда он рисует мышкой линию в графическом редакторе.
+</p><p>
+Таким образом, складывается концепция принципиально нового подхода
+к устройству десктопной OS, которая состоит в следующем:
+</p><p>
+Имеется базовый скриптовый язык, имеющий графический интерфейс.
+Все необходимые компоненты реализуются как расширения для этого языка.
+Они могут быть как объектно-ориентированными, так и нет. Я считаю, что
+ООП это не панацея, тем более в ситуации когда работать с этим языком
+зачастую будет конечный пользователь, которому легче в качестве
+собеседника воспринимать компьютер в целом и формулировать свою мысль
+как «Сделай то-то вот с этим объектом», а не «Эй, объект, сделай вот
+это», особенно в ситуациях когда задействовано несколько объектов.
+Например, не очевидно, чьим методом должно являться копирование из
+объекта в объект — источника или назначения.
+</p><p>
+Уровень абстракции, на котором пользователь работает с этим языком
+должен быть несколько выше, чем тот, который предоставляют Tcl/Tk или
Python.
</p><p>
-äÌÑ ÞÁÓÔÏ ×ÙÐÏÌÎÑÅÍÙÈ ÏÐÅÒÁÃÉÊ, ÔÁËÉÈ ËÁË ÓÏÚÄÁÎÉÅ ÄÉÁÌÏÇÏ×ÏÇÏ ÏËÎÁ,
-Ó×ÑÚÙ×ÁÎÉÅ ÆÏÒÍÙ Ó ÂÁÚÏÊ ÄÁÎÎÙÈ, ÄÏÌÖÎÙ ÓÕÝÅÓÔ×Ï×ÁÔØ ÇÒÁÆÉÞÅÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ.
-÷ ÉÄÅÁÌÅ Õ ËÁÖÄÏÇÏ ÐÒÉÌÏÖÅÎÉÑ ÄÁÎÎÏÊ ÓÉÓÔÅÍÙ ÄÏÌÖÎÁ ÂÙÔØ ËÎÏÐÏÞËÁ ×
-ÚÁÇÏÌÏ×ËÅ ÏËÎÁ «ðÏËÁÚÁÔØ ×ÎÕÔÒÅÎÎÅÅ ÕÓÔÒÏÊÓÔ×Ï», ËÏÔÏÒÁÑ ÐÒÅ×ÒÁÝÁÅÔ
-ÏËÎÏ ÐÒÉÌÏÖÅÎÉÅ × ÏËÎÏ RAD-ÓÉÓÔÅÍÙ. ðÏÓÌÅÄÎÅÅ, ×ÉÄÉÍÏ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ
-ÄÉÁÌÏÇ Ó ÚÁËÌÁÄËÁÍÉ, ÇÄÅ ÍÏÖÎÏ ÐÏÓÍÏÔÒÅÔØ ÉÅÒÁÒÈÉÀ ×ÉÄÇÅÔÏ× ×ÎÕÔÒÉ ÏËÎÁ,
-Ó×ÑÚÉ Ó ÄÒÕÇÉÍÉ ÏÂßÅËÔÁÍÉ × ÓÉÓÔÅÍÅ, ÔÅËÓÔ ËÏÔÏÒÙÊ × ÒÅÚÕÌØÔÁÔÅ
-ÐÏÌÕÞÉÌÓÑ.
-</p><p>
-äÌÑ ×ÓÅÈ ÏÂßÅËÔÏ× × ÓÉÓÔÅÍÅ, ËÏÔÏÒÙÅ ÐÏ ÓÍÙÓÌÕ Ñ×ÌÑÀÔÓÑ ÄÏËÕÍÅÎÔÁÍÉ (Á
-ÔÁËÉÈ ÂÕÄÅÔ ÎÅ ÔÁË ÍÎÏÇÏ, ËÁË × MacOS ÉÌÉ Windows) ÄÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ
-ÓÐÏÓÏ ÐÏÌÕÞÉÔØ ÉÈ ÓÔÁÎÄÁÒÔÎÏÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ, ×ÉÄÉÍÏ ÎÁ ÞÅÍ-ÔÏ ÔÉÐÁ XML,
-É ÄÏÌÖÎÙ ÓÕÝÅÓÔ×Ï×ÁÔØ ÓÒÅÄÓÔ×Á ÏÂÒÁÂÏÔËÉ ÜÔÏÇÏ XML, ÐÏ ÐÒÏÓÔÏÔÅ É
-ÜÆÆÅËÔÉ×ÎÏÓÔÉ ÐÏÄÏÂÎÙÅ grep, awk É sed, ÎÏ ÕÞÉÔÙ×ÁÀÝÉÅ × ÕÄÏÂÎÙÈ ÄÌÑ
-ÐÏÌØÚÏ×ÁÔÅÌÑ ÔÅÒÍÉÎÁÈ ÓÔÒÕËÔÕÒÕ ÜÔÏÇÏ XML.
-</p><p>
-íÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ÉÄÅÁÌØÎÙÍ ÑÚÙËÏÍ ÄÌÑ ÒÅÁÌÉÚÁÃÉÉ ÔÁËÏÊ ÓÉÓÔÅÍÙ Ñ×ÌÑÅÔÓÑ
-Tcl. åÇÏ ÐÒÅÉÍÕÝÅÓÔ×Á:
+Для часто выполняемых операций, таких как создание диалогового окна,
+связывание формы с базой данных, должны существовать графические интерфейсы.
+В идеале у каждого приложения данной системы должна быть кнопочка в
+заголовке окна «Показать внутреннее устройство», которая превращает
+окно приложение в окно RAD-системы. Последнее, видимо представляет собой
+диалог с закладками, где можно посмотреть иерархию видгетов внутри окна,
+связи с другими объектами в системе, текст который в результате
+полÑ\83Ñ\87илÑ\81Ñ\8f.
+</p><p>
+Для всех объектов в системе, которые по смыслу являются документами (а
+таких будет не так много, как в MacOS или Windows) должен существовать
+способ получить их стандартное представление, видимо на чем-то типа XML,
+и должны существовать средства обработки этого XML, по простоте и
+эффективности подобные grep, awk и sed, но учитывающие в удобных для
+полÑ\8cзоваÑ\82елÑ\8f Ñ\82еÑ\80минаÑ\85 Ñ\81Ñ\82Ñ\80Ñ\83кÑ\82Ñ\83Ñ\80Ñ\83 Ñ\8dÑ\82ого XML.
+</p><p>
+Мне кажется, что идеальным языком для реализации такой системы является
+Tcl. Его преимущества:
<ol>
-<li> çÉÂËÉÊ ÓÉÎÔÁËÓÉÓ, ×ÐÌÏÔØ ÄÏ ×ÏÚÍÏÖÎÏÓÔÉ ÒÅÁÌÉÚÁÃÉÉ ÓÏÂÓÔ×ÅÎÎÙÈ
-ÕÐÒÁ×ÌÑÀÝÉÈ ÓÔÒÕËÔÕÒ, ÞÔÏ ÏÂÌÅÇÞÁÅÔ ÓÏÚÄÁÎÉÅ ÑÚÙËÁ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ.
-<li> ðÒÏÓÔÏÔÁ ÒÁÚÂÏÒÁ ÓËÒÉÐÔÏ× ÎÁ Tcl ÓÒÅÄÓÔ×ÁÍÉ ÓÁÍÏÇÏ Tcl, ÞÔÏ ÏÂÌÅÇÞÁÅÔ
-ÓÏÚÄÁÎÉÅ RAD-ËÏÍÐÏÎÅÎÔ, ÓÐÏÓÏÂÎÙÈ ÐÒÏÞÉÔÁÔØ É ÇÒÁÆÉÞÅÓËÉ ÐÒÅÄÓÔÁ×ÉÔØ
-ÐÒÏÉÚ×ÏÌØÎÙÊ ËÏÄ.
-<li> îÁÌÉÞÉÅ ÍÏÝÎÙÈ ÉÎÔÒÏÓÐÅËÔÉ×ÎÙÈ ÆÕÎËÃÉÊ, ËÏÔÏÒÙÅ ÄÅÌÁÀÔ ÎÅÎÕÖÎÙÍ
-ÒÁÚÂÏÒ ËÏÄÁ, ÎÁÐÒÉÍÅÒ ÄÌÑ ÐÏËÁÚÁ ÉÅÒÁÒÈÉÉ ×ÉÄÇÅÔÏ× — ÐÒÏÝÅ ÓÐÒÏÓÉÔØ Õ
-ÓÁÍÉÈ ×ÉÄÇÅÔÏ×.
-<li> îÁÌÉÞÉÅ ÓÉÓÔÅÍÙ ÓÏÐÏÄÞÉÎÅÎÎÙÈ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏ×, ÞÔÏ ÐÏÚ×ÏÌÑÅÔ ÎÅ
-ÚÁÓÏÒÑÔØ ÐÒÏÓÔÒÁÎÓÔ×Ï ÉÍÅÎ ÐÒÉÌÏÖÅÎÉÑ ÆÕÎËÃÉÑÍÉ É ÏÂßÅËÔÁÍÉ RAD-ÓÉÓÔÅÍÙ
-<li> îÁÌÉÞÉÅ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÇÏÔÏ×ÙÈ ËÏÍÐÏÎÅÎÔ, ÈÏÔÑ Python É Perl ×
-ÜÔÏÍ ÏÔÎÏÛÅÎÉÉ ÎÅÓËÏÌØËÏ ÐÒÅ×ÏÓÈÏÄÑÔ Tcl.
+<li> Гибкий синтаксис, вплоть до возможности реализации собственных
+управляющих структур, что облегчает создание языка верхнего уровня.
+<li> Простота разбора скриптов на Tcl средствами самого Tcl, что облегчает
+создание RAD-компонент, способных прочитать и графически представить
+пÑ\80оизволÑ\8cнÑ\8bй код.
+<li> Наличие мощных интроспективных функций, которые делают ненужным
+разбор кода, например для показа иерархии видгетов — проще спросить у
+самих видгетов.
+<li> Наличие системы соподчиненных интерпретаторов, что позволяет не
+засорять пространство имен приложения функциями и объектами RAD-системы
+<li> Наличие большого количества готовых компонент, хотя Python и Perl в
+этом отношении несколько превосходят Tcl.
</ol>
<p>
-÷ÓÅ ×ÙÛÅÐÅÒÅÞÉÓÌÅÎÎÏÅ ÎÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÎÁ Tcl ÄÏÌÖÎÙ ÂÙÔØ ÎÁÐÉÓÁÎÙ ×ÓÅ
-ËÏÍÐÏÎÅÎÔÙ ÓÉÓÔÅÍÙ. óËÏÒÅÅ ÎÁÏÂÏÒÏÔ, ÂÏÌØÛÁÑ ÞÁÓÔØ ×ÅÝÅÊ, ÄÌÑ ËÏÔÏÒÙÈ
-ËÒÉÔÉÞÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÄÏÌÖÎÙ ÂÙÔØ ÎÁÐÉÓÁÎÙ ÎÁ C ÉÌÉ C++, ÎÏ ×
-×ÉÄÅ ÒÁÓÛÉÒÅÎÉÊ Tcl.
+Все вышеперечисленное не означает, что на Tcl должны быть написаны все
+компоненты системы. Скорее наоборот, большая часть вещей, для которых
+критична производительность, должны быть написаны на C или C++, но в
+виде расширений Tcl.
</p>
-<h2>ëÏÍÍÅÎÔÁÎÉÉ ÞÉÔÁÔÅÌÅÊ</h2>
+<h2>Комментании читателей</h2>
<pre>
From zappa@isssph.kiae.ru Fri Jun 2 19:34:41 2000
From: Andrei M. Zaparii <zappa@isssph.kiae.ru>
Subject: http://www.ice.ru/~vitus/ice/thoughts/true_unix_gui.txt
X-Mailer: Mozilla 4.61 [en] (Win95; I)
-äÏÂÒÏÇÏ ×ÒÅÍÅÎÉ ÓÕÔÏË!
-åÓÌÉ ÷ÁÓ ÉÎÔÅÒÅÓÕÅÔ ÍÏ£ ÍÎÅÎÉÅ, ÔÏ:
-1. ÷Ù, ËÁË ÍÎÅ ËÁÖÅÔÓÑ, ÕÐÕÓÔÉÌÉ ÏÄÉÎ ÉÚ ×ÁÖÎÙÈ ÍÏÍÅÎÔÏ×. éÌÉ, ×Ï ×ÓÑËÏÍ
-ÓÌÕÞÁÅ, ÎÅ ÁËÃÅÎÔÉÒÏ×ÁÌÉ ÎÁ Î£Í ×ÎÉÍÁÎÉÅ. á ÉÍÅÎÎÏ, ÐÒÏÐÏÒÃÉÏÎÁÌØÎÏÓÔØ
-×ÏÚÍÏÖÎÏÓÔÅÊ ÚÁÔÒÁÞÅÎÎÏÍÕ ÎÁ ÏÂÕÞÅÎÉÅ ×ÒÅÍÅÎÉ. UNIX way ÔÅÍ ÍÎÅ É ÎÒÁ×ÉÔÓÑ,
-ÞÔÏ Ñ ÍÏÇÕ ÉÚÕÞÁÔØ ÒÏ×ÎÏ ÓÔÏÌØËÏ, ÓËÏÌØËÏ ÍÎÅ ÎÁÄÏ. ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ ×
-ÓÕÝÅÓÔ×ÕÀÝÉÈ ÎÁ ÓÅÇÏÄÎÑ UNIX-ÁÈ Ñ ÍÏÇÕ ÒÁÚÏÂÒÁÔØÓÑ ÎÁ ÓÔÏÌØËÏ, ÎÁ ÓËÏÌØËÏ ÍÎÅ
-ÜÔÏ ÎÕÖÎÏ ÄÌÑ ÒÅÛÅÎÉÑ ÚÁÄÁÞÉ. é ÜÔÏÔ ÆÁËÔ É ÄÅÌÁÅÔ ÄÌÑ ÍÅÎÑ UNIX ËÏÎÃÅÐÃÉÀ
-ÎÁÉÂÏÌÅÅ ÐÒÉ×ÌÅËÁÔÅÌØÎÏÊ. ðÏ ËÒÁÊÎÅÊ ÍÅÒÅ Ó ÔÏÞËÉ ÚÒÅÎÉÑ ÜÆÆÅËÔÉ×ÎÏÓÔÉ, ÔÏ
-ÅÓÔØ — ÏÔÎÏÛÅÎÉÑ ÓÜËÏÎÏÍÌÅÎÎÏÇÏ ×ÒÅÍÅÎÉ ËÏ ×ÒÅÍÅÎÉ ÒÁÚÒÁÂÏÔËÉ.
-2. éÍÅÎÎÏ ÒÁÚÄÒÏÂÌÅÎÎÏÓÔØ ÓÔÁÎÄÁÒÔÎÙÈ ÓÒÅÄÓÔ× UNIX ÎÁ ÍÁÌÅÎØËÉÅ ÉÎÓÔÒÕÍÅÎÔÉËÉ
-ÐÏÚ×ÏÌÑÅÔ ÔÁËÉÍ ËÁË Ñ ÌÀÄÑÍ ÚÁÂÏÔÉÔØÓÑ Ï ÂÕÄÕÝÅÍ. ñ ÎÅ ÍÏÇÕ ÐÏ×ÌÉÑÔØ ÎÁ ÔÏ,
-ËÁËÉÅ ÉÎÓÔÒÕÍÅÎÔÁÌØÎÙÅ ÓÒÅÄÓÔ×Á ÂÕÄÕÔ ÄÏÓÔÕÐÎÙ × ÂÌÉÖÁÊÛÅÍ ÂÕÄÕÝÅÍ × ÓÒÅÄÅ MS
-Windows. åÓÌÉ ÍÏ£ ÒÅÛÅÎÉÅ ÂÕÄÅÔ ÕÄÁÞÎÙÍ, ÔÏ ÏÎÏ ÂÙÓÔÒÏ ÂÕÄÅÔ ÐÏÄÈ×ÁÞÅÎÏ ×
-ÓÒÅÄÅ UNIX, É ÎÅ ÔÏÌØËÏ fsf, É Ñ × ÉÔÏÇÅ ÐÏÌÕÞÕ ÉÎÓÔÒÕÍÅÎÔ, ËÏÔÏÒÙÊ ÍÎÅ
-ÐÏÎÁÄÏÂÉÔÓÑ, ÉÍÅÎÎÏ × ÍÏÍÅÎÔ ÔÁËÏÊ ÎÅÏÂÈÏÄÉÍÏÓÔÉ, Á ÎÅ ÔÏÇÄÁ, ËÏÇÄÁ ÄÌÑ ÜÔÏÇÏ
-ÓÏÚÒÅÅÔ «ÒÙÎÏË».
+Доброго времени суток!
+Если Вас интересует моё мнение, то:
+1. Вы, как мне кажется, упустили один из важных моментов. Или, во всяком
+случае, не акцентировали на нём внимание. А именно, пропорциональность
+возможностей затраченному на обучение времени. UNIX way тем мне и нравится,
+что я могу изучать ровно столько, сколько мне надо. С другой стороны в
+существующих на сегодня UNIX-ах я могу разобраться на столько, на сколько мне
+это нужно для решения задачи. И этот факт и делает для меня UNIX концепцию
+наиболее привлекательной. По крайней мере с точки зрения эффективности, то
+есть — отношения сэкономленного времени ко времени разработки.
+2. Именно раздробленность стандартных средств UNIX на маленькие инструментики
+позволÑ\8fеÑ\82 Ñ\82аким как Ñ\8f лÑ\8eдÑ\8fм забоÑ\82иÑ\82Ñ\8cÑ\81Ñ\8f о бÑ\83дÑ\83Ñ\89ем. Я не могÑ\83 повлиÑ\8fÑ\82Ñ\8c на Ñ\82о,
+какие инструментальные средства будут доступны в ближайшем будущем в среде MS
+Windows. Если моё решение будет удачным, то оно быстро будет подхвачено в
+среде UNIX, и не только fsf, и я в итоге получу инструмент, который мне
+понадобиÑ\82Ñ\81Ñ\8f, именно в моменÑ\82 Ñ\82акой необÑ\85одимоÑ\81Ñ\82и, а не Ñ\82огда, когда длÑ\8f Ñ\8dÑ\82ого
+созреет «рынок».
-þÔÏ ÖÅ ÄÏ ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÐÏÔÏËÏ× ÄÁÎÎÙÈ, ÔÏ ÜÔÏ ÎÁÐÏÍÉÎÁÅÔ ÍÎÅ
-Structured Task Description Language — ×ÅÝØ × ÐÒÉÎÃÉÐÅ ×ÏÚÍÏÖÎÕÀ, ÎÏ ËÁË-ÔÏ
-ÐÏËÁ ÎÉÇÄÅ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÎÕÀ (úÁÂÕÄÅÍ ÐÒÏ ×ÓÑËÉÅ Jinie É ÐÒ. ÎÅÒÁÂÏÔÁÀÝÕÀ ÍÕÒÕ)
-õÖÅ ÏÂßÑÓÎÉÔØ «ÐÒÏÓÔÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ» ÎÁ ËÁËÏÇÏ xyz ÎÕÖÅÎ sql ÄÏ×ÏÌØÎÏ ÔÒÕÄÎÏ.
-õÓÐÅÛÎÏÅ ÏÂßÑÓÎÅÎÉÅ, ÚÁÞÅÍ ÎÕÖÅÎ ÔÁËÏÊ ÍÏÎÓÔÒ, ËÁË ÑÚÙË ÏÐÉÓÁÎÉÑ ÐÒÏÉÚ×ÏÌØÎÙÈ
-ÄÁÎÎÙÈ, ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ÍÎÅ ÍÁÌÏ×ÅÒÏÑÔÎÙÍ, × ÔÅÒÍÉÎÁÈ «ÐÒÏÓÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ».
+Что же до универсального представления потоков данных, то это напоминает мне
+Structured Task Description Language — вещь в принципе возможную, но как-то
+пока нигде не Ñ\80еализованнÑ\83Ñ\8e (Ð\97абÑ\83дем пÑ\80о вÑ\81Ñ\8fкие Jinie и пÑ\80. неÑ\80абоÑ\82аÑ\8eÑ\89Ñ\83Ñ\8e мÑ\83Ñ\80Ñ\83)
+Уже объяснить «простому пользователю» на какого xyz нужен sql довольно трудно.
+Успешное объяснение, зачем нужен такой монстр, как язык описания произвольных
+данных, представляется мне маловероятным, в терминах «простого пользователя».
-ðÏÄ×ÏÄÑ ÉÔÏÇ, ÈÏÞÕ ÏÔÍÅÔÉÔØ, ÞÔÏ ÎÁ ÓÅÇÏÄÎÑÛÎÉÊ ÄÅÎØ ÄÌÑ UNIX community É
-ÒÁÚ×ÉÔÉÑ ÉÎÓÔÒÕÍÅÎÔÁÒÉÑ ÂÙÌÏ ÂÙ ÇÏÒÁÚÄÏ ÐÏÌÅÚÎÅÅ ÏÐÒÅÄÅÌÉÔØÓÑ, ËÔÏ ÔÁËÏÊ -
-ÜÔÏÔ «ÐÒÏÓÔÏÊ ÐÏÌØÚÏ×ÁÔÅÌØ». é ÏÐÒÅÄÅÌÉÔØÓÑ Ó ÏÔÎÏÛÅÎÉÅÍ Ë
-ÜÔÏÍÕ «ÐÒÏÓÔÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ»
-÷ ÞÁÓÔÎÏÓÔÉ, GUI ÄÏÌÖÅÎ ÂÙÔØ ÐÒÅÖÄÅ ×ÓÅÇÏ ÆÕÎËÃÉÏÎÁÌÅÎ, ÐÒÏÐÏÒÃÉÏÎÁÌÅÎ × ÓÍÙÓÌÅ
-ÏÂÕÞÅÎÉÑ, É ÔÏÌØËÏ ÐÏÔÏÍ ÕÄÏÂÅÎ, × ÔÏÊ ÍÅÒÅ, × ËÏÔÏÒÏÊ ÜÔÏ ÎÕÖÎÏ ÄÌÑ ÐÅÒ×ÙÈ
-Ä×ÕÈ ÐÏÚÉÃÉÊ.
+Подводя итог, хочу отметить, что на сегодняшний день для UNIX community и
+развития инструментария было бы гораздо полезнее определиться, кто такой -
+этот «простой пользователь». И определиться с отношением к
+этому «простому пользователю»
+В частности, GUI должен быть прежде всего функционален, пропорционален в смысле
+обучения, и только потом удобен, в той мере, в которой это нужно для первых
+двух позиций.
-ó ÎÁÉÌÕÞÛÉÍÉ,
- áÎÄÒÅÊ
+С наилучшими,
+ Андрей
</pre>
<p>
-<b>éÚ ÍÏÅÇÏ ÏÔ×ÅÔÁ áÎÄÒÅÀ</b></p>
+<b>Из моего ответа Андрею</b></p>
<p>
-óÍÙÓÌ × ÔÏÍ, ÞÔÏ ÐÏÌØÚÏ×ÁÔÅÌÀ É ÎÅ ÎÁÄÏ ÜÔÏ ÏÂßÑÓÎÑÔØ, ÔÁË ÖÅ ËÁË ÎÅ
-ÎÁÄÏ
-ÅÍÕ ÏÂßÑÓÎÑÔØ ÔÏÇÏ, ÞÔÏ ÂÕË×Á A ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ × ÔÅËÓÔÏ×ÏÍ ÆÁÊÌÅ
-ÂÁÊÔÏÍ ÓÏ ÚÎÁÞÅÎÉÅÍ 65. üÔÏ ÄÏÌÖÎÏ ÂÙÔØ × ËÏÍÐÅÔÅÎÃÉÉ ÓÉÓÔÅÍÙ.
+Смысл в том, что пользователю и не надо это объяснять, так же как не
+надо
+ему объяснять того, что буква A представляется в текстовом файле
+байтом со значением 65. Это должно быть в компетенции системы.
</p><p>
-<b>á ×ÏÔ ÅÝÅ ÏÄÎÁ ÉÎÔÅÒÅÓÎÁÑ ÓÔÁÔØÑ ÎÁ ÓÈÏÄÎÕÀ ÔÅÍÕ.</b><br>
+<b>А вот еще одна интересная статья на сходную тему.</b><br>
<a href="http://www.itc.kiev.ua/article.phtml?ID=2149">
http://www.itc.kiev.ua/article.phtml?ID=2149</a>
</p>