X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=articles%2Ftrue_unix_gui.html;h=fa212b3b665617306e203ba1abe2db6aceb57d01;hb=6b35456e845cfb96e2c5a639f999004e5df62c22;hp=3878787c816bd3281cc14fca230cfe09f5abedb7;hpb=9766a16a9d842ad56bfda8c0444ffa96e14cfe37;p=sites%2Fhome_page.git diff --git a/articles/true_unix_gui.html b/articles/true_unix_gui.html index 3878787..fa212b3 100644 --- a/articles/true_unix_gui.html +++ b/articles/true_unix_gui.html @@ -1,274 +1,274 @@ - + True Unix GUI - +

True Unix GUI

-÷ ÐÏÓÌÅÄÎÅÅ ×ÒÅÍÑ ÍÎÏÇÏ ÛÕÍÁ ÒÁÚÄÁÅÔÓÑ ×ÏËÒÕÇ ÉÄÅÉ Ï ×ÓÔÕÐÌÅÎÉÉ -Linux (É ×ÏÏÂÝÅ Unix-ÐÏÄÏÂÎÙÈ ÓÉÓÔÅÍ) × ×ÏÊÎÕ ÚÁ ÍÅÓÔÏ ÎÁ ÒÙÎËÅ -ÎÁÓÔÏÌØÎÙÈ ÓÉÓÔÅÍ. ÷ ËÁÞÅÓÔ×Å ÒÁÚ×ÅÄËÉ ÂÏÅÍ × ÜÔÏÊ ×ÏÊÎÅ ×ÏÚÎÉËÌÉ É -ÒÁÚ×É×ÁÀÔÓÑ ÔÁËÉÅ ÓÉÓÔÅÍÙ, ËÁË KDE É GNOME. îÏ, ÐÏ ÍÏÅÍÕ ÍÎÅÎÉÀ, ÜÔÉ -ÓÉÓÔÅÍÙ ÏÂÒÅÞÅÎÙ ÎÁ ÐÒÏ×ÁÌ. ñ ÎÅ ÓÞÉÔÁÀ, ÞÔÏ Linux ÎÅ ÍÅÓÔÏ ÎÁ ÄÅÓËÔÏÐÅ -ÐÏÌØÚÏ×ÁÔÅÌÑ. ðÒÏÓÔÏ ÁÔÁËÏ×ÁÔØ ÐÏÚÉÃÉÉ Windows ÎÁÄÏ Ó ÄÒÕÇÏÇÏ ÆÌÁÎÇÁ. -

-þÔÏ ÔÁËÏÅ KDE É GNOME — ÜÔÏ ×ÓÅÇÏ ÌÉÛØ ÐÏÐÙÔËÁ ÐÏÓÔÒÏÉÔØ ÎÁÄ ÑÄÒÏÍ -Unix É X-Window ÓÉÓÔÅÍÕ, ÏÓÎÏ×ÁÎÎÕÀ ÎÁ ÔÅÈ ÖÅ ÐÒÉÎÃÉÐÁÈ, ÞÔÏ É Windows - -ÄÏËÕÍÅÎÔ-ÏÒÉÅÎÔÉÒÏ×ÁÎÎÁÑ ÍÏÄÅÌØ, ×ÚÁÉÍÏÄÅÊÓÔ×ÉÅ ÍÅÖÄÕ ÐÒÉÌÏÖÅÎÉÑÍÉ ÎÁ -ÂÁÚÅ drag'n'drop É Object Request Broker, ËÕÞÁ ÂÅÓÐÏÌÅÚÎÏÇÏ -ÕËÒÁÛÁÔÅÌØÓÔ×Á. æÁËÔÉÞÅÓËÉ ÄÌÑ ÔÁËÏÊ ÓÉÓÔÅÍÙ ×ÓÅ ÐÒÅÉÍÕÝÅÓÔ×Á -ÎÉÖÅÌÅÖÁÝÅÊ ÍÎÏÇÏÚÁÄÁÞÎÏÊ, ÍÎÏÇÏÐÏÌØÚÏ×ÁÔÅÌØÓËÏÊ, ÐÒÏÚÒÁÞÎÏ -ÉÎÔÅÇÒÉÒÏ×ÁÎÎÏÊ × ÓÅÔØ ÓÉÓÔÅÍÙ ÓÔÁÎÏ×ÑÔÓÑ ÎÅÄÏÓÔÁÔËÁÍÉ, ÐÒÉ×ÏÄÑÝÉÍÉ -ÔÏÌØËÏ Ë ÎÅÎÕÖÎÏÍÕ ÒÁÓÈÏÄÕ ÒÅÓÕÒÓÏ×. òÅÓÕÒÓÏ× ÓÅÊÞÁÓ, ËÁË ÐÒÁ×ÉÌÏ -ÉÚÂÙÔÏË, ÎÏ ÜÔÏ ÖÅ ÎÅ ÐÏ×ÏÄ ÔÒÁÎÖÉÒÉÔØ ÉÈ ÂÅÚ ÐÏÌØÚÙ. -

-÷ ÒÅÚÕÌØÔÁÔÅ, ÍÙ ÐÏÌÕÞÁÅÍ ÍÏÎÓÔÒÁ, × ËÏÔÏÒÏÍ ÒÁÂÏÔÁ Ó ÕÄÁÌÅÎÎÙÍÉ -ÒÅÓÕÒÓÁÍÉ ÏÇÒÁÎÉÞÅÎÁ ÌÁÚÁÎØÅÍ ÐÏ Web, ×ÏÚÍÏÖÎÏÓÔÅÊ ÒÁÓÛÉÒÅÎÉÑ — ÎÅ -ÂÏÌØÛÅ ÞÅÍ × Windows. èÏÒÏÛÏ ÈÏÔØ ËÏÍÐÉÌÑÔÏÒ ÂÅÓÐÌÁÔÎÙÊ, ÎÏ ×ÅÄØ É × -Windows ÅÇÏ ÕÖÅ ÐÏÒÔÁÎÕÌÉ, Á ÔÁË ÄÌÑ ÎÁÐÉÓÁÎÉÑ ÍÉÎÉÍÁÌØÎÏÊ ÐÒÉÍÏÞËÉ Ë -ÎÕÖÎÏ ÐÉÓÁÔØ ÎÁ C, ÉÌÉ × ÓÌÕÞÁÅ KDE ÎÁ C++. -

-ðÏÌØÚÏ×ÁÔÅÌØ ÜÔÏÊ ÓÉÓÔÅÍÙ ÏÐÑÔØ ÏÔÄÁÅÔÓÑ ÎÁ ÍÉÌÏÓÔØ ÐÒÏÇÒÁÍÍÉÓÔÁÍ — ÏÎ -ÍÏÖÅÔ ÐÏÌØÚÏ×ÁÔØÓÑ ÔÏÌØËÏ ÔÅÍ ÞÔÏ ÄÌÑ ÎÅÇÏ ÎÁÐÉÓÁÌÉ, ÐÏÓËÏÌØËÕ ÉÚÕÞÁÔØ C -É, ÔÅÍ ÂÏÌÅÅ ÐÉÓÁÔØ ÎÁ ÎÅÍ, Õ ÎÅÇÏ ÎÅÔ ×ÒÅÍÅÎÉ. õ ÎÅÇÏ Ó×ÏÉ, -ÐÏÌØÚÏ×ÁÔÅÌØÓËÉÅ, ÚÁÄÁÞÉ — ÏÔÞÅÔÉË ËÒÁÓÉ×ÙÊ Ó×ÁÑÔØ, ÐÏÓÞÉÔÁÔØ -ÞÔÏ-ÎÉÂÕÄØ. -

-úÁÍÅÔÉÍ, ÞÔÏ É ÐÒÏÇÒÁÍÍÉÓÔÙ × ÎÁÛÅ ×ÒÅÍÑ, ×Ï ×ÓÑËÏÍ ÓÌÕÞÁÅ ÔÏ -ÐÏÄÁ×ÌÑÀÝÅÅ ÂÏÌØÛÉÎÓÔ×Ï ÉÈ, ËÏÔÏÒÏÅ ÏÂÓÌÕÖÉ×ÁÅÔ ÚÁÄÁÞÉ -ÂÉÚÎÅÓ-ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÒÁÚÒÁÂÏÔËÉ ×ÓÑÞÅÓËÉÍÉ ÓÉÓÔÅÍÁÍÉ -Rapid Application Development, ÔÏ ÅÓÔØ ÐÏ ÏÔÎÏÛÅÎÉÀ Ë ÓÁÍÏÍÕ Desktop -Environment ×ÙÓÔÕÐÁÀÔ ÓËÏÒÅÅ ËÁË ÐÏÌØÚÏ×ÁÔÅÌÉ, ÞÅÍ ËÁË ÐÒÏÇÒÁÍÍÉÓÔÙ. -÷ ÔÏ ÖÅ ×ÒÅÍÑ ÎÉ KDE ÎÉ GNOME ÎÅ ÎÁÞÉÎÁÌÉÓØ Ó ÉÄÅÉ — ÄÁ×ÁÊÔÅ ÎÁÐÉÛÅÍ -RAD-ÓÒÅÄÕ, × ËÏÔÏÒÏÊ ÍÏÖÎÏ ÓÄÅÌÁÔØ ×ÓÅ. þÔÏ, ËÓÔÁÔÉ, ÓÉÌØÎÏ ÏÇÒÁÎÉÞÉ×ÁÅÔ -É ËÏÌÉÞÅÓÔ×Ï ÉÈ ÒÁÚÒÁÂÏÔÞÉËÏ×, É ÐÒÏÄÕËÔÉ×ÎÏÓÔØ ËÁÖÄÏÇÏ ÉÚ ÎÉÈ. -

-òÁÚÒÁÂÏÔÞÉËÉ NextStep ÌÕÞÛÅ ÐÒÏÄÕÍÁÌÉ Ó×ÏÀ ÐÏÌÉÔÉËÕ × ÜÔÏÍ ÏÔÎÏÛÅÎÉÉ, ÎÏ -É ÏÎÉ ÐÏÔÅÒÐÅÌÉ ÎÅÕÄÁÞÕ × ×ÏÊÎÅ ËÁË ÚÁ ÄÅÓËÔÏÐÙ ÐÏÌØÚÏ×ÁÔÅÌÅÊ, ÔÁË É ÚÁ -ÕÍÙ ÐÒÏÇÒÁÍÍÉÓÔÏ×. -

-óÒÁ×ÎÉÍ ÜÔÏ Ó ÓÉÔÕÁÃÉÅÊ × ÎÁÞÁÌÅ 70-È ÇÏÄÏ× — ÜÐÏÈÉ ÐÏÂÅÄÎÏÇÏ ÛÅÓÔ×ÉÑ -Unix ÐÏ ÕÎÉ×ÅÒÓÉÔÅÔÁÍ óûá. ðÏÞÅÍÕ ÜÔÁ ÓÉÓÔÅÍÁ ÓÍÏÇÌÁ ÔÏÇÄÁ ×ÙÔÅÓÎÉÔØ -ÇÏÒÁÚÄÏ ÂÏÌÅÅ «ÄÒÕÖÅÓÔ×ÅÎÎÙÅ Ë ÐÏÌØÚÏ×ÁÔÅÌÀ» LISP-ÍÁÛÉÎÙ? -

-îÁ ÍÏÊ ×ÚÇÌÑÄ ÐÏÔÏÍÕ, ÞÔÏ ÏÎÁ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÐÒÏ×ÏÄÉÌÁ ÏÄÎÕ -ÎÅÚÁÍÙÓÌÏ×ÁÔÕÀ ÉÄÅÀ — «ÎÅ ÈÏÞÅÛØ ÏÂÝÁÔØÓÑ Ó ÐÒÏÇÒÁÍÍÏÊ ÓÁÍ — ÚÁÓÔÁ×Ø ÜÔÏ -ÄÅÌÁÔØ ÄÒÕÇÕÀ ÐÒÏÇÒÁÍÍÕ». ñ Õ×ÅÒÅÎ, ÞÔÏ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ËÁÖÄÙÊ ÉÚ -ÞÉÔÁÔÅÌÅÊ ×ÓÐÏÍÎÉÌ ÞÔÏ-ÔÏ ÔÉÐÁ ls -l|grep root ÉÌÉ -find . -name "*.bak"|xargs rm. äÁ, ÒÅÞØ ÉÍÅÎÎÏ Ï ÜÔÉÈ ËÏÎÓÔÒÕËÃÉÑÈ. -

-ïÓÎÏ×ÎÏÅ ÉÈ ÄÏÓÔÏÉÎÓÔ×Ï ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ ÞÔÏ ÏÎÉ, ×Ï-ÐÅÒ×ÙÈ, ×ÐÏÌÎÅ -ÄÏÓÔÕÐÎÙ ÐÏÌØÚÏ×ÁÔÅÌÀ, ÕÍÅÀÝÅÍÕ ÒÁÂÏÔÁÔØ × ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ, Á ×Ï-×ÔÏÒÙÈ -Ñ×ÌÑÀÔÓÑ ÐÏÌÎÏÃÅÎÎÙÍÉ ÐÒÏÇÒÁÍÍÁÍÉ ÎÁ ÑÚÙËÅ shell. éÈ ÍÏÖÎÏ ÚÁÐÉÓÁÔØ × -ÆÁÊÌ, ÏÂßÑ×ÉÔØ ÜÔÏÔ ÆÁÊÌ ÉÓÐÏÌÎÑÅÍÙÍ É ÐÏÌØÚÏ×ÁÔØÓÑ ÎÁÒÑÄÕ Ó ÐÒÏÞÉÍÉ -ËÏÍÁÎÄÁÍÉ ÓÉÓÔÅÍÙ. -

-åÓÌÉ ×ÓÐÏÍÎÉÔØ, ÞÔÏ ÏÔÞÅÔÙ × ÔÅ ×ÒÅÍÅÎÁ ÐÉÓÁÌÉ ÎÁ troff, ËÏÔÏÒÙÊ ×ÅÓØÍÁ -ÐÏÄÈÏÄÉÔ ÄÌÑ ÏÂÒÁÂÏÔËÉ sed-ÏÍ É awk, ÔÏ ÏËÁÖÅÔÓÑ ÞÔÏ -ÐÏÌØÚÏ×ÁÔÅÌÉ ×ÐÏÌÎÅ ÍÏÇÌÉ ÌÅÇËÏ ÁÄÁÐÔÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ Ë Ó×ÏÉÍ ÎÕÖÄÁÍ. -ðÒÉÞÅÍ ÜÔÏÔ ÐÒÏÃÅÓÓ ÓËÏÒÅÅ ÎÁÐÏÍÉÎÁÌ ÏÂÕÞÅÎÉÅ — ÓÄÅÌÁÌ ÞÔÏ-ÔÏ ÏÄÉÎ ÒÁÚ, -ÄÁÌ ÜÔÏÊ ÏÐÅÒÁÃÉÉ ÉÍÑ, É ÄÁÌØÛÅ ÔÒÅÂÕÅÛØ ÓÄÅÌÁÔØ ÏÐÅÒÁÃÉÀ Ó ÔÁËÉÍ-ÔÏ -ÎÁÚ×ÁÎÉÅÍ. -

