ЧАСТЬ БЫВАЕТ ЛУЧШЕ ЦЕЛОГО
							 (Э.Хоар)

				     goto произошел от компьютера
						  (сам додумался)



			      РЖАВЫЙ ЧАЙНИК ИНФОРМАТИКИ *) **)
			      анти-научная правда жизни
	   (для соискателей, интуитивно недовольных положением вещей)

	---------------------------------------------------------------
	 *) ЧАЙНИК - тара для кипячения воды, второе значение - чайник)
	 **) ИНФОРМАТИКА - непереводимое на другие языки русское слово,
	  придуманное Андреем Петровичем Ершовым (прожил 57 лет))
	---------------------------------------------------------------

	     Так  уж получилось...  Последние  годы  мне  ничего  не
	остается как с подветренной стороны наблюдать  за  тем,  что
	происходит в джунглях  вычислительной  техники. И  с  легкой
	тоской  констатировать,  что   все   логично.  И  никому  не
	начистишь за это физиономию по трем причинам:
	     1) потому что не умеешь;
	     2) потому что никому это и не надо, и не хочется;
	     3) потому что так надо.


	     ГЛАВА 1. КОРОТКАЯ. ОСНОВОПОЛАГАЮЩАЯ.

	     Уже   сколько   лет,   зим   и   поколений   прошло   в
	вычислительной технике, а основополагающая  концепция  Джона
	Фон-Неймана   (прожил   54   года)   неколебима.   Вот  она:
	 Процессор   (вычислитель)   берет  из   памяти   программу,
	которая   берет   из   памяти   данные,  обрабатывает  их  в
	соответствии с программой  и  результат  помещает  в  ту  же
	память. И "на колу мочало"... И очень быстро. И с каждым
	годом все быстрее.

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

	     Шустрый  кореш  Джона  Фон-Неймана, которого звали Алан
	Тьюринг  (прожил   41   год   и сам отравился  шутки  ради),
	спроектировал  машину своего имени, в смысле, своей фамилии.
	Так  вот,   Машина   Тьюринга,   не   заморачиваясь   вечным
	неразрешимым  вопросов,  что  такое "алгоритм", может решать
	любые задачи, которые имеют алгоритм решения.

	     Поэтому понятие "алгоритма" математики просто  оставили
	в покое, как излишнее и  из-за  своей заумности для практики
	бесполезное. Да будет так!- сказал кореш многих  хорошо  нам
	знакомых  корешей  - Алонзо Черч (прожил 92 год):
	     -  "Если  на Машине Тьюринга можно 'доехать' до решения
	задачи - значит у задачи ЕСТЬ алгоритм решения! А на нет - и
	Алгоритма нет, и Машины Тьюринга нет!"

	     Такова правда жизни. Так все лихо и складно разложилось
	на заре кибернетики. Кстати, это все  происходило за  десять
	лет до появления первых компьютеров "в железе".

	     Но  из реальных мужиков на Машине Тьюринга никто никуда
	ездить не собирался и,  по  большому  счету,  не  собирается
	впредь. По большому счету, Тьюринг создал лишь универсальный
	дизайн Машины своего имени. Сегодня бы сказали,  концепт-кар
	он создал. А чтобы определить, чисто теоретически, доберется
	ли его Машина до решения конкретной задачи, надо каждый  раз
	снабжать эту Машину конкретным движком-программой. Это часто
	очень непросто. Поэтому  Машина  Тьюринга  осталась  любимой
	игрушкой   для   математиков-теоретиков,   заменой   понятия
	алгоритма.  А  в  широкое  промышленное  производство  пошла
	машина Фон-Неймана. Есть опасение, что навсегда.

	     А  еще  грядущие  вычислительные  машины активизировали
	научный интерес общественности к придуманной  Джоржем  Булем
	(прожил   42   года)   алгебре  его  имени.  Технари  быстро
	переложили ее  на  релейно-контактные  схемы,  а  там  и  до
	компьютера  рукой  подать...  реле  -  триггер  - ферритовый
	сердечник...  Читающей  публике  вечно  молодой  Джорж  Буль
	известен  в  качестве  отца Лилиан Войнич (прожила 96 лет)),
	написавшей сильно любимый в СССР роман "Овод".

	     И   здесь   нельзя   обойти   вниманием   отечественных
	военных-кибернетиков, которые сделали с  алгеброй  Буля  то,
	что  она  сама  от себя не ожидала. Они сделали ее секретным
	ключом  к  кибернетической  обороноспособности   страны.   В
	результате,   защитили   массу   кандидатских  и  докторских
	диссертаций.  И  теперь,  после  частичного  разоружения   и
	развала СССР, уйдя в запас, посредством булевой алгебры учат
	гражданское население кибернетике:

	       1 и 1 = 1,  1 или 1 = 1,    не 1 = 0,
	       1 и 0 = 0,  1 или 0 = 1,    и т.д.,

	     и  тому  подобное  -  очень,  кстати, интересно. Хотя и
	непонятно, как это сегодня всерьез применить к  компьютерам,
	коль скоро они уже давно не борются за уменьшение количества
	реле.  Тем более, построенных  по-взводно,  в так называемые
	нормальные формы.  В  элементной-то базе как раз и произошла
	серия революций. Она коснулась всей электронной техники.

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

	     Возьмите    обычный транспорт,   который   не   считает
	нолики-единички,  а  ездит.   Совершенствуются
	двигатели,  мосты,  трансмиссии и т.п.  Если бы "прогресс" в
	средствах передвижения шел также, как и в компьютерах, мы бы
	сегодня,  возможно, были бы с шустрыми автомобилями размером
	с мобильник. А самолетов, подводных лодок, электричек, а тем
	более  эскалаторов  -  не видать бы нам, как своих ушей. Эти
	средства   передвижения   потребовали   от   ученой    части
	человечества   действительно   принципиальных  РЕВОЛЮЦИОННЫХ
	решений.

	     А компьютер должен удовлетворять наши значительно более
	сложные потребности  и  даже  интеллектуальные  капризы.  Но
	концепция  его  неприкосновенна  с  момента рождения в мозгу
	Джона Фон-Неймана (напомним, прожил 54 года).


	     ГЛАВА 2. ГЛАВНАЯ

	     2.1. МЫ ГОВОРИМ "ОС" - ПОДРАЗУМЕВАЕМ "ВИНДОС"

	     Чтобы    компьютер   работал,   создаются   специальные
	(о-о-очень) сложные программы, которые управляют  всеми  его
	составными  частями  и  частичками,  по  мере сил стараясь и
	человеку облегчить общение с этим "железом". Такие программы
	называют операционными системами (ОС). Компьютер, это машина
	Фон-Неймана  после  ее  серьезной  "прокачки"   операционной
	системой.   Компьютер  -  это  машина  Фон-Неймана,  которой
	сделали тюнинг, чтобы она стала практически полезной.

	     В  60-70  годы  прошлого  века  необходимость управлять
	"умным железом"  превратилась  в  кошмар.  Компьютеры  в  те
	далекие времена были, в отличие от сегодняшнего дня, разные.
	И операционные системы нужны  были  разные.  А  трудоемкость
	создания ОС огромная.

	     Просто    не    напасешься   программистов   для   всех
	операционных систем. Так, книги с документацией на  одну  из
	первых  операционных  систем - OS/360 занимали целый книжный
	шкаф... А когда пошла лавина персональных  компьютеров,  тут
	уже  было  некуда  деться. Началась унификация конструкции и
	операционной системы. Но компьютерное железо  устаревает  за
	пару  лет,  не влияя при этом на принципы работы и структуру
	компьютеров. А операционная система слишком долго  создается
	и  дорого  обходится,  чтобы  устареть  даже  за  5-10  лет.

	     Предпринимались  попытки  "отделаться" для персональных
	компьютеров простенькой ОС,  так  например  появилась  CP-M,
	которую  даже операционной системой добрые люди постеснялись
	назвать, назвали ее Control Program - Mini. Но она не  имела
	успеха у прогрессивной общественности.

	     И   пришел  звездный  час  Билла  Гейтса.  Ему  удалось
	построить (не в смысле  "создать",  а  в  смысле  "ать-два")
	персональные  компьютеры,  добившись  их единообразия как на
	плацу. Начиная с клавиатуры. И осчастливить мир операционной
	системой MS-DOS, имевшей беспрецедентный коммерческий успех.
	Да  и  деться  было  некуда,   львиная   доля   персональных
	компьютеров  выпускалась  с MS-DOS. "Стерпится - слюбится!".
	Слюбилось.  Хотя  эта  операционная  система   больше   была
	известна   своей  "командно-файловой  оболочкой",  созданной
	Питером Нортоном,но слава и деньги ушли к Биллу (нет на него
	Умы Турман с ее острым японским мечом).

	     Единообразие  -  страшная  сила. Массовому пользователю
	требуются колоссальные усилия освоить операционную систему и
	менять   наработанные   рефлексы  массовый  пользователь  не
	согласен ни  за  какие  коврижки.   Миллиарды  Билла  Гейтса
	взошли  на коммерческом использовании именно этого феномена.
	Это и привело к "рекордному"  консерватизму  в  компьютерной
	технике.   Компьютеры  пришли  к высокой степени унификации.
	Унификация - дело в общем-то хорошее. Но реально  унификация
	"подстригла"  компьютеры  под одну гребенку короче, чем надо
	бы.

	     Не  меняясь  по  сути,  персональный компьютер обрастал
	многочисленными  улучшениями  и  причиндалами.  Одни  только
	сетевые,  аудио  и  видео-карты  чего  стоят.  Но главное, в
	приличных компьютерных кругах появился оконный интерфейс (те
	же Маc OS, да и Unix X-Window без всяких "s" на конце).

	     И вот тут, на крыльях популярности, завоеванной MS-DOS,
	славный  боевой   путь   Билла   Гейтса   венчает   Windows.
	Сообразив,   что  дело  пахнет  потерей  рынка,  Билл  Гейтс
	приделал  к  своей  операционной  системе  окна.  Правда,  с
	опозданием  от  пионеров  оконного  дела  на 3-5 лет. Но кто
	сегодня ему считает.


	     2.2. НЕ ВСЕ БЫЛО ТАК ПЛОХО

	     И  опять  же  в  приличных  научных  кругах,  которые с
	бизнесом ходят не совсем по  одним  и  тем  же  дорогам,  на
	основе  незаурядной  операционной  системы MULTICS ("мульти"
	считай,  "много")  двумя  толстяками:  Кеном   Томпсоном   и
	Деннисом  Ритчи  в  1969-ом  году  была  создана  гениальная
	операционная систем UNIX ("уни" -  считай,  "единственный").
	Она  уже  сорок  лет  определяет  ведущую  мировую концепцию
	построения  "правильной"  операционной  системы.   Ее,   как
	классику, целиком и по частям изучают будущие программисты в
	университетах, как медики анатомию. А потом уходят  работать
	на Microsoft, где хорошо платят.

	     Это  легендарная  ОС  хотя  бы потому, что за UNIX была
	дана  Тьюринговская   премия,   своеобразный    "Оскар"    в
	теоретическом  программировании.  А  ведь  до  этого момента
	теоретики  считали  написание  операционных  систем   чем-то
	предосудительным,   сродни   написанию  бульварных  романов,
	образчиками  программистской   безалаберности   и   научного
	дурновкусия. Фу!

	     UNIX, в отличие от эксклюзивной WINDOWS, может работать
	на   компьютерах   различной   архитектуры.   Кстати,    все
	современные  супер-компьютеры  работают  на UNIX-подобных ОС.
	Это   переносимая   на   различные   архитектуры    система,
	настраиваемая    на    различные    "масштабы"    конкретной
	архитектуры. Это многопользовательская система.

	     UNIX основан на трех китах: язык Си, файловая система и
	командная   оболочка.   И   все  это  замешано  на  "крутой"
	виртуализации.


	     2.3. I SEE!

	     Язык Си - это разврат в программировании. Человечество,
	в лице США, в те самые  времена  потратило  сотни  миллионов
	долларов  на  то, чтобы сформулировать требования к хорошему
	языку программирования.  Тогда долго уточнявшиеся требования
	к   хорошему   языку  будущего   программирования   и   даже
	программирования    будущего     называли     "человечками":
	соломенный,  деревянный,  оловянный,  железный,  стальной...
	Огромная серьезная работа  увенчалась  созданием  "зеленого"
	человечка, но не инопланетянина и не волшебника из Страны Оз
	создали  программисты  всего  мира,  а  создали  язык   Ада,
	названный   так   в   честь  первой  программистки  (точнее,
	пра-пра-бабушки  будущих  программистов).   Кстати,   дочери
	Байрона - Ады Лавлейс.

	     Но  абсолютную  сокрушительную  победу  одержал тогда в
	практическом программировании гениальный язык Си, нарушивший
	практически  ВСЕ  требования  к  хорошему языку, которые так
	долго  обдумывал  народ.   Это  был  год   1980-ый   -   год
	предполагавшейся  полной  победы  языка  Ада над Фортранами,
	Коболами и ПиЭл/одинами.  Кроме удивительной лаконичности Си
	являл  удивительную смесь языков "высокого уровня" и "уровня
	ассемблеров". Но именно он обеспечил UNIX прернос  на  любые
	платформы. Лишь бы для новой платформы компилятор кто-нибудь
	написал...  Хотя, как и убогий Фортран - Си был шагом  назад
	в  формализации  синтаксиса,  в  наведении  порядка с типами
	данных,  с  модульным  построением   больших   программ,   а
	следовательно,   и   писание   компиляторов   для   него  из
	научно-диссертационной  деятельности  снова  превратилось  в
	ремесло.  Как  снова  в  ремесло  (если  угодно, в искусство
	вместо математики) эволюционировало программирование.  После
	Ады,  а  также ее (излишне) скромного предвестника - Паскаля
	смотреть на все это без  слез  невозможно.   А  про  изящные
	наукообразные  проекты  того  же  Никлауса  Вирта  "Лилит" и
	"Модула-2" уже и вспоминать никто не захотел... Жаль.


		2.4. ФАЙЛ - (англ) ДОСЬЕ

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

	     Человечество,  намучившись с миллионами самостоятельных
	ноликов-единичек, к тому времени уже свело их  в  символьные
	единицы  размером  в байт (8 бит), а потом, подумав, до двух
	байтов. Древовидная файловая  система  UNIX  -  это  по  тем
	временам было что-то фантастическое. Максимальная унификация
	"информационного  зоопарка"   сочеталась   с   гибкостью   и
	универсальностью.

	     Смелым  и  сильным  решением  было сведение всех единиц
	хранения в UNIX к одному понятию - файл. И данные - файл,  и
	программа   -   файл,   и   текст   программы   -   файл,  и
	откомпилированная программа - файл, и  картинка  -  файл,  и
	принтер  - тоже файл...  И экран монитора, естественно, тоже
	файл. От файлов не спрячешься!

	     Файлы   могут   быть   разного   типа:  обычные  файлы,
	устройства,  именованные   каналы,   гнезда,   символические
	ссылки.  Более того, файл может быть директорием, содержащим
	имена  файлов...  Начиная  с  UNIXа  файлы  стало   возможно
	называть  какими  угодно  словами,  даже  самыми последними,
	состоящими из любых букв и цифр  (и  еще  кое-чего).  Любому
	файлу  можно  дать  несколько  имен.  Кто тогда не жил, ни в
	жизнь не поймет, какая это нагрянула СВОБОДА.

	     Для  каждого  файла  определены права доступа. То есть,
	кто может с ним работать (владелец, группа,  все)  и  что  с
	этим  файлом  позволено  делать (читать, писать, выполнять).
	Эта  простая  и  мощная  схема  защиты   сегодня   считается
	стандартом базового уровня защиты файлов. Любой программист,
	а особенно системный администратор, знает,  что  файлы  надо
	защищать прежде всего от самого себя вообще и от  "rm *",  в
	частности.

	     Гибкости  добавляют  многочисленные  расширения файлов,
	которые  определяют   правила   их   обработки   прикладными
	программами.  А таковые множатся со скоростью саранчи.

	     Были  предприняты  попытки стандартизации и  размещения
	основных файлов системы в общем дереве, но реально,  кто  во
	что горазд...

				     /
				     |
	bin dev home mnt root tmp var boot etc lib media proc sys usr
	 |   |    |   |    |   |    |   |    |   |    |   |    |   |

	     Хотя  гибкое использование такого инструмента как тропа
	(путь по дереву от от одного файла до другого) позволяет  не
	только  иметь  разные  файлы  под  одинаковыми именами, но и
	определять  порядок  их   поиска-использования.    А   также
	бесбашенное "вниз по дереву"...


	     2.5. КОМАНДНЫЙ МУНДИР

	     Командная  оболочка (shell) в первых книгах про UNIX, а
	уж тем  более  в  учебниках,  занимала  основное  место  при
	описании  этой  ОС.  После  отчаянно  неуклюжей  ОS/360 с ее
	убогим  языком  управления  заданиями  -  JCL  и   ублюдочно
	примитивной  MS-DOS с синеньким нортон-командером, появление
	изящного  и  мощного  макро  языка  программирования   shell
	казалось фантастикой из следующего века.

	     Изюминка   программной   оболочки:   это   конвейеры  и
	перенаправления.   Например,  вот  командная   строка:   она
	позволяет  получить  листинг  текущего директория (в длинном
	(-long) формате), сохранить его в файле  file1  (ответвление
	"Т"  читается  как  tee),  выбрать  строки  с  директориями,
	открытыми владельцу на чтение-запись-выполнение (код  защиты
	-  drwx),  сосчитать  их  (WordsCalcul  -Lines)  и, сохранив
	результат в файле file2, выдать его на экран (по умолчанию).

	     ls -l | tee file1 | grep drwx | wc -l | tee file2

	     Жалко,  что  когда-то  обучение в школах информатике, а
	точнее, двоичной арифметике и  программированию,  начиналось
	либо с допотопных ассемблеров, либо с Бейсика, погрязшего по
	уши в GO TO, что еще хуже.

	     Программирование  на  shell,  если  вынести  за  скобки
	описание     данных,    это,    благодаря    конвейерам    и
	перенаправлниям,   хорошее   комбинаторное   и   структурное
	программирование,    содержащее    управляющие    структуры,
	обеспечивающие выбор и цикл.  Shell прививает очень  хорошие
	рефлексы  процедурного  программирования.  Если не ошибаюсь,
	сегодняшняя   школьная   информатика  сводится  к   двоичной
	арифметике и навыкам в пользовании Windows.


	     2.6. ПРЕДСТАВЬТЕ СЕБЕ...

	     А  виртуализация  в  UNIX - это вообще отдельная песня,
	базирующаяся на двух "простых", но "очень сильных" понятиях:
	любой  статический  объект  есть  ФАЙЛ,  любой  динамический
	объект  есть  ПРОЦЕСС.   Каждый  процесс  крутится  в  своем
	виртуальном   пространстве,  можно  сказать, на  созданном в
	своем железном воображении виртуальном компьютере.

	     Для   размещения   файлового   хозяйства  на  носителях
	существует  система  индексов,  позволяющая  адресоваться  к
	отдельным  файлам  и  частям  файла, если он большой. Размер
	файла - любой.  А  то,  что  на  логическом  уровне  файлами
	являются   также   диск,  принтер  и  монитор,  обеспечивает
	замечательное единообразие  для  многих  процедур.  Удаление
	файла - это удаление ссылки на файл. Сам файл при этом может
	оставаться целым и невредимым, если он  еще  кому-то  нужен.
	Перемещения файлов как бы из памяти как бы в процессор - это
	отдельная "Песнь  песней"  операционной  системы.   Что  там
	творится, кто видел!


	     2.7. ПОЛУПРАВДА О ЛИНУСЕ

	     Линус  Торвальдс  (родился  в 1969 году - году рождения
	UNIX).   Он  переписал  заново   ядро   UNIX   (скрупулезные
	доброжелатели  подсчитали,  что  он написал лишь 2 % ядра) и
	объявил коды  свободными  (точнее,  GNU-GPL).  Народ  дружно
	кинулся  писать  все  остальное:  драйверы,  новые оболочки,
	сетевые программы, прикладные программы всех мастей...   Так
	появилась свободно распространяемая ОС Linux  под  лицензией
	GNU General Public License, где GNU - непереводимое слово.

	     Кореш всех конкретных корешей,  инициатор  консолидации
	свободных программистов, Ричард  Столлман, называет ОС LINUX
	из принципиальных соображений:  ОС GNU/Linux.

	     Короче,  UNIX  в  простом  народе быстро стал Linux-ом,
	поскольку,  во-первых,  само  название  UNIX  было  торговой
	маркой  и  упоминать его всуе не следовало, а во-вторых, все
	"копи-райты" (copyright)  заменились  "копи-лефтами"  (copy-
	left).   То   есть,   стало   возможно   (почти)   бесплатно
	пользоваться полноценной UNIX-подобной операционной системой
	не  только  постоянно  ищущим студентам-компьютерщикам, но и
	деловым людям, не готовым  разоряться  на  приобретение  все
	более полезных компьютерных программ.


	     ГЛАВА 3. ВСПОМОГАТЕЛЬНАЯ

	     3.1. БАЗЫ

	     Для  работы  с  большими  объемами информации уже через
	десяток лет после появления компьютера ученые активно начали
	решать   проблему   хранения,  поиска  и  обработки  данных.
	Компьютер все  больше  стали  использовать  не  как  большой
	калькулятор,  а  как  средство для обработки больших объемов
	данных,  пусть   при   этом   сама   обработка   простейшая:
	"добавить-отнять".   Как  грибы после дождя стали появляться
	"банки  (базы)  данных".  Сначала  это  были   иерархические
	(древовидные) базы. В них размещение и поиск шли по принципу
	словаря, который вы открываете на средине,  и  если  искомое
	слово должно быть дальше по алфавиту, то раскрываете словарь
	на середине оставшейся части. И так  далее...  Это  может  и
	быстро, но очень ограничивает фантазию ищущего. Ибо часто не
	только по алфавиту он желает искать, но  и  синонимы  желает
	искать, и антонимы желает, и однокоренные слова, и т.д.

	     Поэтому,  почти незамедлительно появились сетевые базы.
	Это, если продолжить  пример  со  словарем,  уже  совсем  не
	словарь,  а  детская  головоломка-путалка,  где каждое слово
	входит в  множество  цепей  (организованных  через  адресные
	ссылки):  цепь  синонимов, цепь антонимов, цепь однокоренных
	слов... Как расцвет Римской  империи  был  предвестником  ее
	гибели, так и сетевые базы рухнули под несметным количеством
	цепей их опутавших и  все  запутавших.   В  программировании
	очень любят образ - "блюдо спагетти".

	     Без  сомнения  революционным было появление реляционных
	баз данных. Тут минимум две главные  причины:
	     - впервые в основе баз лежало не ремесло, а математика,
	       реляционная модель Эдгара Кодда (прожил 79 лет);
	     - простая и понятная даже домохозяйкам концепция.

	     Данные  оформляются  в  совокупность  таблиц.  Из  этих
	таблиц можно построить любую обобщенную  таблицу  с  помощью
	операции join (соединения таблиц). А из такой таблицы всегда
	можно с помощью операций select (выбрать строки)  и  project
	(выбрать столбцы) извлечь нужную информацию. Гораздо проще в
	таких  базах  решается   и   ключевой   вопрос   целостности
	(непротиворечивости)  базы.

	     Как   апофеоз   унификации   появился   язык  работы  с
	реляционными базами SQL (Structured  Query  Language).  Кодд
	считал  SQL  -  неправильной  реализацией  его  теории. Язык
	действительно уродский, но сегодня уже легче придумать новую
	модель  для  базы  данных, чем отменить стихийно сложившийся
	"стандарт"  для  реляционных   баз.   Мы   говорим   SQL   -
	подразумеваем  любую базу данных. Мы говорим "база данных" -
	подразумеваем SQL. Не во всем сегодня виноват Билл Гейтс.  В
	данном  случае  SQL  на  совести  (когда-то  самой  главной)
	компьютерной фирмы IBM.

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


	     3.2. МЕТОДОЛОГИЯ ПРОГРАММИРОВАНИЯ

	     Компьютеры  до  сих  пор  сохранили  свое первоначально
	заявленное назначение. То есть, кроме  игроков-терминаторов,
	писателей-текстосочинителей        и        разных       там
	бухгалтеров-экономистов, они еще предназначены и для обычных
	программистов.  А  компьютеры  и  программисты,  не в пример
	простому населению, общаются друг с другом на  универсальных
	языках   программирования.    С   языками   программирования
	вообще-то большая полувековая история.  Языки,  улучшаясь  в
	соответствии    с    требованиями   науки,   карабкались   к
	теоретическим вершинам математики. Где,  как  оказалось,  их
	никто не ждал.

	     Традиционное  процедурное программирование в свое время
	насмешило  добропорядочную  математику  своим   доморощенным
	понятием переменной. Выражение х=х+1 лишает почвы под ногами
	любого    ортодоксального    математика.     Фундаментальное
	математическое   понятие  переменной  подменено  константой.
	Чтобы все запутать, чтобы стало совсем смешно  и  непонятно,
	константу    сделали   изменяемой.   "Будем   переменную   х
	увеличивать в каждом цикле на единицу..." Уж  не  говоря  об
	анти-математическом  слове  ЦИКЛ.  "Процедура  в  результате
	работы меняет значение  своих  аргументов!"   Эта  фраза  не
	имеет  ничего общего со здравым математическим смыслом.  Где
	еще это видано?!

	     Короче, теоретическое  программирование  развивалось  в
	правильном     направлении.     Неправильное     процедурное
	программирование    сменило    правильное     функциональное
	программирование.    Оно    отменило    циклы,   вернуло   в
	программирование рекурсию  и,  главное,  вернуло  нормальную
	переменную.     Увы,    машина    Фон-Неймана,    восприняла
	функциональное программирование без энтузиазма. Сама-то  она
	была  процедурной  до мозга костей. Функциональные программы
	она  выполняла  через  немогу,  раз  так  в  500   теряя   в
	эффективности  вычислений, расходуя больше времени и памяти.
	И если  функциональный  язык  LISP  заслуживал остракизма по
	поводу тьмы скобок,  изображающих  суперпозицию  вычисляемых
	функций, то Функциональный Язык блистательного  Джона Бэкуса
	(прожил  83  года), (отца,  проклявшего   своего  первенца -
	язык Фортран) был заявкой на новую эпоху в  программировании
	и призывом к борьбе с Машиной  Фон-Неймана,  с  ее  ключевым
	bottle neck:   память <-> процессор !  Но  жесткий  прессинг
	коммерции и подоспевшиего некстати языка Си -  угробили  это
	дело в зародыше. Ученые,  конечно  обалдели,  но  плюнули  и
	быстро, в поисах грантов, пришли к пониманию положения дел в
	computer science.

	     Совсем уж не кстати для машины Фон-Неймана,  что  греха
	таить    -   просто,   поперек   горла,   стало   логическое
	программирование.   Гениальное   озарение   математика   Дж.
	Робинсона,  связанное  с методом резолюции, быстро привело к
	созданию языка логического программирования ПРОЛОГ  (PROLOG)
	"ПРОграммирование на ЛОГике".

	     То-то  было  радости  у  математиков.  Программирование
	добралось  до  построения  аксиоматических  теорий   первого
	порядка!  Святая святых математиков-логиков. Еще немножко, и
	вообще!

	     Логическое программирование - качественный скачек.  Это
	уже  не  программирование  в  обычном программистском смысле
	слова.  Это уже построение системы аксиом.  Это  уже  шаг  к
	искусственному  интеллекту.  До него, кажется, рукой подать.
	Но японцы, поставившие было  на  Пролог  в  своей  программе
	"ВЫЗОВ"    довольно   шумно   опростоволосились.   По-тихому
	опростоволосились и другие далекие от Японии специалисты  из
	Европы.

	     Для машины Фон-Неймана логическое программирование было
	еще дальше от ее конструкции. Машине  приходится  заниматься
	не ВЫчислением, а ИСчислением. А между этими словами разницы
	больше, чем между чипами и чипСами. Не говоря  уже  о  таком
	деликатном   вопросе   как  АЛГОРИТМ.  Программа  (алгоритм)
	решения задачи формируется  в  процессе  решения  задачи.  В
	процессе   поиска   ответа  возможны  "заблуждения"...  Горя
	добавляет режим интерпретаци. В  отличие  от  компиляции,  в
	режиме  интерпретации  логическая  программа транслируется и
	выполняется шаг за шагом. Как во  времена  Бейсика.   А  для
	быстродействия  и  выделения памяти хуже трудно что-либо еще
	придумать.

	     А    тут     как     раз     стал     набирать     силы
	объектно-ориентированный  подход  к  программированию. А это
	тоже не программирование в традиционном смысле.  Это  больше
	похоже на моделирование физической реальности. Разновидность
	обезьянничания. То есть для решения задачи не алгоритм ищут,
	не  математическую  формулу,  а последовательность процедур,
	повторяющих то, что происходит  "в  жизни"  и  как  в  жизни
	получая  требуемый  результат,  не  вникая  в математическую
	сущность происходящих процессов.  А может ее там и не  было?
	Например, вы точно копируете (может даже гениально) действия
	вязальщицы и в результате  получаете  пуховый  платок,  хотя
	первый  раз столкнулись с вязанием. И "формула" вязания, как
	и формула Rexon-ы, осталась  для  вас  тайной.  А  потом  вы
	выточите втулку, гениально повторяя движения высококлассного
	токаря (имевшего в школе двойку  по  геометрии  и  алгебре),
	начиная с включения станка...

	     Объектно-ориентированное     программирование     также
	принципиально         "перпендикулярно"          архитектуре
	супер-калькулятора имени Фон-Неймана. Паллиатив, запрягающий
	компьютер     Фон-Неймана     в     объектно-ориентированное
	программирование - прямое моделирование процессов.

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

	     Можно  сказать,  что методология программирования, если
	не считать периода наивной компьютеризации  с  ассемблерами,
	Фортраном    и   Бейсиком,   двигалась   в   лучшем   случае
	перпендикулярно естеству машины Фон-Неймана.


	     3.3. ОПЕРАЦИОННЫЕ СИСТЕМЫ

	     Практически,   мы   дожили   до   того,   что  реальных
	операционных систем  сегодня  осталось  полторы  штуки.  Это
	MS-WINDOWS и LINUX. С MS-WINDOWS все ясно - это коммерческий
	продукт  гениального  бизнесмена  (но  никакими  местом   не
	программиста)  Билла Гейтса, А LINUX - операционная система,
	которая пытается высунуть  голову  в  качестве  альтернативы
	на супер-монополизированном рынке.

	     Что говорить про WINDOWS?! "Нравится, не нравится - спи
	моя  красавица".  Закрытая  от  воровства  система  идет  по
	порочному  коммерческому  пути  конкретных  реакций  на "все
	вызовы  времени".  Система  достраивается  под   все   новые
	приложения  и прихоти. О стройной научной концепции говорить
	не приходится, хотя за миллиарды долларов, если надо, нужные
	люди обнаучат все что надо, создавая задним числом теорию.

	     Еще  один  большой  кореш  теоретиков,  не  гнушавшийся
	писать программы - Энтони Хоар, когда в  1980  году  получал
	Тьюринговскую  премию,  выразил  озабоченность  тем,  что  в
	компьютерной сфере, вместо проработки концепции, все  больше
	увлекаются  поверхностным  украшательством. Правда, тогда он
	имел  в  виду  безрадостные  тенденции  в  развитии   языков
	программирования.  Но  к операционным системам это относится
	даже в большей степени.

	     Грустна история операционной системы LINUX.  Гениальный
	UNIX   имел   стройную   ясную   архитектуру.   Как  хорошая
	аксиоматика  он  давал  возможность   себя   "раскручивать".
	Простота,  понятность и открытость позволили студенту Линусу
	Торвальдсу (как и еще ряду программистов) переписать  заново
	ядро  UNIX.  У него не было выбора. Коды других операционных
	систем, как и многие принципиальные  технические  решения  -
	коммерческая  тайна.   Для  собственной  концепции ОС у него
	явно не хватало научного потенциала. Но нельзя забывать, что
	Линус   писал  (пусть  и  переписывал)  свободную  ОС  через
	двадцать с лишним лет после появления UNIX. Были уже в ходу,
	прежде  всего  в  сфере  образования, открытые UNIX-подобные
	системы и прежде всего MINIX.

	     А   ситуация   в  компьютерном  мире  к  этому  времени
	изменилась  радикально.   Это  связано   с   двумя   китами:
	компьютерными сетями и графическим интерфейсом. Поэтому LIN-
	UX, это все-таки "переписанный" UNIX.  Как и  в  случае  Mi-
	crosoft  новые  вызовы  времени  стройности  и  красоты  это
	системе не добавили.

	     Более того, отдельные версии LINUX  сегодня  все  менее
	совместимы.    Сегодня  принято  говорить  о  дистрибутивах.
	Непростая процедура настройки  LINUX-системы  на  конкретную
	конфигурацию  превращается  в еще более сложную и уникальную
	для каждой версии.  От  основных  плюсов  UNIX,  получившего
	кода-то  Тьюринговскую  премию,  мало  что  осталось,  кроме
	открытости.

	     Что  касается  дружественности  для  пользователей,  то
	нынешнее  активное  поколение  в  операционной системе своих
	мобильников  использует  больше  различных  функций,  чем  в
	операционках  рабочих  и домашних компьютерах вместе взятых.
	И  там  один  лишь  недостаток,   работать   с   клавиатурой
	приходится только одним пальцем, причем, самым большим.


	     3.4. ЭЛЕКТРОННЫЕ ПРИЧИНДАЛЫ

	     Электронные  таблицы  начали  появляться в 70-ых годах,
	еще до прихода графического интерфейса. Электронные таблицы,
	наряду  с  вычислениями  в  физике  и  механике по (большим)
	формулам, позволяли решать насущные проблемы  бухгалтеров  и
	менеджеров.   Можно  сказать, они стали венцом использования
	калькулятора   имени   Фон-Неймана.    Электронных    таблиц
	появилось  масса. Всякие там Calc-VisiCalc-SuperCalc, Multi-
	plan,  Quattro  Pro,  Lotus   1-2-3,   MS   Excel,   OpenOf-
	fice.org.Calc.   Часто  такие таблицы интегрируются с базами
	данных, что для многих пользователей  определенного  типа  и
	достаточно бы.  Если бы компьютерные фирмы могли бы во-время
	остановиться.  Не дождетесь!

	     Электронные   таблицы   постепенно    превращаются    в
	специализированные  операционные  системы,  надстроенные над
	операционной системой.   Чтобы  через  них  управлять  всеми
	ресурсами компьютера.

	     И  второе  направление  использование  компьютера - это
	создание документов.  Это  текстовые  редакторы,  начиная  с
	простейших  ed,  sed,  red,  emacs  и т.д, и т.п., и прочее,
	прочее,  прочее,  заканчивая  до  безобразия   навороченными
	текстовыми  процессорами,  вроде  OpenOffice.org Writer, Mi-
	crosoft Word.

	     Если бы убрать из огромного  и  неповоротливого  Word-а
	90%  всяких  разных наворотов, то цены бы ему не было.  Есть
	подозрение,   что   больше   половины   засунутых   в   него
	возможностей  никто  и  никогда  вообще не использует.  Увы,
	вордовские   форматы   становятся   стандартами    де-факто.
	Особенно  омерзительно, что эти раздутые до безобразия файлы
	гоняют по интернету.

	     Текстовые    процессоры   постепенно   превращаются   в
	специализированные операционные  системы,  надстроенные  над
	операционной  системой.   Чтобы  через  них  управлять всеми
	ресурсами компьютера.


	     ГЛАВА 4. ЗАКЛЮЧИТЕЛЬНАЯ. КОРОТКАЯ. ПРО ЭНТРОПИЮ

	     4.1. ВТОРАЯ ПОЛУПРАВДА О ЛИНУСЕ

	     Вторая    половина   правды   про   Линуса   Торвальдса
	заключается в том, что он одновременно с популяризацией UNIX
	выступил и его могильщиком.

	     Откуда  простому  студенту  было  взять  не только идеи
	построения ядра операционной системы, но и списать  реальные
	программные  коды.  Ведь  майкрософты  и  эпплы  -  сплошная
	коммерческая тайна. Да и  попытки  учесть  новейшие  идеи  и
	продолжить  цепочку  MULTICS  -  UNIX - попытался продолжить
	профессора Эндрю Таненбаума - система MINIX.   Но  Таненбаум
	не  стал  корешем  Торвальдса. И все из-за микроскопического
	пустяка, из-за микроядра.  Ядро  -  это  главный  коммутатор
	операционной  системы.  Оно  тем  меньше,  чем  меньше в нем
	функций,  кроме  простейших  переключений  и   распределений
	ресурсов.  UNIX  страдал  "тяжелым"  ядром,  а  Торвальдс не
	захотел его радикально облегчить, как это  сделал  MINIX.  А
	ведь  мог  просто  списать,  как студенту и пристало... А он
	пришел к решению "ни нашим, ни вашим" - к монолитному,  хоть
	и модульному ядру.

	     Торвальдс  до  сих  пор  контролирует работы только над
	ядром. Вся остальная  "мякоть"  операционной  системы  LINUX
	отдана  на  волю  волн.  Кто  во  что  горазд.  Единственный
	контролер -  совесть  энтузиастов.  Они  же  плодят  десятки
	дистрибутивов  Linux  с различными примочками, приложениями.
	Которых уже тысячи. И версии  обновляются  несколько  раз  в
	год. Свобода! Демократия (власть народа)!


	     4.2. ЧАСТЬ. ЦЕЛОЕ. ЭНТРОПИЯ.

	     Свободное  программное обеспечение как и коммерческое -
	источники  программного   произвола   доброхотов   -   "чего
	изволите?".   Коммерческие  системы  создаются  по  принципу
	"клиенту так хочется", а свободные  программы  создаются  по
	принципу  "мне  так хочется". И те, и другие перпендикулярны
	научному   подходу,    хоть    и    по    разным,    взаимно
	перпендикулярным, причинам.

	     Компьютер,  большой и шустрый калькулятор с программой,
	меньше всего используется именно в  этом  качестве.  Сегодня
	это  прежде  всего  устройство  для  реализации "стрелялок",
	иногда  с  возможностью  не  только  "мочить"  всех,  но   и
	планировать  военные  подлости  в  отношении виртуальных или
	реальных (сетевых) соперников.  А также  заниматься  поиском
	информации,   физически  размещенной,  вполне  возможно,  на
	другом краю земного шара.   Ну  и  разумеется,  это  пишущая
	машинка с наворотами.

	     Жизнь  многообразна.  А  все  гениальное, как известно,
	просто.  Но  принципом  Оккама:  "Без  нужды   не   умножать
	сущности", жизнь, увы, в отличие от немногих философов, этим
	не   руководствуется.    Жизнь    руководствуется    законом
	возрастания  энтропии  в  замкнутом  пространстве.   А  наше
	компьютерное пространство замкнуто машиной Фон-Неймана.

	     В 1980  году  в  своей  Тьюринговской  лекции:  "Старое
	платье  императора",  Энтони  Хоар  дорассказал  историю про
	голого короля, который "извлек"  урок,  сохранив  страсть  к
	красивостям.  Он  просто  перестал  снимать наряды, а только
	поверх надевал все новые, от самых искусных портных...   Так
	создавались  новые  языки  программирования  вроде  ПЛ/1  и,
	наконец, венца процедурного программирования - языка АДА.

	     Операционные системы, непрерывно усложняясь,  повторяют
	историю  с  языками программирования, становясь "все лучше и
	лучше", но только на более высоком уровне.  Они, не  меняясь
	в  сути  своей,  не  смотря на сильно изменившиеся условия с
	момента их первоначального  написания,  обрастают  быстро  и
	интенсивно   создаваемыми   новыми  нарядами.   Так,  поверх
	командной  оболочки  shell  теперь  накрутили  разнообразные
	графические  оболочки  - "рабочие столы", вроде KDE.  Просто
	сердце радуется!

	     Базы данных, кстати, - это тоже оболочки - над файловой
	системой.

	     А  уж  как  доразукрашивали прикладные программы, вроде
	Ворда - слов нет.


	     4.3. ОЧЕНЬ ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ

	     В  теоретическом  программировании сегодня, если судить
	по   лауреатам   ежегодной   Тьюринговской    премии,    уже
	неоднократно награждались этой премией ученые, внесшие вклад
	в новомодную уже лет сорок "Теорию труднорешаемых задач".  А
	это   более   чем   серьезно,   учитывая   уровень   ученых,
	составляющих  жюри  этой  премии  (и  ее   сумму   $250000).
	Краеугольным  камнем  этой  теории  является (риторический?)
	вопрос

			   NP = P ?   Или нет!?

	     По-простому,  совпадает ли (теория держится на том, что
	не совпадает)  множество  труднорешаемых  задач  (разрешимых
	недетерминированными    полиномиальными    алгоритмами)    с
	множеством   обычных   задач   (полиномиальной   сложности).
	Создателями  теории  торжественно  провозглашено,  что  если
	найдется хотя бы одно простое (полиномиальное) решение  хотя
	бы  для  одной  трудной  (NP-полной) задачи, тогда равенство
	справедливо  и  эта   теория,   базирующаяся,   кстати,   на
	прецедентах(!!!), не имеет смысла.

	     Так  вот, существует алгоритм Магу (K.Maghout), который
	решает задачу нахождения клики графа с  помощью  простейшего
	алгоритма  не  более чем полиномиальной сложности.  А с этой
	задачи про клику, наряду с задачей коммивояжера,  начиналась
	"Теория  труднорешаемых  задач"...   Так  что?..  А?.. Но не
	будем отвлекаться!


	     5. РЕЗЮМЕ (но не по поводу устройства на работу)

	     Концепция Фон-Неймана доказала и каждый день доказывает
	свою неадекватность задачам, которые сегодня ставятся  перед
	компьютером.    Под   грузом  неадекватных  задач  компьютер
	вынужден львиную  долю  управления  самим  собой  передавать
	операционной системе. Сама схема

		    память < - > процессор

	     настолько    усложнилась,    обросла    принципиальными
	деталями,что стала почти неправдой. Парадигмы функциональной
	и логической машин с концепцией  Фон-Неймана  уже  не  имели
	ничего  общего.  А  возникающая  время  от  времени  мода на
	нейронные сети вместо науки и техники питает  (неплохо) лишь
	диссертации.

	     Интерфейс  с  человеком  тем  более  оброс программными
	оболочками.   Как  когда-то  развитие   процедурных   языков
	программирования   двигалось  от  от  машины  Фон-Неймана  к
	человеку (а не наоборот!), так теперь это "знамя" подхватили
	операционные системы.

	     Существует  много всяких сфер человеческой деятельности
	(практически  все,  кроме  очень  уж  деликатных),   которые
	человеку  хотелось  бы  переложить на плечи компьютера. Боле
	того, есть настойчивое  желание  формулировать  эти  задания
	компьютеру все меньше себя утруждая. Но не все желания можно
	свести к кликанью мышкой. Точнее,  мало  что  можно...   Как
	когда-то    программистов    "дрессировал"   оператор   GOTO
	(поскольку без него нельзя было изложить логику  программы),
	так сегодня пользователя "дрессирует" мышка.

	     Короче,  все  мы  надеялись,  что в наступившем светлом
	будущем компьютеры будут уметь делать все, что нам  надо.  И
	если  надо  решить  какую-то  задачу, нам мало дела до того,
	есть ли у нее алгоритм решения. Если нет алгоритма (а точнее
	- нет для решения нашей задачи Машины Тьюринга), нам-то что,
	прикажете застрелиться?

	P.S. Позднее раскаяние. Осознав, что так нельзя, написал
	жизнеутверждающее продолжение.

	(с) 2008, А.Соловьев