|
|
|
Бобби Грант |
|
Глава
2 Мы сразу приведём Вам пример работающей программы. Ещё раз запомните - любая программа будет работать. Вы можете использовать любой язык: английский, русский, Pascal, C, Ada, символьный, греческий или любой другой, даже придуманный лично Вами. Можно использовать даже звуки. Действительно, музыкальную религию тоже можно создать, и она будет работать; но насколько эффективно она будет это делать - зависит от композитора. Например, один из авторов (не будем указывать пальцем (прим.Сволоча Ц.Г.)) создал религию пердящих звуков. Сейчас он как раз работает над соответствующей библией. Ещё заметим, что разные части программы можно писать на совершенно различных языках (multi-language programming). Авторы не являются сторонниками данного стиля программирования, так как часто это создаёт семантически неизотропные миры. Действительно, разные языки обладают различающейся семантикой. Поэтому, например, полнота описания свойств объекта в одном месте программы может обернуться трагической неполнотой удовлетворения желаний (в оригинале- that fucking desires (прим.пер.)) объекта в другом её месте, написаном на другом языке. Единственным оправданием мульти-языковому программированию может служить то, что проблемы типа описанной выше возникают и при моно-языковом программировании - исключительно из-за недочётов программиста. На этот счёт существует весьма интересная методика, изложенная в книге Блядева У.Г., русского программиста-самоучки, "Обезьяна-Создатель". Суть её в том, что разрабока заведомо ошибочной программы с помощью мульти-языкового программирования (которое тоже ошибочно по природе человеческой) приводит к созданию более благоустроенного мира, чем создание аналогичного мира при моно-языковом программировании. Дело тут в том, считает Блядев (в оригинале- this fucking Blyadev are guess (прим.пер.)), что две совокупности ошибок уменьшают число ошибок в работающей программе. Блядев приводит вероятностные выкладки и доказывает это на примере собственноручно составленных программ. Но авторы не принимают всерьёз ни самого Блядева, ни его теорий. Дело в том, что на последнем семинаре "God Soft Party'99" Блядев перебил Жоппасу П.П. все пальцы на правой руке за то, что Сволочь Ц.Г. обозвал Блядева fuckergrammer'ом. Приведём Вам наконец
этот пример (в оригинале-fucking example (прим.пер.)). Программа нами
протестирована и работает именно так, как будет описано ниже при её описании.
Не смейтесь, как идиот, здесь абсолютно нет никакой тавтологии. Это очень
серьёзная проблема. Зачастую программы бывают написаны на архи-сложных
с точки зрения божественной элементарности языках, что сами программисты
не могут точно сказать, как всё это будет работать, каков будет тот новый
мир (в оригинале- that fucking new world (прим.пер.)). Божественная элементарность
языка - это такое его свойство, которое показывает, насколько единичное
понятие языка соответствует Абсолютному Божественному Эквиваленту. Чтобы
не быть голословным, приведём пример. В английском языке слово kill означает
"убить, уничтожить". При ис- BOOL kill( *subject:TObject);
//объявление функции В этом фрагменте
программы рассматривается индивидуальный экземпляр - судя по имени массива
(man) - человек. Мы его убиваем функцией kill(), объявленной выше. Если
результат убийства - FALSE, то убить его не получилось, следовательно
данный субъект бессмертен, о чём мы его и уведомляем (как он, наверное,
пересрался!). Но проблема в том, что "ЧТО ЗНАЧИТ "УБИТЬ"
В ТОМ МИРЕ?". Значит ли это просто лишить Корни проблемы кроются
не так глубоко. Наш мир тоже создан другими, и наши языки являются отражением
нашего мира.
Да, но в то же время наш мир является нам в образах нашего языка. (Если
ты большой умник, Жоппас, то так и скажи, а не суй свой абзац в мой текст
(прим.Сволоча Ц.Г.)). Чем
больше задуманный проектировщиком мир отличается от нашего, тем труднее
его реализовать.Чем
больше он отличается, тем труднее его вообразить, и ещё труднее конкретизировать
и формально описать. Program
WORLD_ONE; var repeat {------------------------------------------------------------------} |