-òÅÚÕÌØÔÁÔÏÍ ÜÔÏÇÏ Ñ×ÉÌÏÓØ ÐÒÁËÔÉÞÅÓËÉ ÐÏÌÎÏÅ ÏÔÓÕÔÓÔ×ÉÅ ÂÁÒØÅÒÁ ÍÅÖÄÕ -ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÓÉÓÔÅÍÙ É ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅÍ × ÎÅÊ. é ÄÁÌØÎÅÊÛÅÅ ÒÁÚ×ÉÔÉÅ -× ÏÂÝÅÍ-ÔÏ ÎÅ ÐÒÉ×ÅÌÏ Ë ÅÇÏ Õ×ÅÌÉÞÅÎÉÀ. ÷ ÏÔ×ÅÔ ÎÁ X-Window ÐÏÑ×ÉÌÓÑ Tk, -× ÏÔ×ÅÔ ÎÁ ÉÎÔÅÒÁËÔÉ×ÎÙÅ ÐÒÏÇÒÁÍÍÙ ÔÉÐÁ ftp — expect. -

-äÒÕÇÏÅ ÄÅÌÏ ÞÔÏ ÐÒÁËÔÉÞÅÓËÉ ÎÅÉÚÍÅÎÎÙÍ ÏÓÔÁÌÓÑ ÂÁÒØÅÒ ÍÅÖÄÕ ÞÅÌÏ×ÅËÏÍ, -×ÉÄÑÝÉÍ ËÏÍÐØÀÔÅÒ × ÐÅÒ×ÙÊ ÒÁÚ É Ë×ÁÌÉÆÉÃÉÒÏ×ÁÎÎÙÍ ÐÏÌØÚÏ×ÁÔÅÌÅÍ, × -ÓÎÑÔÉÉ ËÏÔÏÒÏÇÏ ÐÒÅÕÓÐÅÌÉ ÄÒÕÇÉÅ ÓÉÓÔÅÍÙ, × ÏÓÏÂÅÎÎÏÓÔÉ MacOS. -

-ðÁÍÑÔÎÉËÏÍ ÔÏÍÕ ÓÌÁ×ÎÏÍÕ ×ÒÅÍÅÎÉ ÓÌÕÖÉÔ O'Reilly-×ÓËÁÑ ËÎÉÖËÁ +В последнее время много шума раздается вокруг идеи о вступлении +Linux (и вообще Unix-подобных систем) в войну за место на рынке +настольных систем. В качестве разведки боем в этой войне возникли и +развиваются такие системы, как KDE и GNOME. Но, по моему мнению, эти +системы обречены на провал. Я не считаю, что Linux не место на десктопе +пользователя. Просто атаковать позиции Windows надо с другого фланга. +

+Что такое KDE и GNOME — это всего лишь попытка построить над ядром +Unix и X-Window систему, основанную на тех же принципах, что и Windows - +документ-ориентированная модель, взаимодействие между приложениями на +базе drag'n'drop и Object Request Broker, куча бесполезного +украшательства. Фактически для такой системы все преимущества +нижележащей многозадачной, многопользовательской, прозрачно +интегрированной в сеть системы становятся недостатками, приводящими +только к ненужному расходу ресурсов. Ресурсов сейчас, как правило +избыток, но это же не повод транжирить их без пользы. +

+В результате, мы получаем монстра, в котором работа с удаленными +ресурсами ограничена лазаньем по Web, возможностей расширения — не +больше чем в Windows. Хорошо хоть компилятор бесплатный, но ведь и в +Windows его уже портанули, а так для написания минимальной примочки к +нужно писать на C, или в случае KDE на C++. +

+Пользователь этой системы опять отдается на милость программистам — он +может пользоваться только тем что для него написали, поскольку изучать C +и, тем более писать на нем, у него нет времени. У него свои, +пользовательские, задачи — отчетик красивый сваять, посчитать +что-нибудь. +

+Заметим, что и программисты в наше время, во всяком случае то +подавляющее большинство их, которое обслуживает задачи +бизнес-пользователей, пользуется для разработки всяческими системами +Rapid Application Development, то есть по отношению к самому Desktop +Environment выступают скорее как пользователи, чем как программисты. +В то же время ни KDE ни GNOME не начинались с идеи — давайте напишем +RAD-среду, в которой можно сделать все. Что, кстати, сильно ограничивает +и количество их разработчиков, и продуктивность каждого из них. +

+Разработчики NextStep лучше продумали свою политику в этом отношении, но +и они потерпели неудачу в войне как за десктопы пользователей, так и за +умы программистов. +

+Сравним это с ситуацией в начале 70-х годов — эпохи победного шествия +Unix по университетам США. Почему эта система смогла тогда вытеснить +гораздо более «Ð´Ñ€ÑƒÐ¶ÐµÑÑ‚Ð²ÐµÐ½Ð½Ñ‹Ðµ к пользователю» LISP-машины? +

+На мой взгляд потому, что она последовательно проводила одну +незамысловатую идею — «Ð½Ðµ хочешь общаться с программой сам — заставь это +делать другую программу». Я уверен, что на этом месте каждый из +читателей вспомнил что-то типа ls -l|grep root или +find . -name "*.bak"|xargs rm. Да, речь именно об этих конструкциях. +

+Основное их достоинство заключается в том что они, во-первых, вполне +доступны пользователю, умеющему работать в командной строке, а во-вторых +являются полноценными программами на языке shell. Их можно записать в +файл, объявить этот файл исполняемым и пользоваться наряду с прочими +командами системы. +

+Если вспомнить, что отчеты в те времена писали на troff, который весьма +подходит для обработки sed-ом и awk, то окажется что +пользователи вполне могли легко адаптировать систему к своим нуждам. +Причем этот процесс скорее напоминал обучение — сделал что-то один раз, +дал этой операции имя, и дальше требуешь сделать операцию с таким-то +названием. +

+Результатом этого явилось практически полное отсутствие барьера между +использованием системы и программированием в ней. И дальнейшее развитие +в общем-то не привело к его увеличению. В ответ на X-Window появился Tk, +в ответ на интерактивные программы типа ftp — expect. +

+Другое дело что практически неизменным остался барьер между человеком, +видящим компьютер в первый раз и квалифицированным пользователем, в +снятии которого преуспели другие системы, в особенности MacOS. +

+Памятником тому славному времени служит O'Reilly-вская книжка «sed & -awk», ËÏÔÏÒÁÑ ÆÁËÔÉÞÅÓËÉ Ñ×ÌÑÅÔÓÑ ÌÅÔÏÐÉÓØÀ ×ÅÒÓÔËÉ ÓÅÒÉÉ ÐÒÏ X window. +awk», которая фактически является летописью верстки серии про X window.

-ëÁËÏ×Ù ÖÅ ÓÏÓÔÁ×ÌÑÀÝÉÅ ÉÎÔÅÒÆÅÊÓÁ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ Unix, ËÏÔÏÒÙÅ -ÏËÁÚÁÌÉÓØ × Ó×ÏÅ ×ÒÅÍÑ ÎÁÓÔÏÌØËÏ ÕÄÁÞÎÙÅ, ÞÔÏ ÖÉ×ÕÔ ÕÖÅ 30 ÌÅÔ, É ÄÏ ÓÉÈ -ÐÏÒ ÎÁÈÏÄÉÔÓÑ ÎÅÍÁÌÏ ÌÀÄÅÊ, ÐÒÅÄÐÏÞÉÔÁÀÝÉÈ ÉÈ ÒÁÚÎÏÏÂÒÁÚÎÙÍ GUI? +Каковы же составляющие интерфейса командной строки Unix, которые +оказались в свое время настолько удачные, что живут уже 30 лет, и до сих +пор находится немало людей, предпочитающих их разнообразным GUI?

-îÁ ÍÏÊ ×ÚÇÌÑÄ ÉÈ ÞÅÔÙÒÅ: +На мой взгляд их четыре:

  1. - õÎÉ×ÅÒÓÁÌØÎÁÑ ÆÏÒÍÁ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ — ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ, -ÐÏÎÉÍÁÅÍÙÊ ËÁË ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ÓÉÍ×ÏÌÏ×, ÎÅËÏÔÏÒÙÅ ÉÚ ËÏÔÏÒÙÈ ÉÍÅÀÔ -ÓÐÅÃÉÁÌØÎÙÊ ÓÍÙÓÌ — ÒÁÚÄÅÌÑÀÔ ÓÔÒÏËÉ(ÚÁÐÉÓÉ), ÐÏÌÑ É ÓÌÏ×Á. - åÇÏ ËÏÍÁÎÄÎÏ-ÓÔÒÏÞÎÙÅ ÐÒÏÇÒÁÍÍÙ ×ÙÄÁÀÔ ÎÁ ÜËÒÁÎ ÞÅÌÏ×ÅËÕ (stdout), - ÅÇÏ ÖÅ ÏÖÉÄÁÀÔ × ËÁÞÅÓÔ×Å ××ÏÄÁ (stdin). îÅ ÂÕÄØ ÜÔÏÇÏ ÓÔÁÎÄÁÒÔÁ - ÂÅÓÐÏÌÅÚÅÎ ÂÙÌ ÂÙ ÓÌÅÄÕÀÝÉÊ ÐÕÎËÔ -
  2. ðÅÒÅÎÁÚÎÁÞÅÎÉÅ ××ÏÄÁ-×Ù×ÏÄÁ. üÔÏÔ ÉÎÓÔÒÕÍÅÎÔ × Unix ÚÎÁÀÔ ÐÏ-ÍÏÅÍÕ - ×ÓÅ. -
  3. Toolbox Phylosophy. üÔÏ Ó×ÏÊÓÔ×Ï ÔÏÖÅ ÛÉÒÏËÏ ÉÚ×ÅÓÔÎÏ. ÷Ï-×ÓÑËÏÍ - ÓÌÕÞÁÅ ÉÍÅÎÎÏ ÎÁ ÎÅÍ ÚÁÏÓÔÒÑÅÔ ×ÎÉÍÁÎÉÅ òÉÞÁÒÄ óÔÏÌÌÍÁÎ × - info-ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ textutuls. éÄÅÑ ÓÏÓÔÏÉÔ × ÎÁÌÉÞÉÉ ÍÎÏÇÉÈ ÍÁÌÅÎØËÉÈ - ÕÔÉÌÉÔ, ËÏÔÏÒÙÅ ÈÏÒÏÛÏ ÉÎÔÅÇÒÉÒÕÀÔÓÑ, ×ÍÅÓÔÏ ÏÇÒÏÍÎÏÇÏ ÍÏÎÓÔÒÁ, ËÏÔÏÒÙÊ - ÕÍÅÅÔ ×ÓÅ. üÔÏ ÅÄÉÎÓÔ×ÅÎÎÙÊ ÕÒÏË Unix, ËÏÔÏÒÙÊ ÕÓ×ÏÉÌÉ ÒÁÚÒÁÂÏÔÞÉËÉ - GNOME É KDE. -
  4. òÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ. üÔÏ ÔÏÖÅ ÐÕÎËÔ, Ï ËÏÔÏÒÏÍ ÍÎÏÇÉÅ ÚÁÂÙ×ÁÀÔ, - ÎÏ ÂÅÚ ÎÉÈ ÉÄÅÑ «ÚÁÓÔÁ×ÉÔØ ÏÄÎÕ ÐÒÏÇÒÁÍÍÕ ÞÉÔÁÔØ ×Ù×ÏÄ ÄÒÕÇÏÊ» ÂÙÌÁ ÂÙ - ÂÅÓÓÍÙÓÌÅÎÎÏÊ. üÔÏ ÆÏÒÍÁÌØÎÙÊ, ÄÏÓÔÁÔÏÞÎÏ ÇÉÂËÉÊ É ÂÏÌÅÅ-ÍÅÎÅÅ - ÉÎÔÕÉÔÉ×ÎÙÊ ÓÐÏÓÏ ÕËÁÚÁÔØ ÐÒÏÇÒÁÍÍÅ, ÞÔÏ ÓÌÅÄÕÅÔ ÉÓËÁÔØ × ÐÏÔÏËÅ - ÄÁÎÎÙÈ. é ÓÔÁÎÄÁÒÔÎÙÅ ÓÒÅÄÓÔ×Á ÔÅËÓÔÏ×ÏÊ ÏÂÒÁÂÏÔËÉ, É ÔÁËÉÅ - ÉÎÓÔÒÕÍÅÎÔÙ ËÁË expect, ÐÏÑ×É×ÛÉÅÓÑ × ÏÔ×ÅÔ ÎÁ ÐÏÑ×ÌÅÎÉÅ ÐÒÏÇÒÁÍÍ, - ÏÔËÁÚÙ×Á×ÛÉÈÓÑ ÞÅÓÔÎÏ ×ÚÁÉÍÏÄÅÊÓÔ×Ï×ÁÔØ ÓÏ ÓÔÁÎÄÁÒÔÎÙÍÉ ÆÉÌØÔÒÁÍÉ, - ÏÐÉÒÁÀÔÓÑ ÉÍÅÎÎÏ ÎÁ ÜÔÏÔ ÍÅÈÁÎÉÚÍ. + Универсальная форма представления информации — текстовый файл, +понимаемый как последовательность символов, некоторые из которых имеют +специальный смысл — разделяют строки(записи), поля и слова. + Его командно-строчные программы выдают на экран человеку (stdout), + его же ожидают в качестве ввода (stdin). Не будь этого стандарта + бесполезен был бы следующий пункт +
  5. Переназначение ввода-вывода. Этот инструмент в Unix знают по-моему + все. +
  6. Toolbox Phylosophy. Это свойство тоже широко известно. Во-всяком + случае именно на нем заостряет внимание Ричард Столлман в + info-документации на textutuls. Идея состоит в наличии многих маленьких + утилит, которые хорошо интегрируются, вместо огромного монстра, который + умеет все. Это единственный урок Unix, который усвоили разработчики + GNOME и KDE. +
  7. Регулярные выражения. Это тоже пункт, о котором многие забывают, + но без них идея «Ð·Ð°ÑÑ‚авить одну программу читать вывод другой» была бы + бессмысленной. Это формальный, достаточно гибкий и более-менее + интуитивный способ указать программе, что следует искать в потоке + данных. И стандартные средства текстовой обработки, и такие + инструменты как expect, появившиеся в ответ на появление программ, + отказывавшихся честно взаимодействовать со стандартными фильтрами, + опираются именно на этот механизм.

-ïÞÅ×ÉÄÎÏ, ÞÔÏ ÍÏÄÅÌØ ÏÂÒÁÂÏÔËÉ ÄÁÎÎÙÈ, ÏÓÎÏ×ÁÎÎÁÑ ÎÁ ÜÔÉÈ ÞÅÔÙÒÅÈ ËÉÔÁÈ, -ÎÅ ÐÏËÒÙ×ÁÅÔ ÐÏÔÒÅÂÎÏÓÔÅÊ ÓÏ×ÒÅÍÅÎÎÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ. -

-îÁÉÂÏÌÅÅ ÓÌÁÂÙÍ ÍÅÓÔÏÍ ÏËÁÚÙ×ÁÅÔÓÑ ÔÅËÓÔÏ×ÙÊ ÆÁÊÌ ËÁË ÕÎÉ×ÅÒÓÁÌØÎÙÊ -ÓÐÏÓÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ × ÓÏÞÅÔÁÎÉÉ Ó ÒÅÇÕÌÑÒÎÙÍÉ ×ÙÒÁÖÅÎÉÑÍÉ -ÄÌÑ ÅÇÏ ÏÂÒÁÂÏÔËÉ. ÷Ï-ÐÅÒ×ÙÈ, ËÒÏÍÅ ÔÅËÓÔÁ ÅÓÔØ ËÁÒÔÉÎËÉ É Ú×ÕË. -÷Ï-×ÔÏÒÙÈ, -ÏÐÅÒÉÒÏ×ÁÔØ Ó ÔÅËÓÔÏÍ ÎÁ ÕÒÏ×ÎÅ ÓÉÍ×ÏÌÏ× ÎÅ ×ÓÅÇÄÁ ÕÄÏÂÎÏ — ÈÏÞÅÔÓÑ -ÏÐÅÒÉÒÏ×ÁÔØ ÎÁ ÕÒÏ×ÎÅ ÐÒÅÄÌÏÖÅÎÉÊ, ÁÂÚÁÃÅ×, Á ÔÏ É ÇÌÁ×. ÷-ÔÒÅÔØÉÈ, -ÓÕÝÅÓÔ×ÕÀÔ ÔÁÂÌÉÞÎÙÅ ÄÁÎÎÙÅ, ËÏÔÏÒÙÅ ÎÅ ×ÓÅÇÄÁ ÕÄÏÂÎÏ ÏÂÒÁÂÁÔÙ×ÁÔØ × -awk — ÉÎÏÇÄÁ ÎÕÖÅÎ sql. ÷ ÞÅÔ×ÅÒÔÙÈ, ÅÓÔØ ÜÌÅÍÅÎÔÙ ÏÆÏÒÍÌÅÎÉÑ — ÛÒÉÆÔÙ, -ÎÁÞÅÒÔÁÎÉÑ É ÐÒ., ËÏÔÏÒÙÅ ÉÎÏÇÄÁ ÎÅÓÕÔ ÓÕÝÅÓÔ×ÅÎÎÕÀ ÔÅÍÁÔÉÞÅÓËÕÀ -ÎÁÇÒÕÚËÕ. (úÄÅÓØ ÍÙ ×ÓÔÕÐÁÅÍ ÎÁ ÔÅÁÔÒ ×ÏÅÎÎÙÈ ÄÅÊÓÔ×ÉÊ ÍÅÖÄÕ -ÓÔÏÒÏÎÎÉËÁÍÉ ÌÏÇÉÞÅÓËÏÊ É ÆÉÚÉÞÅÓËÏÊ ÒÁÚÍÅÔËÉ, Ë ÂÏÒØÂÅ ÍÅÖÄÕ ËÏÔÏÒÙÍÉ -ÍÙ ÅÝÅ ×ÅÒÎÅÍÓÑ). -

-äÒÕÇÉÍ ÓÌÁÂÙÍ ÍÅÓÔÏÍ Ñ×ÌÑÀÔÓÑ ÒÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ, ËÁË ×ÓÔÒÏÅÎÎÙÊ × -ÓÉÓÔÅÍÕ ÓÐÏÓÏ ÒÁÓÐÏÚÎÁ×ÁÎÉÑ ÏÂÒÁÚÏ×. ïÎÉ ×Ï-ÐÅÒ×ÙÈ, ÓÌÏÖÎÙ ÄÌÑ -ÐÏÌØÚÏ×ÁÔÅÌÑ — ÎÅÄÁÒÏÍ AltaVista ÉÍÉ ÎÅ ÐÏÌØÚÕÅÔÓÑ, ×Ï-×ÔÏÒÙÈ ÏÞÅÎØ -ÏÇÒÁÎÉÞÅÎÙ ÐÏ Ó×ÏÉÍ ×ÏÚÍÏÖÎÏÓÔÑÍ — ÐÅÒÅÓÔÁ×ØÔÅ ÍÅÓÔÁÍÉ Ä×Á ÓÌÏ×Á É ×ÓÅ. -

-åÓÔØ ÏÇÒÁÎÉÞÅÎÉÑ É Õ ËÏÎÃÅÐÃÉÉ ÐÅÒÅÎÁÚÎÁÞÅÎÉÑ ××ÏÄÁ-×Ù×ÏÄÁ. ïÎÁ -ÐÒÉÎÃÉÐÉÁÌØÎÏ ÌÉÎÅÊÎÁ, ÈÏÔÑ ÐÒÏÓÔÒÁÎÓÔ×Ï ÎÁ ÜËÒÁÎÅ ÐÒÉÎÃÉÐÉÁÌØÎÏ -Ä×ÕÍÅÒÎÏ. íÎÅ ÏÞÅÎØ ÞÁÓÔÏ ÈÏÞÅÔÓÑ ÎÁÐÉÓÁÔØ ÞÔÏ-ÔÏ ×ÒÏÄÅ +Очевидно, что модель обработки данных, основанная на этих четырех китах, +не покрывает потребностей современного пользователя. +

+Наиболее слабым местом оказывается текстовый файл как универсальный +способ представления информации в сочетании с регулярными выражениями +для его обработки. Во-первых, кроме текста есть картинки и звук. +Во-вторых, +оперировать с текстом на уровне символов не всегда удобно — хочется +оперировать на уровне предложений, абзацев, а то и глав. В-третьих, +существуют табличные данные, которые не всегда удобно обрабатывать в +awk — иногда нужен sql. В четвертых, есть элементы оформления — шрифты, +начертания и пр., которые иногда несут существенную тематическую +нагрузку. (Здесь мы вступаем на театр военных действий между +сторонниками логической и физической разметки, к борьбе между которыми +мы еще вернемся). +

+Другим слабым местом являются регулярные выражения, как встроенный в +систему способ распознавания образов. Они во-первых, сложны для +пользователя — недаром AltaVista ими не пользуется, во-вторых очень +ограничены по своим возможностям — переставьте местами два слова и все. +

+Есть ограничения и у концепции переназначения ввода-вывода. Она +принципиально линейна, хотя пространство на экране принципиально +двумерно. Мне очень часто хочется написать что-то вроде

-  gzcat /var/log/httpd/access.log.gz | tee v | grep ÏÄÎÏ
+  gzcat /var/log/httpd/access.log.gz | tee v | grep одно
                                            |
-                                           +-> grep ÄÒÕÇÏÅ
+                                           +-> grep другое
 

-÷ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÅ ÔÁË ÎÅÌØÚÑ. èÏÔÑ ÓÏ ÓÔÏÒÏÎÙ ÑÄÒÁ Unix ÐÒÉÎÃÉÐÉÁÌØÎÙÈ -×ÏÚÒÁÖÅÎÉÊ ÎÅÔ. äÒÕÇÏÅ ÄÅÌÏ ÞÔÏ ÐÙÔÁÑÓØ ÚÁÐÉÓÁÔØ ÜÔÏ Ó ËÁËÉÍ ÕÇÏÄÎÏ -ÓÉÎÔÁËÓÉÓÏÍ ÎÁ ×ÔÏÒÏÍ-ÔÒÅÔØÅÍ ÕÒÏ×ÎÅ ×ÌÏÖÅÎÎÏÓÔÉ ÏÂÑÚÁÔÅÌØÎÏ -ÚÁÐÕÔÁÅÛØÓÑ. á ÅÓÌÉ ÎÅ ÐÉÓÁÔØ, Á ÒÉÓÏ×ÁÔØ ÎÁ ÜËÒÁÎÅ ÍÙÛËÏÊ ÓÔÒÅÌÏÞËÉ? -ôÏÇÄÁ ÍÏÖÎÏ ÏÈ×ÁÔÉÔØ ×ÚÇÌÑÄÏÍ ÄÏ×ÏÌØÎÏ ÓÌÏÖÎÕÀ ÓÈÅÍÕ ÐÏÔÏËÏ× ÄÁÎÎÙÈ. ó -×ÅÔ×ÌÅÎÉÑÍÉ, ÓÌÉÑÎÉÑÍÉ É ÍÎÏÇÏ ÞÅÍ ÅÝÅ. -

-ïÔ×ÌÅËÁÑÓØ ÎÅÍÎÏÇÏ ÏÔ ÔÅÍÙ: á ÎÅ ËÁÖÅÔÓÑ ÌÉ ×ÁÍ, ÞÔÏ ×ÒÅÍÑ -ÇÒÁÆÉÞÅÓËÉÈ ÉÎÔÅÒÆÅÊÓÏ× ËÁË ÔÁËÏ×ÙÈ ÚÁËÁÎÞÉ×ÁÅÔÓÑ? çÒÑÄÅÔ ×ÒÅÍÑ -ÉÎÔÅÒÆÅÊÓÏ× ÇÏÌÏÓÏ×ÙÈ, ËÏÔÏÒÙÅ, ËÁË ÎÉ ÓÔÒÁÎÎÏ ËÕÄÁ ÂÌÉÖÅ Ë ËÏÍÁÎÄÎÏÊ -ÓÔÒÏËÅ Unix, ÞÅÍ Ë ÇÒÁÆÉÞÅÓËÏÍÕ ÉÎÔÅÒÆÅÊÓÕ Windows. ÷ÅÄØ ÒÅÞØ ÌÉÎÅÊÎÁ, É -ÂÕÄÅ ÎÁÄÌÅÖÁÝÉÍ ÏÂÒÁÚÏÍ ÒÁÓÐÏÚÎÁÎÁ, ÐÒÅ×ÒÁÝÁÅÔÓÑ × ÔÏÔ ÓÁÍÙÊ ÐÏÔÏË -ÔÅËÓÔÏ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ, ËÏÔÏÒÙÊ ÔÁË ÌÀÂÑÔ ÔÒÁÄÉÃÉÏÎÎÙÅ ÕÔÉÌÉÔÙ Unix. -þÔÏ ÖÅ ËÁÓÁÅÔÓÑ ÓÉÎÔÅÚÁ ÒÅÞÉ, ÔÏ ÜÔÁ ÚÁÄÁÞÁ ÐÒÏÓÔÏ ÕÖÅ ÒÅÛÅÎÁ — ÂÅÒÅÔÅ -festival É ÐÅÒÅÎÁÚÎÁÞÁÅÔÅ ×Ù×ÏÄ ÎÁ ÎÅÇÏ. ðÏÔÒÅÂÕÅÔÓÑ, ÐÒÁ×ÄÁ ÎÅÍÎÏÇÏ -ÉÚÍÅÎÉÔØ ÓÉÎÔÁËÓÉÓ shell'Á É, ÏÓÏÂÅÎÎÏ, ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ, ÞÔÏÂÙ -ËÏÍÁÎÄÙ ÂÙÌÏ ÕÄÏÂÎÏ ÐÒÏÉÚÎÏÓÉÔØ, Á ×ÙÄÁÞÕ — ×ÏÓÐÒÉÎÉÍÁÔØ ÎÁ ÓÌÕÈ. -

-îÏ ÇÏÌÏÓÏ×ÏÊ ××ÏÄ — ÐÏËÁ ÅÝÅ ÔÕÍÁÎÎÏÅ ÂÕÄÕÝÅÅ. âÌÉÖÁÊÛÉÅ ÇÏÄÁ Ä×Á-ÔÒÉ -ÎÁÍ ÐÒÅÄÓÔÏÉÔ ÖÉÔØ Ó ÍÙÛËÏÊ, ÏËÏÛËÁÍÉ É ÉËÏÎËÁÍÉ, ËÏÔÏÒÙÍ ËÓÔÁÔÉ, -ÐÒÉÍÅÒÎÏ ÓÔÏÌØËÏ ÖÅ ÌÅÔ, ÞÔÏ É Unix. -

-éÔÁË, ËÁËÉÍ ÖÅ ÄÏÌÖÅÎ ÂÙÔØ ÉÓÔÉÎÎÏ ÀÎÉËÓÑÞÉÊ ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ? +В командной строке так нельзя. Хотя со стороны ядра Unix принципиальных +возражений нет. Другое дело что пытаясь записать это с каким угодно +синтаксисом на втором-третьем уровне вложенности обязательно +запутаешься. А если не писать, а рисовать на экране мышкой стрелочки? +Тогда можно охватить взглядом довольно сложную схему потоков данных. С +ветвлениями, слияниями и много чем еще. +

+Отвлекаясь немного от темы: А не кажется ли вам, что время +графических интерфейсов как таковых заканчивается? Грядет время +интерфейсов голосовых, которые, как ни странно куда ближе к командной +строке Unix, чем к графическому интерфейсу Windows. Ведь речь линейна, и +буде надлежащим образом распознана, превращается в тот самый поток +текстовой информации, который так любят традиционные утилиты Unix. +Что же касается синтеза речи, то эта задача просто уже решена — берете +festival и переназначаете вывод на него. Потребуется, правда немного +изменить синтаксис shell'а и, особенно, регулярных выражений, чтобы +команды было удобно произносить, а выдачу — воспринимать на слух. +

+Но голосовой ввод — пока еще туманное будущее. Ближайшие года два-три +нам предстоит жить с мышкой, окошками и иконками, которым кстати, +примерно столько же лет, что и Unix. +

+Итак, каким же должен быть истинно юниксячий графический интерфейс?

    -
  1. äÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ ÅÄÉÎÙÊ ÓÐÏÓÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ. - üÔÏ ÐÏÚ×ÏÌÉÔ ÎÁÐÒÁ×ÌÑÔØ ×ÙÄÁÞÕ ÌÀÂÏÊ ÐÒÏÇÒÁÍÍÙ ÎÁ ×ÈÏÄ ÄÒÕÇÏÊ. -
  2. äÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÓÒÅÄÓÔ×Ï ÐÏÉÓËÁ ÛÁÂÌÏÎÏ× × ÜÔÏÍ ÐÏÔÏËÅ - ÉÎÆÏÒÍÁÃÉÉ, ÐÒÉÞÅÍ ÔÁËÏÅ, ÞÔÏÂÙ ×ÉÄÑ ÎÅÞÔÏ ÎÁ ÜËÒÁÎÅ, ÐÏÌØÚÏ×ÁÔÅÌØ ÌÅÇËÏ - ÍÏÇ ÓÆÏÒÍÕÌÉÒÏ×ÁÔØ ÚÁÄÁÞÕ «ÎÁÊÄÉ ÍÎÅ ×ÓÅ, ÐÏÈÏÖÅÅ ÎÁ ÜÔÏ» -
  3. îÅ ÄÏÌÖÎÏ ÓÕÝÅÓÔ×Ï×ÁÔØ ÍÏÎÓÔÒÏ× ÔÉÐÁ Microsoft Word ÉÌÉ Netscape +
  4. Должен существовать единый способ представления информации. + Это позволит направлять выдачу любой программы на вход другой. +
  5. Должно существовать средство поиска шаблонов в этом потоке + информации, причем такое, чтобы видя нечто на экране, пользователь легко + мог сформулировать задачу «Ð½Ð°Ð¹Ð´Ð¸ мне все, похожее на это» +
  6. Не должно существовать монстров типа Microsoft Word или Netscape Communicator. - äÏÌÖÎÁ ÂÙÔØ ÍÁÌÅÎØËÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ ÐÏËÁÚÁ ÆÏÒÍÁÔÉÒÏ×ÁÎÎÏÇÏ ÔÅËÓÔÁ, - ÄÒÕÇÁÑ ÍÁÌÅÎØËÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ ÐÏËÁÚÁ ÔÁÂÌÉà (ËÏÔÏÒÏÊ ÂÕÄÅÔ ÚÁÏÄÎÏ - ÐÏÌØÚÏ×ÁÔØÓÑ É ÓÒÅÄÓÔ×Ï ÄÏÓÔÕÐÁ Ë sql-ÂÁÚÅ), ÏÔÄÅÌØÎÁÑ ÕÔÉÌÉÔËÁ ÄÌÑ - ÄÏÓÔÕÐÁ Ë ÕÄÁÌÅÎÎÙÍ ÒÅÓÕÒÓÁÍ, ÂÏÌØÛÅ ÐÏÈÏÖÁÑ ÎÁ wget, + Должна быть маленькая утилитка для показа форматированного текста, + другая маленькая утилитка для показа таблиц (которой будет заодно + пользоваться и средство доступа к sql-базе), отдельная утилитка для + доступа к удаленным ресурсам, больше похожая на wget, -
  7. äÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ ÎÅÌÉÎÅÊÎÙÊ ÓÐÏÓÏ ÉÎÔÅÇÒÉÒÏ×ÁÎÉÑ ÜÔÉÈ ÕÔÉÌÉÔ, - ÔÁËÏÊ, ÞÔÏ Ó ÏÄÎÏÊ ÓÔÏÒÏÎÙ, ÐÏÌØÚÏ×ÁÔÅÌØ ÓÐÏÓÏÂÅÎ Ó ÎÉÍ ÓÐÒÁ×ÉÔØÓÑ - ÓÁÍ, Ó ÄÒÕÇÏÊ — ÏÎ ÐÏÚ×ÏÌÑÅÔ ÓÃÅÐÉÔØ wget - Ó ÐÏËÁÚÙ×ÁÌËÏÊ ÔÅËÓÔÁ É ÐÏÌÕÞÉÔØ ÜË×É×ÁÌÅÎÔ Netscape. üÔÏÔ ÓÐÏÓÏ - ÄÏÌÖÅÎ ÉÍÅÔØ ÉÎÔÕÉÔÉ×ÎÏ ÑÓÎÏÅ ÉÎÔÅÒÆÅÊÓÎÏÅ ×ÙÒÁÖÅÎÉÅ. +
  8. Должен существовать нелинейный способ интегрирования этих утилит, + такой, что с одной стороны, пользователь способен с ним справиться + сам, с другой — он позволяет сцепить wget + с показывалкой текста и получить эквивалент Netscape. Этот способ + должен иметь интуитивно ясное интерфейсное выражение.

-åÓÔÅÓÔ×ÅÎÎÏ, ÞÔÏ ÒÅÁÌØÎÁÑ ÓÒÅÄÁ, ÐÏÓÔÒÏÅÎÎÁÑ ÎÁ ÜÔÉÈ ÐÒÉÎÃÉÐÁÈ, ÎÅ ÂÕÄÅÔ -ÓÏÓÔÏÑÔØ ÉÚ ÏÄÎÉÈ ÇÏÌÙÈ ËÉÒÐÉÞÉËÏ×. ÷ ÄÉÓÔÒÉÂÕÔÉ× ÄÏÌÖÎÏ ×ÈÏÄÉÔØ -ÎÅÓËÏÌØËÏ ÓÏÔÅÎ ÓËÒÉÐÔÏ×, ËÏÔÏÒÙÅ ÂÕÄÕÔ ÓÏÚÄÁ×ÁÔØ Õ ÐÏÌØÚÏ×ÁÔÅÌÑ -×ÐÅÞÁÔÌÅÎÉÅ, ÞÔÏ Õ ÎÅÇÏ ÅÓÔØ É Netscape É Word É Excel. îÏ ÅÓÌÉ ÅÍÕ -×ÄÒÕÇ ÚÁÈÏÞÅÔÓÑ ÏÔÏÒ×ÁÔØ ÓÞÉÔÁÌËÕ ÆÏÒÍÕÌ ÏÔ ÜÌÅËÔÒÏÎÎÏÊ ÔÁÂÌÉÃÙ É -×ÏÔËÎÕÔØ ÅÅ (×ÍÅÓÔÅ Ó sql-ÉÎÔÅÒÆÅÊÓÏÍ) ×ÎÕÔÒØ ÔÅËÓÔÏ×ÏÇÏ ÄÏËÕÍÅÎÔÁ, ÜÔÏ -ÄÏÌÖÎÏ ÄÅÌÁÔØÓÑ ÄÁÖÅ ÎÅ ÎÁÐÉÓÁÎÉÅÍ ÐÑÔÉ ÓÔÒÏË, Á ÎÅÓËÏÌØËÉÍÉ Ä×ÉÖÅÎÉÑÍÉ -ÍÙÛÉ. éÎÔÅÒÅÓÎÁÑ ÍÅÔÁÆÏÒÁ ÎÁ ÜÔÕ ÔÅÍÕ ÂÙÌÁ ÒÅÁÌÉÚÏ×ÁÎÁ × Ó×ÏÅ ×ÒÅÍÑ ×Ï -FrameWork — Õ ËÁÖÄÏÇÏ ÏËÎÁ ÂÙÌÁ ÌÉÃÅ×ÁÑ ÓÔÏÒÏÎÁ (ÐÒÉÍÅÒÎÏ ÔÏ, ÞÔÏ -ÏËÁÖÅÔÓÑ ÎÁ ÐÒÉÎÔÅÒÅ) É ÉÚÎÁÎËÁ (ÍÁËÒÏÓ ËÏÔÏÒÙÊ ÜÔÏ ÇÅÎÅÒÉÒÕÅÔ). -

-éÎÔÅÒÅÓÎÏ, ÞÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÁÑ ÒÅÁÌÉÚÁÃÉÑ ÜÔÏÊ ËÏÎÃÅÐÃÉÉ ÍÏÖÅÔ ÐÒÉ×ÅÓÔÉ -Ë ÓÕÝÅÓÔ×ÅÎÎÏÍÕ ÕÍÅÎØÛÅÎÉÀ ÒÁÚÍÅÒÏ× ÄÉÓÔÒÉÂÕÔÉ×Á. ÷Ù ÎÉËÏÇÄÁ ÎÅ -ÚÁÄÕÍÙ×ÁÌÉÓØ ÓËÏÌØËÏ ÒÁÚÎÙÈ http-ËÌÉÅÎÔÏ× ×ÈÏÄÉÔ × ÔÉÐÉÞÎÙÊ ÄÉÓÔÒÉÂÕÔÉ× -Linux? óÈÏÄÕ: Netscape, Lynx, wget, http-ÐÁËÅÔ ÄÌÑ Tcl, libwww-perl. -á ×ÅÄØ È×ÁÔÉÌÏ ÂÙ ÏÄÎÏÇÏ, ÎÏ ÈÏÒÏÛÅÇÏ. é ÔÁË ÄÌÑ ×ÓÅÇÏ ÏÓÔÁÌØÎÏÇÏ. -

-ðÒÅÄ×ÉÖÕ ×ÏÚÒÁÖÅÎÉÑ, ÞÔÏ ÏÐÉÓÁÎÎÁÑ ÓÉÓÔÅÍÁ — ÒÁÊ ÄÌÑ ÐÒÏÇÒÁÍÍÉÓÔÁ, ÎÏ ÎÅ -ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ. ðÏÌØÚÏ×ÁÔÅÌÀ ÎÅ ÎÕÖÎÙ reusable components — ÅÍÕ -ÐÏÄÁ×ÁÊ ÇÏÔÏ×ÙÅ ÐÒÉÌÏÖÅÎÉÑ. äÁ, ÎÏ... åÓÌÉ ÓÉÓÔÅÍÁ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ -ÏÄÎÏ ÂÏÌØÛÏÅ ÓÒÅÄÓÔ×Ï ÄÌÑ ÂÙÓÔÒÏÊ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÊ, ÔÏ ÚÁ -ÐÏÓÌÅÄÎÉÍÉ ÄÅÌÏ ÎÅ ÓÔÁÎÅÔ — ÎÁÊÄÅÔÓÑ ÎÅÍÁÌÏ (ÇÏÒÁÚÄÏ ÂÏÌØÛÅ ÞÅÍ -ÕÞÁÓÔÎÉËÏ× «ÂÁÚÁÒÁ» ÓÅÊÞÁÓ) ÌÀÄÅÊ ËÏÔÏÒÙÅ ÚÁ ÄÅÎØÇÉ, ÄÌÑ ÕÄÏ×ÌÅÔ×ÏÒÅÎÉÑ -ÓÏÂÓÔ×ÅÎÎÙÈ ÐÏÔÒÅÂÎÏÓÔÅÊ, É ÐÒÏÓÔÏ ÒÁÄÉ ÓÁÍÏ×ÙÒÁÖÅÎÉÑ ÂÕÄÕÔ ÜÔÉ ÓÁÍÙÅ -ÐÒÉÌÏÖÅÎÉÑ ËÌÅÐÁÔØ. ðÒÁ×ÄÁ, ÜÔÏ ÄÏÌÖÎÁ ÂÙÔØ ÓÒÅÄÁ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÊ, -ËÏÔÏÒÁÑ ÓÏÏÔÎÏÓÉÔÓÑ Ó ÓÕÝÅÓÔ×ÕÀÝÉÍÉ Delphi É C Builder-ÁÍÉ, ÐÒÉÍÅÒÎÏ ËÁË -«óÒÅÄÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ Unix» ×ÒÅÍÅÎ ëÅÒÎÉÇÁÎÁ É ðÁÊËÁ -(shell+awk+yacc+C) ÓÏÏÔÎÏÓÉÌÁÓØ Ó ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍÉ × ÔÅ ×ÒÅÍÅÎÁ ÑÚÙËÁÍÉ -ÔÉÐÁ Fortran É Basic. -

-ðÏÓÍÏÔÒÉÍ, ËÁËÉÍÉ ÖÅ ÓÒÅÄÓÔ×ÁÍÉ ÍÙ ÒÁÓÐÏÌÁÇÁÅÍ ÓÅÊÞÁÓ, ÄÌÑ ÔÏÇÏ, ÞÔÏÂÙ -ÐÏÐÙÔÁÔØÓÑ ÒÅÁÌÉÚÏ×ÁÔØ ÐÏÄÏÂÎÕÀ ÉÄÅÀ. îÁÞÎÅÍ Ó ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÓÐÏÓÏÂÁ -ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÉÎÆÏÒÍÁÃÉÉ. ÷ NextStep ÐÏÐÙÔÁÌÉÓØ Ó ÜÔÏÊ ÃÅÌØÀ -ÉÓÐÏÌØÚÏ×ÁÔØ Display Postscript. ë ÓÏÖÁÌÅÎÉÀ, ËÒÕÐÎÙÍ ÎÅÄÏÓÔÁÔËÏÍ -Postscript Ñ×ÌÑÅÔÓÑ ÔÏ, ÞÔÏ ÜÔÏ ÐÏÌÎÏÃÅÎÎÙÊ ÐÒÏÃÅÄÕÒÎÙÊ ÑÚÙË, É -ÐÒÅÄÓÔÁ×ÉÔØ ÓÅÂÅ ËÁË ×ÙÇÌÑÄÉÔ ÐÏÓÔÓËÒÉÐÔÏ×ÓËÉÊ ÆÁÊÌ, ÎÅ -ÐÒÏÉÎÔÅÒÐÒÅÔÉÒÏ×Á× ÅÇÏ ÐÏÌÎÏÓÔØÀ, ÐÒÉÎÃÉÐÉÁÌØÎÏ ÎÅÌØÚÑ. ðÏÜÔÏÍÕ -Postscript ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÐÏÄÈÏÄÉÔ ÄÌÑ ÐÒÏÇÒÁÍÍÎÏÊ ÏÂÒÁÂÏÔËÉ. -ëÒÏÍÅ ÔÏÇÏ, Postscript ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÚÁÂÏÔÉÔÓÑ Ï ÓÏÈÒÁÎÅÎÉÉ -×ÙÓÏËÏÕÒÏ×ÎÅ×ÏÊ ÓÏÄÅÒÖÁÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ — ÄÅÌÅÎÉÑ ÎÁ ËÁËÉÅ-ÌÉÂÏ -ÌÏÇÉÞÅÓËÉÅ ÞÁÓÔÉ, ÎÁÐÒÉÍÅÒ. -

-÷Ï ×ÓÅÈ -ÏÓÔÁÌØÎÙÈ ÓÍÙÓÌÁÈ ÏÎ ÓÏ×ÅÒÛÅÎÎÏ ÚÁÍÅÞÁÔÅÌÅΠ— ÛÉÒÏËÏ ÒÁÓÐÒÏÓÔÒÁÎÅÎ, ÅÓÔØ -Ó×ÏÂÏÄÎÏ ÒÁÓÐÒÏÓÔÒÁÎÑÅÍÙÊ ËÏÄ ÄÌÑ ÉÎÔÅÒÐÒÅÔÁÃÉÉ (Ghostscript), ËÁÒÔÉÎËÉ -ÐÅÒÅÄÁÀÔÓÑ × ÔÏÍ ÖÅ ÐÏÔÏËÅ, ÞÔÏ É ÔÅËÓÔ. -

-Display PDF ÕÖÅ ÇÏÒÁÚÄÏ ÌÕÞÛÅ, ÞÅÍ Display Postscript, ÐÏÓËÏÌØËÕ PDF - -ÑÚÙË ÐÒÅÉÍÕÝÅÓÔ×ÅÎÎÏ ÄÅËÌÁÒÁÔÉ×ÎÙÊ, Á ÐÒÏÇÒÁÍÍÙ ÎÁ ÄÅËÌÁÒÁÔÉ×ÎÙÈ ÑÚÙËÁÈ -ÇÏÒÁÚÄÏ ÌÕÞÛÅ ÐÏÄÄÁÀÔÓÑ Á×ÔÏÍÁÔÉÚÉÒÏ×ÁÎÎÏÍÕ ÁÎÁÌÉÚÕ, ÞÅÍ ÐÒÏÇÒÁÍÍÙ ÎÁ -ÐÒÏÃÅÄÕÒÎÙÈ. åÓÔØ × PDF É ÍÉÎÉÍÁÌØÎÙÅ ÓÒÅÄÓÔ×Á ÓÔÒÕËÔÕÒÉÒÏ×ÁÎÉÑ, -ÎÁÐÒÉÍÅÒ ÇÉÐÅÒÓÓÙÌËÉ. îÏ ÔÕÔ ÇÏÒÁÚÄÏ ÈÕÖÅ ËÁË ÓÏ ÓÒÅÄÓÔ×ÁÍÉ ÒÅÎÄÅÒÉÎÇÁ, ÈÏÔÑ -Alladin (Á ÔÅÐÅÒØ ÕÖÅ É GNU) Ghostscript Ó ÜÔÉÍ ÓÐÒÁ×ÌÑÅÔÓÑ, É ÏÓÏÂÅÎÎÏ -ÓÏ ÓÒÅÄÓÔ×ÁÍÉ ÇÅÎÅÒÁÃÉÉ. ëÒÏÍÅ pdftex É ÔÏÇÏ ÖÅ Ghostscript ÎÉÞÅÇÏ É -ÎÅÔ. -

-ðÏÐÒÏÂÕÅÍ ÚÁÊÔÉ Ó ÄÒÕÇÏÊ ÓÔÏÒÏÎÙ — ÓÏ ÓÔÏÒÏÎÙ ÑÚÙËÏ× ÌÏÇÉÞÅÓËÏÊ -ÒÁÚÍÅÔËÉ. óÒÁÚÕ ÖÅ × ÇÏÌÏ×Õ ÐÒÉÈÏÄÉÔ SGML Ó ÅÇÏ ÎÁÉÂÏÌÅÅ -ÒÁÓÐÒÏÓÔÒÁÎÅÎÎÙÍ ×ÁÒÉÁÎÔÏÍ HTML É ÎÁÓÌÅÄÎÉËÏÍ XML. ðÏÈÏÖÅ, ÞÔÏ ÜÔÏ -ÉÍÅÎÎÏ ÔÏ, ÞÔÏ ÎÁÍ ÎÁÄÏ. ðÒÁ×ÄÁ, × HTML ËÁÒÔÉÎËÉ ÈÒÁÎÑÔÓÑ ÏÔÄÅÌØÎÏ ÏÔ -ÔÅËÓÔÁ, ÎÏ ËÔÏ ÍÅÛÁÅÔ ÐÒÉÄÕÍÁÔØ ÄÒÕÇÕÀ DTD. úÁÔÏ ÅÓÔØ ÓÒÅÄÓÔ×Á ÓËÏÌØ -ÕÇÏÄÎÏ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÏÇÏ ÌÏÇÉÞÅÓËÏÇÏ ÓÔÒÕËÔÕÒÉÒÏ×ÁÎÉÑ, ÓÕÝÅÓÔ×ÅÎÎÏ -ÕÐÒÏÝÁÀÝÉÅ ÏÂßÑÓÎÅÎÉÅ ÐÒÏÇÒÁÍÍÅ ÔÏÇÏ, ÞÔÏ ÎÁÍ ÏÔ ÎÅÅ ÎÕÖÎÏ. -

-åÝÅ ÏÄÎÉÍ, ÎÅÏÖÉÄÁÎÎÙÍ, ËÁÎÄÉÄÁÔÏÍ ÎÁ ÒÏÌØ ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÓÐÏÓÏÂÁ -ÐÒÅÄÓÔÁ×ÌÅÎÉÑ Ñ×ÌÑÅÔÓÑ X-ÐÒÏÔÏËÏÌ. ó ÏÞÅ×ÉÄÎÏÓÔØÀ, ×ÓÅ ÞÔÏ ÍÏÖÎÏ -ÐÏËÁÚÁÔØ ÎÁ ÜËÒÁÎÅ, ÍÏÖÎÏ ÐÒÅÄÓÔÁ×ÉÔØ × ×ÉÄÅ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ËÏÍÁÎÄ -ÜÔÏÇÏ ÑÚÙËÁ. âÏÌÅÅ ÔÏÇÏ, Ó ÐÏÑ×ÌÅÎÉÅÍ Xprt ÏÎ ÔÅÐÅÒØ ÇÏÄÉÔÓÑ É ËÁË ÑÚÙË -ÏÐÉÓÁÎÉÑ ÓÔÒÁÎÉÃ. ìÀÂÁÑ ÓÕÝÅÓÔ×ÕÀÝÁÑ ÐÒÏÇÒÁÍÍÁ ÐÏÄ Unix ÕÍÅÅÔ ÅÇÏ -ÇÅÎÅÒÉÒÏ×ÁÔØ. åÄÉÎÓÔ×ÅÎÎÙÊ ÎÅÄÏÓÔÁÔÏË — ÎÉËÔÏ ÎÅ ÐÙÔÁÌÓÑ ÎÁÐÉÓÁÔØ -ÐÒÏÇÒÁÍÍÕ ÏÂÒÁÂÏÔËÉ, ËÏÔÏÒÁÑ ÎÅ ÂÙÌÁ ÂÙ X-ÓÅÒ×ÅÒÏÍ. ë ÔÏÍÕ ÖÅ, × -X-ÐÒÏÔÏËÏÌÅ ÐÏÔÏË ÓÏÂÙÔÉÊ ÏÔ ÐÏÌØÚÏ×ÁÔÅÌÑ Ë ÐÒÏÇÒÁÍÍÅ ÏÞÅÎØ ÎÅ ÐÏÈÏÖ -ÎÁ ÐÏÔÏË ÓÏÂÙÔÉÊ ÏÔ ÐÒÏÇÒÁÍÍÙ Ë ÐÏÌØÚÏ×ÁÔÅÌÀ (è-ÓÅÒ×ÅÒÕ). -

-é ÅÝÅ ÏÄÉÎ ÎÅÔÒÉ×ÉÁÌØÎÙÊ ËÁÎÄÉÄÁÔ: +Естественно, что реальная среда, построенная на этих принципах, не будет +состоять из одних голых кирпичиков. В дистрибутив должно входить +несколько сотен скриптов, которые будут создавать у пользователя +впечатление, что у него есть и Netscape и Word и Excel. Но если ему +вдруг захочется оторвать считалку формул от электронной таблицы и +воткнуть ее (вместе с sql-интерфейсом) внутрь текстового документа, это +должно делаться даже не написанием пяти строк, а несколькими движениями +мыши. Интересная метафора на эту тему была реализована в свое время во +FrameWork — у каждого окна была лицевая сторона (примерно то, что +окажется на принтере) и изнанка (макрос который это генерирует). +

+Интересно, что последовательная реализация этой концепции может привести +к существенному уменьшению размеров дистрибутива. Вы никогда не +задумывались сколько разных http-клиентов входит в типичный дистрибутив +Linux? Сходу: Netscape, Lynx, wget, http-пакет для Tcl, libwww-perl. +А ведь хватило бы одного, но хорошего. И так для всего остального. +

+Предвижу возражения, что описанная система — рай для программиста, но не +для пользователя. Пользователю не нужны reusable components — ему +подавай готовые приложения. Да, но... Если система представляет собой +одно большое средство для быстрой разработки приложений, то за +последними дело не станет — найдется немало (гораздо больше чем +участников «Ð±Ð°Ð·Ð°Ñ€Ð°» сейчас) людей которые за деньги, для удовлетворения +собственных потребностей, и просто ради самовыражения будут эти самые +приложения клепать. Правда, это должна быть среда разработки приложений, +которая соотносится с существующими Delphi и C Builder-ами, примерно как +«Ð¡Ñ€ÐµÐ´Ð° программирования Unix» времен Кернигана и Пайка +(shell+awk+yacc+C) соотносилась с распространенными в те времена языками +типа Fortran и Basic. +

+Посмотрим, какими же средствами мы располагаем сейчас, для того, чтобы +попытаться реализовать подобную идею. Начнем с универсального способа +представления информации. В NextStep попытались с этой целью +использовать Display Postscript. К сожалению, крупным недостатком +Postscript является то, что это полноценный процедурный язык, и +представить себе как выглядит постскриптовский файл, не +проинтерпретировав его полностью, принципиально нельзя. Поэтому +Postscript совершенно не подходит для программной обработки. +Кроме того, Postscript совершенно не заботится о сохранении +высокоуровневой содержательной информации — деления на какие-либо +логические части, например. +

+Во всех +остальных смыслах он совершенно замечателен — широко распространен, есть +свободно распространяемый код для интерпретации (Ghostscript), картинки +передаются в том же потоке, что и текст. +

+Display PDF уже гораздо лучше, чем Display Postscript, поскольку PDF - +язык преимущественно декларативный, а программы на декларативных языках +гораздо лучше поддаются автоматизированному анализу, чем программы на +процедурных. Есть в PDF и минимальные средства структурирования, +например гиперссылки. Но тут гораздо хуже как со средствами рендеринга, хотя +Alladin (а теперь уже и GNU) Ghostscript с этим справляется, и особенно +со средствами генерации. Кроме pdftex и того же Ghostscript ничего и +нет. +

+Попробуем зайти с другой стороны — со стороны языков логической +разметки. Сразу же в голову приходит SGML с его наиболее +распространенным вариантом HTML и наследником XML. Похоже, что это +именно то, что нам надо. Правда, в HTML картинки хранятся отдельно от +текста, но кто мешает придумать другую DTD. Зато есть средства сколь +угодно высокоуровневого логического структурирования, существенно +упрощающие объяснение программе того, что нам от нее нужно. +

+Еще одним, неожиданным, кандидатом на роль универсального способа +представления является X-протокол. С очевидностью, все что можно +показать на экране, можно представить в виде последовательности команд +этого языка. Более того, с появлением Xprt он теперь годится и как язык +описания страниц. Любая существующая программа под Unix умеет его +генерировать. Единственный недостаток — никто не пытался написать +программу обработки, которая не была бы X-сервером. К тому же, в +X-протоколе поток событий от пользователя к программе очень не похож +на поток событий от программы к пользователю (Ð¥-серверу). +

+И еще один нетривиальный кандидат:

 .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}
@@ -278,77 +278,77 @@ X-
 } -tags {text obj utag5}
 

-þÔÏ ÜÔÏ ÔÁËÏÅ ÐÏ-×ÁÛÅÍÕ? ÷ÅËÔÏÒÎÙÊ ÇÒÁÆÉÞÅÓËÉÊ ÆÏÒÍÁÔ? ðÒÏÇÒÁÍÍÁ? -é ÔÏ É ÄÒÕÇÏÅ — ÜÔÏ ÒÉÓÕÎÏË, ÓÄÅÌÁÎÎÙÊ × ÇÒÁÆÉÞÅÓËÏÊ ÐÒÏÇÒÁÍÍÅ tkpaint, -ËÏÔÏÒÙÊ ÎÁ ÓÁÍÏÍ ÄÅÌÅ Ñ×ÌÑÅÔÓÑ ÐÒÏÇÒÁÍÍÏÊ ÎÁ ÑÚÙËÅ Tcl (ÎÁ ËÏÔÏÒÏÍ -ÎÁÐÉÓÁÎ ÓÁÍ Tkpaint). -

-ôÅÐÅÒØ Ï ÔÏÍ, ÞÔÏ ÎÅ Ñ×ÌÑÅÔÓÑ ÄÏËÕÍÅÎÔÏÍ — ÍÅÎÀ, ÄÉÁÌÏÇÏ×ÏÅ ÏËÎÏ. -úÁÍÅÔÉÍ, ÞÔÏ ÎÁ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ÐÏÄÏÂÎÙÈ ×ÅÝÅÊ ÕÈÏÄÉÔ ÌØ×ÉÎÁÑ ÄÏÌÑ -ÔÒÕÄÁ ÐÏÌØÚÏ×ÁÔÅÌÅÊ RAD-ÓÉÓÔÅÍ, ÈÏÔÑ ËÁÚÁÌÏÓØ ÂÙ ×ÏÔ ÞÔÏ RAD-ÉÎÓÔÒÕÍÅÎÔÙ -ÄÅÌÁÀÔ ÈÏÒÏÛÏ, ÔÁË ÜÔÏ ÄÉÁÌÏÇÏ×ÙÅ ÏËÎÁ. -

-îÁ ÓÁÍÏÍ ÄÅÌÅ ÜÔÏ ÎÅ ÔÁË. -ðÏÒÏÞÅÎ ÓÁÍ ÐÏÄÈÏÄ Ë ÉÎÔÅÒÆÅÊÓÕ ËÁË Ë ËÁÒÔÉÎËÅ. ðÏÌØÚÏ×ÁÔÅÌØ ÔÉÐÉÞÎÏÇÏ -Delphi ÒÁÓÓÕÖÄÁÅÔ ÔÁË «ÒÁÚÍÅÓÔÉÍ ÚÄÅÓØ ×ÏÔ ÜÔÏÔ ÉÎÔÅÒÆÅÊÓÎÙÊ ÜÌÅÍÅÎÔ. ïÎ -ÂÕÄÅÔ ÄÅÌÁÔØ ÔÏ-ÔÏ É ÔÏ-ÔÏ». ðÒÉ ÜÔÏÍ ÍÉÎÉÍÁÌØÎÙÅ ÉÚÍÅÎÅÎÉÑ, ÔÁËÉÅ ËÁË -ÐÅÒÅÈÏÄ Ë ÄÒÕÇÏÍÕ ÛÒÉÆÔÕ ÐÒÉ ÓÏÚÄÁÎÉÉ ÎÁÃÉÏÎÁÌØÎÏÊ ×ÅÒÓÉÉ ÐÒÏÇÒÁÍÍÙ, ÉÌÉ -Õ×ÅÌÉÞÅÎÉÅ ÒÁÚÍÅÒÁ ÐÏÌÑ âä ÐÒÉ×ÏÄÑÔ Ë ÐÏÌÎÏÍÕ ÒÁÚ×ÁÌÕ ÔÝÁÔÅÌØÎÏ -ÐÒÏÄÕÍÁÎÎÏÇÏ ×ÎÅÛÎÅÇÏ ×ÉÄÁ ÏËÎÁ. -

-îÅÓËÏÌØËÏ ÂÏÌÅÅ ÒÁÚÕÍÎÙÍ ÐÏÄÈÏÄÏÍ -ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ÉÓÐÏÌØÚÏ×ÁÎÉÅ geometry manager, ËÁË × Tk ÉÌÉ Xview, ËÏÇÄÁ -ÒÁÓÐÏÌÏÖÅÎÉÅ ×ÉÄÉÍÙÈ ÜÌÅÍÅÎÔÏ× ÏÐÒÅÄÅÌÑÅÔÓÑ × ÔÅÒÍÉÎÁÈ ÉÈ ÏÔÎÏÓÉÔÅÌØÎÏÇÏ -ÐÏÌÏÖÅÎÉÑ «×ÏÔ ÜÔÁ ËÎÏÐËÁ ÐÏÄ ÜÔÏÊ ÓÔÒÏËÏÊ ××ÏÄÁ, ×ÙÒÁ×ÎÅÎÎÁÑ ÐÏ ÅÅ -ÐÒÁ×ÏÊ ÇÒÁÎÉÃÅ». ïÞÅ×ÉÄÎÏ, ÞÔÏ ÔÁËÏÊ ÓÐÏÓÏ ÂÏÌÅÅ ÕÓÔÏÊÞÉ× Ë ÉÚÍÅÎÅÎÉÑÍ -ÒÁÚÍÅÒÏ× ÛÒÉÆÔÁ ÉÌÉ ÐÏÌÅÊ ÂÁÚÙ ÄÁÎÎÙÈ. -

-ë ÓÏÖÁÌÅÎÉÀ, ÍÏÝÎÙÅ geometry manager'Ù ÉÍÅÀÔ ÏÄÉÎ ÓÕÝÅÓÔ×ÅÎÎÙÊ -ÎÅÄÏÓÔÁÔÏË — ÏÎÉ ÏÔÕÞÁÀÔ ÐÏÌØÚÏ×ÁÔÅÌÑ ÐÏÌØÚÏ×ÁÔØÓÑ ÇÒÁÆÉÞÅÓËÉÍÉ -application-designer'ÁÍÉ. úÁÞÅÍ, ÓÐÒÁÛÉ×ÁÅÔÓÑ ÒÉÓÏ×ÁÔØ ÎÁ ÜËÒÁÎÅ ÄÅÓÑÔØ -ÐÏÌÅÊ ××ÏÄÁ, ËÏÇÄÁ ÔÒÅÈÓÔÒÏÞÎÙÊ ÓËÒÉÐÔ Ó ÃÉËÌÏÍ foreach ÓÁÍ ÉÈ -ÚÁÍÅÞÁÔÅÌØÎÏ ÎÁÒÉÓÕÅÔ. èÏÔÑ, ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÒÁÚÕÍÎÏÊ ÂÙÌÁ ÂÙ ÇÉÂËÁÑ -ËÏÍÂÉÎÁÃÉÑ ÏÂÏÉÈ ÐÏÄÈÏÄÏ×. ðÒÏÂÌÅÍÁ × ÔÏÍ, ÞÔÏ ÄÌÑ ÜÔÏÇÏ ÎÕÖÎÏ ÔÏ, ÞÔÏ -ÎÅ ÏÂÅÓÐÅÞÉ×ÁÅÔÓÑ ÎÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ ÎÉ ÏÄÎÉÍ ÓÒÅÄÓÔ×ÏÍ RAD — ×ÏÚÍÏÖÎÏÓÔØ -ÐÅÒÅËÌÀÞÁÔØÓÑ ÍÅÖÄÕ ÇÒÁÆÉÞÅÓËÉÍ ÄÉÚÁÊÎÏÍ É ÐÉÓÁÎÉÅÍ ËÏÄÁ × ÌÀÂÏÊ ÍÏÍÅÎÔ. -

-îÏ ÜÔÏ ÔÏÌØËÏ ÏÄÎÁ ÓÔÏÒÏÎÁ ×ÏÐÒÏÓÁ. ÷ÔÏÒÁÑ ÚÁËÌÀÞÁÅÔÓÑ × ÔÏÍ, ÞÔÏ ÍÙ, -ÉÍÅÑ ÇÏÔÏ×ÕÀ ÐÒÏÇÒÁÍÍÕ Ó ÄÉÁÌÏÇÏ×ÙÍÉ ÏËÎÁÍÉ É ÐÒÏÞÉÍ ÇÒÁÆÉÞÅÓËÉÍ -ÉÎÔÅÒÆÅÊÓÏÍ, ÈÏÔÉÍ ÕÐÒÁ×ÌÑÔØ ÅÊ ÉÚ ÄÒÕÇÏÊ ÐÒÏÇÒÁÍÍÙ. îÁ ÄÁÎÎÙÊ ÍÏÍÅÎÔ -ÓÕÝÅÓÔ×ÕÅÔ ÔÏÌØËÏ ÏÄÉÎ ÓÐÏÓÏ ÒÅÛÅÎÉÑ ÜÔÏÊ ÐÒÏÂÌÅÍÙ — ×ÓÔÒÁÉ×ÁÎÉÅ × -ÐÒÏÇÒÁÍÍÕ ÍÁËÒÏÑÚÙËÁ, Ô.Å. ÎÁÂÏÒÁ ËÏÍÁÎÄ, ËÏÔÏÒÙÅ ÍÏÖÎÏ ÔÅÍ ÉÌÉ ÉÎÙÍ -ÓÐÏÓÏÂÏÍ ×ÙÚÙ×ÁÔØ, ÂÕÄØ ÔÏ ×ÓÔÒÏÅÎÎÙÊ ÑÚÙË ÔÉÐÁ WordBasic, ÉÌÉ ÍÅÔÏÄÙ -ÏÂßÅËÔÁ OLE ÉÌÉ CORBA, ËÏÇÄÁ ÓÁÍ ÐÏ ÓÅÂÅ ÑÚÙË ÒÅÁÌÉÚÏ×ÁÎ ÇÄÅ-ÔÏ -ÏÔÄÅÌØÎÏ, Á ÐÒÏÇÒÁÍÍÁ ÐÒÅÄÏÓÔÁ×ÌÑÅÔ ÔÏÌØËÏ ÎÁÂÏÒ ÆÕÎËÃÉÊ. -

-é × ÔÏÍ É × ÄÒÕÇÏÍ ÓÌÕÞÁÅ, ÎÁÂÏÒ ÆÕÎËÃÉÊ ËÁË ÐÒÁ×ÉÌÏ ÓÉÌØÎÏ ÏÔÌÉÞÁÅÔÓÑ -ÏÔ ÎÁÂÏÒÁ ÐÏÚÉÃÉÊ ÍÅÎÀ, Á ÎÁÂÏÒ ÉÈ ÐÁÒÁÍÅÔÒÏ× ÏÔ ÎÁÂÏÒÁ ÐÏÌÅÊ ××ÏÄÁ × -ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÈ ÄÉÁÌÏÇÏ×ÙÈ ÏËÎÁÈ. äÁ, ËÏÎÅÞÎÏ, ÅÓÔØ ÏÐÅÒÁÃÉÉ, ËÏÔÏÒÙÅ -ÍÏÇÕÔ ÂÙÔØ ÉÎÔÅÒÅÓÎÙ ÒÁÚÒÁÂÏÔÞÉËÁÍ ÐÒÉÌÏÖÅÎÉÊ, ÎÏ ÓÏ×ÅÒÛÅÎÎÏ ÎÅ ÎÕÖÎÙ -ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ÎÁÐÒÉÍÅÒ «ÏÔËÒÙÔØ ÆÁÊÌ É ÐÏÌÕÞÉÔØ ÅÇÏ ÄÅÓËÒÉÐÔÏÒ». -

-îÏ, ÐÒÉÎÃÉÐ ÐÅÒ×ÙÊ: ×ÓÅ ÞÔÏ ÍÏÖÅÔ ÓÄÅÌÁÔØ ÐÏÌØÚÏ×ÁÔÅÌØ, ÄÏÌÖÎÁ ÉÍÅÔØ -×ÏÚÍÏÖÎÏÓÔØ ÓÄÅÌÁÔØ ÐÒÏÇÒÁÍÍÁ. âÅÚ ÒÅÁÌÉÚÁÃÉÉ ÜÔÏÇÏ ÐÒÉÎÃÉÐÁ ÒÅÁÌÉÚÏ×ÁÔØ -ÂÁÚÏ×ÕÀ ÉÄÅÀ ÒÁÚÒÁÂÏÔËÉ ÐÒÉÌÏÖÅÎÉÑ ËÁË ÉÎÔÅÇÒÁÃÉÉ ÓÕÝÅÓÔ×ÕÀÝÉÈ -ÉÎÓÔÒÕÍÅÎÔÏ×, ÎÅ ÕÄÁÓÔÓÑ. -

-ðÒÉÎÃÉÐ ×ÔÏÒÏÊ: åÓÌÉ ÓÕÝÅÓÔ×ÕÀÔ ÏÐÅÒÁÃÉÉ, ÄÏÓÔÕÐÎÙÅ ÔÏÌØËÏ ÉÚ ÑÚÙËÁ -ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ, ÎÏ ÎÅ ÞÅÒÅÚ GUI, ÔÏ ÄÏÌÖÎÁ ÂÙÔØ ËÏÎÓÏÌØ, Ó ËÏÔÏÒÏÊ -ËÏÍÁÎÄÙ ÜÔÏÇÏ ÑÚÙËÁ ÍÏÖÎÏ ××ÅÓÔÉ. âÅÚ ÒÅÁÌÉÚÁÃÉÉ ÜÔÏÇÏ ÐÒÉÎÃÉÐÁ ÂÕÄÅÔ -ÎÅÕÄÏÂÎÏ ÏÔÌÁÖÉ×ÁÔØÓÑ É ÉÚÕÞÁÔØ ÐÏ×ÅÄÅÎÉÅ ÓÕÝÅÓÔ×ÕÀÝÉÈ ÐÒÉÌÏÖÅÎÉÊ. -éÚ×ÅÓÔÎÏ, ÞÔÏ ÐÅÒ×ÙÍ ÐÕÎËÔÏÍ × ÒÁÚÄÅÌÅ BUGS ÌÀÂÏÇÏ man ÄÏÌÖÎÏ ÉÄÔÉ -«User never reads documentation». ðÏÜÔÏÍÕ ÎÁÄÏ ÄÁÔØ ÐÏÌØÚÏ×ÁÔÅÌÀ -×ÏÚÍÏÖÎÏÓÔØ ÉÚÕÞÁÔØ ÓÉÓÔÅÍÕ ÜËÓÐÅÒÉÍÅÎÔÁÌØÎÙÍ ÐÕÔÅÍ. -

-ïÂÒÁÔÉÔÅ ×ÎÉÍÁÎÉÅ, ÞÔÏ × DOS ÓÕÝÅÓÔ×Ï×ÁÌ ËÏÍÁÎÄÎÙÊ ÑÚÙË, ÓÌÁÂÅÎØËÉÊ, ÎÏ -ÑÚÙË. ÷ Windows 3.1 ÂÙÌ Macro Recorder — ÐÏÐÙÔËÁ ÒÅÁÌÉÚÏ×ÁÔØ ÉÄÅÀ ÚÁÐÉÓÉ -ÓÃÅÎÁÒÉÅ× ÒÁÂÏÔÙ. ÷ Windows 95 ÅÇÏ ÕÖÅ ÎÅÔ. ðÏÐÙÔËÁ ÒÅÁÌÉÚÏ×ÁÔØ ÐÉÓÁÎÉÅ -ÓËÒÉÐÔÏ× ÐÕÔÅÍ ÐÒÏÔÏËÏÌÉÒÏ×ÁÎÉÑ ÄÅÊÓÔ×ÉÊ ÐÏÌØÚÏ×ÁÔÅÌÑ × GUI-ÓÒÅÄÅ -ÂÌÉÓÔÁÔÅÌØÎÏ ÐÒÏ×ÁÌÉÌÁÓØ. ðÏÞÅÍÕ? ðÏÔÏÍÕ ÞÔÏ ÆÉËÓÉÒÏ×ÁÌÉÓØ ÓÌÉÛËÏÍ -ÎÉÚËÏÕÒÏ×ÎÅ×ÙÅ ÓÏÂÙÔÉÑ — ÎÁÖÁÔÉÑ ËÎÏÐÏË ÍÙÛÉ × ÔÁËÉÈ-ÔÏ ËÏÏÒÄÉÎÁÔÁÈ. üÔÏ -ÓÕÝÅÓÔ×ÅÎÎÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÔÅÈ ÐÏÎÑÔÉÊ, ËÏÔÏÒÙÍÉ ÏÐÅÒÉÒÕÅÔ ÐÏÌØÚÏ×ÁÔÅÌØ -«÷ÙÔÁÝÉÍ ÎÁ×ÅÒÈ ÏËÎÏ Word É ×ÙÂÅÒÅÍ ÐÏÚÉÃÉÀ Open × ÍÅÎÀ File». åÓÌÉ ÂÙ -ÍÁËÒÏÓ ÚÁÐÉÓÁÎÎÙÊ ÍÁËÒÏ-ÒÅËÏÒÄÅÒÏÍ ×ÙÇÌÑÄÅÌ ÂÙ ËÁË +Что это такое по-вашему? Векторный графический формат? Программа? +И то и другое — это рисунок, сделанный в графической программе tkpaint, +который на самом деле является программой на языке Tcl (на котором +написан сам Tkpaint). +

+Теперь о том, что не является документом — меню, диалоговое окно. +Заметим, что на программирование подобных вещей уходит львиная доля +труда пользователей RAD-систем, хотя казалось бы вот что RAD-инструменты +делают хорошо, так это диалоговые окна. +

+На самом деле это не так. +Порочен сам подход к интерфейсу как к картинке. Пользователь типичного +Delphi рассуждает так «Ñ€Ð°Ð·Ð¼ÐµÑÑ‚Ð¸Ð¼ здесь вот этот интерфейсный элемент. Он +будет делать то-то и то-то». При этом минимальные изменения, такие как +переход к другому шрифту при создании национальной версии программы, или +увеличение размера поля БД приводят к полному развалу тщательно +продуманного внешнего вида окна. +

+Несколько более разумным подходом +представляется использование geometry manager, как в Tk или Xview, когда +расположение видимых элементов определяется в терминах их относительного +положения «Ð²Ð¾Ñ‚ эта кнопка под этой строкой ввода, выравненная по ее +правой границе». Очевидно, что такой способ более устойчив к изменениям +размеров шрифта или полей базы данных. +

+К сожалению, мощные geometry manager'ы имеют один существенный +недостаток — они отучают пользователя пользоваться графическими +application-designer'ами. Зачем, спрашивается рисовать на экране десять +полей ввода, когда трехстрочный скрипт с циклом foreach сам их +замечательно нарисует. Хотя, на самом деле разумной была бы гибкая +комбинация обоих подходов. Проблема в том, что для этого нужно то, что +не обеспечивается на данный момент ни одним средством RAD — возможность +переключаться между графическим дизайном и писанием кода в любой момент. +

+Но это только одна сторона вопроса. Вторая заключается в том, что мы, +имея готовую программу с диалоговыми окнами и прочим графическим +интерфейсом, хотим управлять ей из другой программы. На данный момент +существует только один способ решения этой проблемы — встраивание в +программу макроязыка, т.е. набора команд, которые можно тем или иным +способом вызывать, будь то встроенный язык типа WordBasic, или методы +объекта OLE или CORBA, когда сам по себе язык реализован где-то +отдельно, а программа предоставляет только набор функций. +

+И в том и в другом случае, набор функций как правило сильно отличается +от набора позиций меню, а набор их параметров от набора полей ввода в +соответствующих диалоговых окнах. Да, конечно, есть операции, которые +могут быть интересны разработчикам приложений, но совершенно не нужны +пользователям, например «Ð¾Ñ‚крыть файл и получить его дескриптор». +

+Но, принцип первый: все что может сделать пользователь, должна иметь +возможность сделать программа. Без реализации этого принципа реализовать +базовую идею разработки приложения как интеграции существующих +инструментов, не удастся. +

+Принцип второй: Если существуют операции, доступные только из языка +программирования, но не через GUI, то должна быть консоль, с которой +команды этого языка можно ввести. Без реализации этого принципа будет +неудобно отлаживаться и изучать поведение существующих приложений. +Известно, что первым пунктом в разделе BUGS любого man должно идти +«User never reads documentation». Поэтому надо дать пользователю +возможность изучать систему экспериментальным путем. +

+Обратите внимание, что в DOS существовал командный язык, слабенький, но +язык. В Windows 3.1 был Macro Recorder — попытка реализовать идею записи +сценариев работы. В Windows 95 его уже нет. Попытка реализовать писание +скриптов путем протоколирования действий пользователя в GUI-среде +блистательно провалилась. Почему? Потому что фиксировались слишком +низкоуровневые события — нажатия кнопок мыши в таких-то координатах. Это +существенно отличается от тех понятий, которыми оперирует пользователь +«Ð’ытащим наверх окно Word и выберем позицию Open в меню File». Если бы +макрос записанный макро-рекордером выглядел бы как

 MaximizeOrStart "winword.exe"
@@ -357,9 +357,9 @@ Filedialog.Filename insert "myfile.doc"
 FileDialog.OpenButton invoke
 

-ÍÏÖÅÔ ÂÙÔØ ÜÔÉÍ É ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÐÏÌØÚÏ×ÁÔØÓÑ. ïÓÏÂÅÎÎÏ ÅÓÌÉ ÐÒÉ -ÐÏÓÌÅÄÕÀÝÅÍ ÒÅÄÁËÔÉÒÏ×ÁÎÉÉ ÍÁËÒÏÓÁ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÐÒÅÄÏÓÔÁ×ÉÔØ -ÐÏÌØÚÏ×ÁÔÅÌÀ Ó×ÏÂÏÄÕ ÄÅÊÓÔ×ÉÊ ÎÁ ËÁËÉÈ-ÔÏ ÜÔÁÐÁÈ, ÎÁÐÒÉÍÅÒ +может быть этим и можно было бы пользоваться. Особенно если при +последующем редактировании макроса можно было бы предоставить +пользователю свободу действий на каких-то этапах, например

 Menu.File.Open invoke
@@ -369,123 +369,123 @@ if Filedialog.Exitcode=Ok then
 endif
 

-ÉÌÉ ÎÁÏÂÏÒÏÔ, ÐÏÍÅÓÔÉÔØ ÜÔÉ ÄÅÊÓÔ×ÉÑ ×ÎÕÔÒØ ÃÉËÌÁ, ÓËÁÖÅÍ ÐÏ ×ÓÅÍ ÆÁÊÌÁÍ -× ÔÅËÕÝÅÊ ÄÉÒÅËÔÏÒÉÉ. -

-úÄÅÓØ ÍÙ ÓÔÁÌËÉ×ÁÅÍÓÑ Ó ÔÏÊ ÖÅ ÐÒÏÂÌÅÍÏÊ, ÞÔÏ É ÐÒÉ ÐÒÏÅËÔÉÒÏ×ÁÎÉÉ -ÄÉÁÌÏÇÏ×ÙÈ ÏËÏΠ— ÐÏÌØÚÏ×ÁÔÅÌØ ÎÉËÏÇÄÁ ÎÅ ÍÙÓÌÉÔ × ÔÅÒÍÉÎÁÈ ËÏÏÒÄÉÎÁÔ -ÜËÒÁÎÁ, ÄÁÖÅ ËÏÇÄÁ ÏÎ ÒÉÓÕÅÔ ÍÙÛËÏÊ ÌÉÎÉÀ × ÇÒÁÆÉÞÅÓËÏÍ ÒÅÄÁËÔÏÒÅ. -

-ôÁËÉÍ ÏÂÒÁÚÏÍ, ÓËÌÁÄÙ×ÁÅÔÓÑ ËÏÎÃÅÐÃÉÑ ÐÒÉÎÃÉÐÉÁÌØÎÏ ÎÏ×ÏÇÏ ÐÏÄÈÏÄÁ -Ë ÕÓÔÒÏÊÓÔ×Õ ÄÅÓËÔÏÐÎÏÊ OS, ËÏÔÏÒÁÑ ÓÏÓÔÏÉÔ × ÓÌÅÄÕÀÝÅÍ: -

-éÍÅÅÔÓÑ ÂÁÚÏ×ÙÊ ÓËÒÉÐÔÏ×ÙÊ ÑÚÙË, ÉÍÅÀÝÉÊ ÇÒÁÆÉÞÅÓËÉÊ ÉÎÔÅÒÆÅÊÓ. -÷ÓÅ ÎÅÏÂÈÏÄÉÍÙÅ ËÏÍÐÏÎÅÎÔÙ ÒÅÁÌÉÚÕÀÔÓÑ ËÁË ÒÁÓÛÉÒÅÎÉÑ ÄÌÑ ÜÔÏÇÏ ÑÚÙËÁ. -ïÎÉ ÍÏÇÕÔ ÂÙÔØ ËÁË ÏÂßÅËÔÎÏ-ÏÒÉÅÎÔÉÒÏ×ÁÎÎÙÍÉ, ÔÁË É ÎÅÔ. ñ ÓÞÉÔÁÀ, ÞÔÏ -ïïð ÜÔÏ ÎÅ ÐÁÎÁÃÅÑ, ÔÅÍ ÂÏÌÅÅ × ÓÉÔÕÁÃÉÉ ËÏÇÄÁ ÒÁÂÏÔÁÔØ Ó ÜÔÉÍ ÑÚÙËÏÍ -ÚÁÞÁÓÔÕÀ ÂÕÄÅÔ ËÏÎÅÞÎÙÊ ÐÏÌØÚÏ×ÁÔÅÌØ, ËÏÔÏÒÏÍÕ ÌÅÇÞÅ × ËÁÞÅÓÔ×Å -ÓÏÂÅÓÅÄÎÉËÁ ×ÏÓÐÒÉÎÉÍÁÔØ ËÏÍÐØÀÔÅÒ × ÃÅÌÏÍ É ÆÏÒÍÕÌÉÒÏ×ÁÔØ Ó×ÏÀ ÍÙÓÌØ -ËÁË «óÄÅÌÁÊ ÔÏ-ÔÏ ×ÏÔ Ó ÜÔÉÍ ÏÂßÅËÔÏÍ», Á ÎÅ «üÊ, ÏÂßÅËÔ, ÓÄÅÌÁÊ ×ÏÔ -ÜÔÏ», ÏÓÏÂÅÎÎÏ × ÓÉÔÕÁÃÉÑÈ ËÏÇÄÁ ÚÁÄÅÊÓÔ×Ï×ÁÎÏ ÎÅÓËÏÌØËÏ ÏÂßÅËÔÏ×. -îÁÐÒÉÍÅÒ, ÎÅ ÏÞÅ×ÉÄÎÏ, ÞØÉÍ ÍÅÔÏÄÏÍ ÄÏÌÖÎÏ Ñ×ÌÑÔØÓÑ ËÏÐÉÒÏ×ÁÎÉÅ ÉÚ -ÏÂßÅËÔÁ × ÏÂßÅËÔ — ÉÓÔÏÞÎÉËÁ ÉÌÉ ÎÁÚÎÁÞÅÎÉÑ. -

-õÒÏ×ÅÎØ ÁÂÓÔÒÁËÃÉÉ, ÎÁ ËÏÔÏÒÏÍ ÐÏÌØÚÏ×ÁÔÅÌØ ÒÁÂÏÔÁÅÔ Ó ÜÔÉÍ ÑÚÙËÏÍ -ÄÏÌÖÅÎ ÂÙÔØ ÎÅÓËÏÌØËÏ ×ÙÛÅ, ÞÅÍ ÔÏÔ, ËÏÔÏÒÙÊ ÐÒÅÄÏÓÔÁ×ÌÑÀÔ Tcl/Tk ÉÌÉ +или наоборот, поместить эти действия внутрь цикла, скажем по всем файлам +в текущей директории. +

+Здесь мы сталкиваемся с той же проблемой, что и при проектировании +диалоговых окон — пользователь никогда не мыслит в терминах координат +экрана, даже когда он рисует мышкой линию в графическом редакторе. +

+Таким образом, складывается концепция принципиально нового подхода +к устройству десктопной OS, которая состоит в следующем: +

+Имеется базовый скриптовый язык, имеющий графический интерфейс. +Все необходимые компоненты реализуются как расширения для этого языка. +Они могут быть как объектно-ориентированными, так и нет. Я считаю, что +ООП это не панацея, тем более в ситуации когда работать с этим языком +зачастую будет конечный пользователь, которому легче в качестве +собеседника воспринимать компьютер в целом и формулировать свою мысль +как «Ð¡Ð´ÐµÐ»Ð°Ð¹ то-то вот с этим объектом», а не «Ð­Ð¹, объект, сделай вот +это», особенно в ситуациях когда задействовано несколько объектов. +Например, не очевидно, чьим методом должно являться копирование из +объекта в объект — источника или назначения. +

+Уровень абстракции, на котором пользователь работает с этим языком +должен быть несколько выше, чем тот, который предоставляют Tcl/Tk или Python.

-äÌÑ ÞÁÓÔÏ ×ÙÐÏÌÎÑÅÍÙÈ ÏÐÅÒÁÃÉÊ, ÔÁËÉÈ ËÁË ÓÏÚÄÁÎÉÅ ÄÉÁÌÏÇÏ×ÏÇÏ ÏËÎÁ, -Ó×ÑÚÙ×ÁÎÉÅ ÆÏÒÍÙ Ó ÂÁÚÏÊ ÄÁÎÎÙÈ, ÄÏÌÖÎÙ ÓÕÝÅÓÔ×Ï×ÁÔØ ÇÒÁÆÉÞÅÓËÉÅ ÉÎÔÅÒÆÅÊÓÙ. -÷ ÉÄÅÁÌÅ Õ ËÁÖÄÏÇÏ ÐÒÉÌÏÖÅÎÉÑ ÄÁÎÎÏÊ ÓÉÓÔÅÍÙ ÄÏÌÖÎÁ ÂÙÔØ ËÎÏÐÏÞËÁ × -ÚÁÇÏÌÏ×ËÅ ÏËÎÁ «ðÏËÁÚÁÔØ ×ÎÕÔÒÅÎÎÅÅ ÕÓÔÒÏÊÓÔ×Ï», ËÏÔÏÒÁÑ ÐÒÅ×ÒÁÝÁÅÔ -ÏËÎÏ ÐÒÉÌÏÖÅÎÉÅ × ÏËÎÏ RAD-ÓÉÓÔÅÍÙ. ðÏÓÌÅÄÎÅÅ, ×ÉÄÉÍÏ ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ -ÄÉÁÌÏÇ Ó ÚÁËÌÁÄËÁÍÉ, ÇÄÅ ÍÏÖÎÏ ÐÏÓÍÏÔÒÅÔØ ÉÅÒÁÒÈÉÀ ×ÉÄÇÅÔÏ× ×ÎÕÔÒÉ ÏËÎÁ, -Ó×ÑÚÉ Ó ÄÒÕÇÉÍÉ ÏÂßÅËÔÁÍÉ × ÓÉÓÔÅÍÅ, ÔÅËÓÔ ËÏÔÏÒÙÊ × ÒÅÚÕÌØÔÁÔÅ -ÐÏÌÕÞÉÌÓÑ. -

-äÌÑ ×ÓÅÈ ÏÂßÅËÔÏ× × ÓÉÓÔÅÍÅ, ËÏÔÏÒÙÅ ÐÏ ÓÍÙÓÌÕ Ñ×ÌÑÀÔÓÑ ÄÏËÕÍÅÎÔÁÍÉ (Á -ÔÁËÉÈ ÂÕÄÅÔ ÎÅ ÔÁË ÍÎÏÇÏ, ËÁË × MacOS ÉÌÉ Windows) ÄÏÌÖÅÎ ÓÕÝÅÓÔ×Ï×ÁÔØ -ÓÐÏÓÏ ÐÏÌÕÞÉÔØ ÉÈ ÓÔÁÎÄÁÒÔÎÏÅ ÐÒÅÄÓÔÁ×ÌÅÎÉÅ, ×ÉÄÉÍÏ ÎÁ ÞÅÍ-ÔÏ ÔÉÐÁ XML, -É ÄÏÌÖÎÙ ÓÕÝÅÓÔ×Ï×ÁÔØ ÓÒÅÄÓÔ×Á ÏÂÒÁÂÏÔËÉ ÜÔÏÇÏ XML, ÐÏ ÐÒÏÓÔÏÔÅ É -ÜÆÆÅËÔÉ×ÎÏÓÔÉ ÐÏÄÏÂÎÙÅ grep, awk É sed, ÎÏ ÕÞÉÔÙ×ÁÀÝÉÅ × ÕÄÏÂÎÙÈ ÄÌÑ -ÐÏÌØÚÏ×ÁÔÅÌÑ ÔÅÒÍÉÎÁÈ ÓÔÒÕËÔÕÒÕ ÜÔÏÇÏ XML. -

-íÎÅ ËÁÖÅÔÓÑ, ÞÔÏ ÉÄÅÁÌØÎÙÍ ÑÚÙËÏÍ ÄÌÑ ÒÅÁÌÉÚÁÃÉÉ ÔÁËÏÊ ÓÉÓÔÅÍÙ Ñ×ÌÑÅÔÓÑ -Tcl. åÇÏ ÐÒÅÉÍÕÝÅÓÔ×Á: +Для часто выполняемых операций, таких как создание диалогового окна, +связывание формы с базой данных, должны существовать графические интерфейсы. +В идеале у каждого приложения данной системы должна быть кнопочка в +заголовке окна «ÐŸÐ¾ÐºÐ°Ð·Ð°Ñ‚ÑŒ внутреннее устройство», которая превращает +окно приложение в окно RAD-системы. Последнее, видимо представляет собой +диалог с закладками, где можно посмотреть иерархию видгетов внутри окна, +связи с другими объектами в системе, текст который в результате +получился. +

+Для всех объектов в системе, которые по смыслу являются документами (а +таких будет не так много, как в MacOS или Windows) должен существовать +способ получить их стандартное представление, видимо на чем-то типа XML, +и должны существовать средства обработки этого XML, по простоте и +эффективности подобные grep, awk и sed, но учитывающие в удобных для +пользователя терминах структуру этого XML. +

+Мне кажется, что идеальным языком для реализации такой системы является +Tcl. Его преимущества:

    -
  1. çÉÂËÉÊ ÓÉÎÔÁËÓÉÓ, ×ÐÌÏÔØ ÄÏ ×ÏÚÍÏÖÎÏÓÔÉ ÒÅÁÌÉÚÁÃÉÉ ÓÏÂÓÔ×ÅÎÎÙÈ -ÕÐÒÁ×ÌÑÀÝÉÈ ÓÔÒÕËÔÕÒ, ÞÔÏ ÏÂÌÅÇÞÁÅÔ ÓÏÚÄÁÎÉÅ ÑÚÙËÁ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ. -
  2. ðÒÏÓÔÏÔÁ ÒÁÚÂÏÒÁ ÓËÒÉÐÔÏ× ÎÁ Tcl ÓÒÅÄÓÔ×ÁÍÉ ÓÁÍÏÇÏ Tcl, ÞÔÏ ÏÂÌÅÇÞÁÅÔ -ÓÏÚÄÁÎÉÅ RAD-ËÏÍÐÏÎÅÎÔ, ÓÐÏÓÏÂÎÙÈ ÐÒÏÞÉÔÁÔØ É ÇÒÁÆÉÞÅÓËÉ ÐÒÅÄÓÔÁ×ÉÔØ -ÐÒÏÉÚ×ÏÌØÎÙÊ ËÏÄ. -
  3. îÁÌÉÞÉÅ ÍÏÝÎÙÈ ÉÎÔÒÏÓÐÅËÔÉ×ÎÙÈ ÆÕÎËÃÉÊ, ËÏÔÏÒÙÅ ÄÅÌÁÀÔ ÎÅÎÕÖÎÙÍ -ÒÁÚÂÏÒ ËÏÄÁ, ÎÁÐÒÉÍÅÒ ÄÌÑ ÐÏËÁÚÁ ÉÅÒÁÒÈÉÉ ×ÉÄÇÅÔÏ× — ÐÒÏÝÅ ÓÐÒÏÓÉÔØ Õ -ÓÁÍÉÈ ×ÉÄÇÅÔÏ×. -
  4. îÁÌÉÞÉÅ ÓÉÓÔÅÍÙ ÓÏÐÏÄÞÉÎÅÎÎÙÈ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏ×, ÞÔÏ ÐÏÚ×ÏÌÑÅÔ ÎÅ -ÚÁÓÏÒÑÔØ ÐÒÏÓÔÒÁÎÓÔ×Ï ÉÍÅÎ ÐÒÉÌÏÖÅÎÉÑ ÆÕÎËÃÉÑÍÉ É ÏÂßÅËÔÁÍÉ RAD-ÓÉÓÔÅÍÙ -
  5. îÁÌÉÞÉÅ ÂÏÌØÛÏÇÏ ËÏÌÉÞÅÓÔ×Á ÇÏÔÏ×ÙÈ ËÏÍÐÏÎÅÎÔ, ÈÏÔÑ Python É Perl × -ÜÔÏÍ ÏÔÎÏÛÅÎÉÉ ÎÅÓËÏÌØËÏ ÐÒÅ×ÏÓÈÏÄÑÔ Tcl. +
  6. Гибкий синтаксис, вплоть до возможности реализации собственных +управляющих структур, что облегчает создание языка верхнего уровня. +
  7. Простота разбора скриптов на Tcl средствами самого Tcl, что облегчает +создание RAD-компонент, способных прочитать и графически представить +произвольный код. +
  8. Наличие мощных интроспективных функций, которые делают ненужным +разбор кода, например для показа иерархии видгетов — проще спросить у +самих видгетов. +
  9. Наличие системы соподчиненных интерпретаторов, что позволяет не +засорять пространство имен приложения функциями и объектами RAD-системы +
  10. Наличие большого количества готовых компонент, хотя Python и Perl в +этом отношении несколько превосходят Tcl.

-÷ÓÅ ×ÙÛÅÐÅÒÅÞÉÓÌÅÎÎÏÅ ÎÅ ÏÚÎÁÞÁÅÔ, ÞÔÏ ÎÁ Tcl ÄÏÌÖÎÙ ÂÙÔØ ÎÁÐÉÓÁÎÙ ×ÓÅ -ËÏÍÐÏÎÅÎÔÙ ÓÉÓÔÅÍÙ. óËÏÒÅÅ ÎÁÏÂÏÒÏÔ, ÂÏÌØÛÁÑ ÞÁÓÔØ ×ÅÝÅÊ, ÄÌÑ ËÏÔÏÒÙÈ -ËÒÉÔÉÞÎÁ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ, ÄÏÌÖÎÙ ÂÙÔØ ÎÁÐÉÓÁÎÙ ÎÁ C ÉÌÉ C++, ÎÏ × -×ÉÄÅ ÒÁÓÛÉÒÅÎÉÊ Tcl. +Все вышеперечисленное не означает, что на Tcl должны быть написаны все +компоненты системы. Скорее наоборот, большая часть вещей, для которых +критична производительность, должны быть написаны на C или C++, но в +виде расширений Tcl.

-

ëÏÍÍÅÎÔÁÎÉÉ ÞÉÔÁÔÅÌÅÊ

+

Комментании читателей

 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 на маленькие инструментики
+позволяет таким как я людям заботиться о будущем. Я не могу повлиять на то,
+какие инструментальные средства будут доступны в ближайшем будущем в среде MS
+Windows. Если моё решение будет удачным, то оно быстро будет подхвачено в
+среде UNIX, и не только fsf, и я в итоге получу инструмент, который мне
+понадобится, именно в момент такой необходимости, а не тогда, когда для этого
+созреет «Ñ€Ñ‹Ð½Ð¾Ðº».
 
-þÔÏ ÖÅ ÄÏ ÕÎÉ×ÅÒÓÁÌØÎÏÇÏ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÐÏÔÏËÏ× ÄÁÎÎÙÈ, ÔÏ ÜÔÏ ÎÁÐÏÍÉÎÁÅÔ ÍÎÅ
-Structured Task Description Language — ×ÅÝØ × ÐÒÉÎÃÉÐÅ ×ÏÚÍÏÖÎÕÀ, ÎÏ ËÁË-ÔÏ
-ÐÏËÁ ÎÉÇÄÅ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÎÕÀ (úÁÂÕÄÅÍ ÐÒÏ ×ÓÑËÉÅ Jinie É ÐÒ. ÎÅÒÁÂÏÔÁÀÝÕÀ ÍÕÒÕ)
-õÖÅ ÏÂßÑÓÎÉÔØ «ÐÒÏÓÔÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ» ÎÁ ËÁËÏÇÏ xyz ÎÕÖÅÎ sql ÄÏ×ÏÌØÎÏ ÔÒÕÄÎÏ.
-õÓÐÅÛÎÏÅ ÏÂßÑÓÎÅÎÉÅ, ÚÁÞÅÍ ÎÕÖÅÎ ÔÁËÏÊ ÍÏÎÓÔÒ, ËÁË ÑÚÙË ÏÐÉÓÁÎÉÑ ÐÒÏÉÚ×ÏÌØÎÙÈ
-ÄÁÎÎÙÈ, ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ ÍÎÅ ÍÁÌÏ×ÅÒÏÑÔÎÙÍ, × ÔÅÒÍÉÎÁÈ «ÐÒÏÓÔÏÇÏ ÐÏÌØÚÏ×ÁÔÅÌÑ».
+Что же до универсального представления потоков данных, то это напоминает мне
+Structured Task Description Language — вещь в принципе возможную, но как-то
+пока нигде не реализованную (Забудем про всякие Jinie и пр. неработающую муру)
+Уже объяснить «Ð¿Ñ€Ð¾ÑÑ‚ому пользователю» на какого xyz нужен sql довольно трудно.
+Успешное объяснение, зачем нужен такой монстр, как язык описания произвольных
+данных, представляется мне маловероятным, в терминах «Ð¿Ñ€Ð¾ÑÑ‚ого пользователя».
 
-ðÏÄ×ÏÄÑ ÉÔÏÇ, ÈÏÞÕ ÏÔÍÅÔÉÔØ, ÞÔÏ ÎÁ ÓÅÇÏÄÎÑÛÎÉÊ ÄÅÎØ ÄÌÑ UNIX community É
-ÒÁÚ×ÉÔÉÑ ÉÎÓÔÒÕÍÅÎÔÁÒÉÑ ÂÙÌÏ ÂÙ ÇÏÒÁÚÄÏ ÐÏÌÅÚÎÅÅ ÏÐÒÅÄÅÌÉÔØÓÑ, ËÔÏ ÔÁËÏÊ -
-ÜÔÏÔ «ÐÒÏÓÔÏÊ ÐÏÌØÚÏ×ÁÔÅÌØ». é ÏÐÒÅÄÅÌÉÔØÓÑ Ó ÏÔÎÏÛÅÎÉÅÍ Ë
-ÜÔÏÍÕ «ÐÒÏÓÔÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ» 
-÷ ÞÁÓÔÎÏÓÔÉ, GUI ÄÏÌÖÅÎ ÂÙÔØ ÐÒÅÖÄÅ ×ÓÅÇÏ ÆÕÎËÃÉÏÎÁÌÅÎ, ÐÒÏÐÏÒÃÉÏÎÁÌÅÎ × ÓÍÙÓÌÅ
-ÏÂÕÞÅÎÉÑ, É ÔÏÌØËÏ ÐÏÔÏÍ ÕÄÏÂÅÎ, × ÔÏÊ ÍÅÒÅ, × ËÏÔÏÒÏÊ ÜÔÏ ÎÕÖÎÏ ÄÌÑ ÐÅÒ×ÙÈ
-Ä×ÕÈ ÐÏÚÉÃÉÊ.
+Подводя итог, хочу отметить, что на сегодняшний день для UNIX community и
+развития инструментария было бы гораздо полезнее определиться, кто такой -
+этот «Ð¿Ñ€Ð¾ÑÑ‚ой пользователь». И определиться с отношением к
+этому «Ð¿Ñ€Ð¾ÑÑ‚ому пользователю» 
+В частности, GUI должен быть прежде всего функционален, пропорционален в смысле
+обучения, и только потом удобен, в той мере, в которой это нужно для первых
+двух позиций.
 
-ó ÎÁÉÌÕÞÛÉÍÉ,
- áÎÄÒÅÊ
+С наилучшими,
+ Андрей
 

-éÚ ÍÏÅÇÏ ÏÔ×ÅÔÁ áÎÄÒÅÀ

+Из моего ответа Андрею

-óÍÙÓÌ × ÔÏÍ, ÞÔÏ ÐÏÌØÚÏ×ÁÔÅÌÀ É ÎÅ ÎÁÄÏ ÜÔÏ ÏÂßÑÓÎÑÔØ, ÔÁË ÖÅ ËÁË ÎÅ -ÎÁÄÏ -ÅÍÕ ÏÂßÑÓÎÑÔØ ÔÏÇÏ, ÞÔÏ ÂÕË×Á A ÐÒÅÄÓÔÁ×ÌÑÅÔÓÑ × ÔÅËÓÔÏ×ÏÍ ÆÁÊÌÅ -ÂÁÊÔÏÍ ÓÏ ÚÎÁÞÅÎÉÅÍ 65. üÔÏ ÄÏÌÖÎÏ ÂÙÔØ × ËÏÍÐÅÔÅÎÃÉÉ ÓÉÓÔÅÍÙ. +Смысл в том, что пользователю и не надо это объяснять, так же как не +надо +ему объяснять того, что буква A представляется в текстовом файле +байтом со значением 65. Это должно быть в компетенции системы.

-á ×ÏÔ ÅÝÅ ÏÄÎÁ ÉÎÔÅÒÅÓÎÁÑ ÓÔÁÔØÑ ÎÁ ÓÈÏÄÎÕÀ ÔÅÍÕ.
+А вот еще одна интересная статья на сходную тему.
http://www.itc.kiev.ua/article.phtml?ID=2149