OberonCore
https://forum.oberoncore.ru/

Что имел в виду Дейкстра под величайшей силой компьютера?
https://forum.oberoncore.ru/viewtopic.php?f=86&t=4644
Страница 1 из 2

Автор:  Иван Кузьмицкий [ Понедельник, 25 Ноябрь, 2013 15:34 ]
Заголовок сообщения:  Что имел в виду Дейкстра под величайшей силой компьютера?

Наткнулся тут на перевод одного из текстов Дейкстры, написанным в 1983 году:
Цитата:
Сейчас пошла мода делать всевозможные «умные» системы и компоненты. Если выпарить воду, то этот почин сводится к разработке пушистого интерфейса между пользователем и компьютером, который делает компьютер как можно меньше похожим на компьютер: необходимо любой ценой замаскировать сильнейшую сторону компьютера — эффективное воплощение формальной системы.
На всякий случай приведу и оригинал (хотя, по-моему, смысл передан точно):
Цитата:
And now we have the fad of making all sorts of systems and components "intelligent" or "smart". It often boils down to designing a woolly man-machine interface that makes the machine as unlike a computer as possible: the computer's greatest strength --the efficient embodiment of a formal system-- has to be disguised at great cost
Но я понял, что не врубаюсь в смысл сказанного - сейчас, в новой вроде бы эпохе, спустя тридцать лет. Конечно, можно сказать, что в 1983 году компьютеры были совсем другими и нынче Дейкстра безнадёжно устарел. Как можно сейчас, в эпоху мобильных компьютеров, понятных трёхлетнему человеку, говорить про эффективность формальной системы?

Автор:  Илья Ермаков [ Понедельник, 25 Ноябрь, 2013 15:51 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

В принципе, речь про то, что всегда для любой задачи можно придумать базовое компактное множество понятий и операций, которое будет проще для реализации и менее объёмно для использования.

Но у неподготовленного пользователя возникнут проблемы с тем, что для каждой конкретной задачки нужно будет напрячь мозг и подумать, как из базовых данных кубиков получить решение...
Чтобы не вызывать стресс и необходимость думать у пользователя, наворачиваются разные не такие компактные понятия/действия, позволяющие больше задач решать на аналогии с другим ПО и в два клика..

Автор:  Иван Кузьмицкий [ Понедельник, 25 Ноябрь, 2013 20:12 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Илья Ермаков писал(а):
Но у неподготовленного пользователя возникнут проблемы с тем, что для каждой конкретной задачки нужно будет напрячь мозг и подумать, как из базовых данных кубиков получить решение...
В ответ на этот тезис, прямо в руку спрыгнула другая цитата, оттуда же :)

Цитата:
Но это всё в прошлом и не повторится, потому что недавно мы обнаружили, что:
(i) интерактивное программирование сдулось только потому, что канал связи между «конечным пользователем» и «рабочей станцией» был слишком узким: цветные дисплеи с высоким разрешением и голосовая связь преодолеют это ограничение;
(ii) что PL/I сдулся, потому что он не удовлетворял нужды «программистов встроенных систем» и не был достаточно «портабельным», чтобы его признали всемирным стандартом; эти проблемы решены с помощью языка Ада;
(iii) что недавно осознанная трудность строгого (rigorous) программирования в конце концов является не такой уж важной, поскольку она относится только к «программированию в малом»; в «реальном мире» намного важнее проблема «программирования в большом», и в качестве решения «инженерия ПО» (или «технология разработки ПО», software engineering — примечание переводчика) разрабатывает весьма «умные» «среды поддержки программирования» с достаточным количеством «экспертных знаний».
Особенно понравился пункт (iii), и это 1983 год! Как будто ничего не изменилось с той поры.

Автор:  Илья Ермаков [ Понедельник, 25 Ноябрь, 2013 21:36 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Так в плане методов мало что принципиально меняется.
Индустрия проскочила по кругу с ПК-шными программистами ))

Автор:  Владислав Жаринов [ Вторник, 26 Ноябрь, 2013 02:29 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Не про это же высказывались Мичи и Джонстон здесь: viewtopic.php?p=62848#p62848 (как про "человеческие и машинные рамки" в Гл.3 выдержки)?.. только с немного других позиций... Кстати, мнение Дейкстры о персональных компьютерах они тоже обсуждают... только другое здесь...

Автор:  Jordan [ Вторник, 26 Ноябрь, 2013 11:11 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Илья Ермаков писал(а):
В принципе, речь про то, что всегда для любой задачи можно придумать базовое компактное множество понятий и операций, которое будет проще для реализации и менее объёмно для использования.


Отличные слова. Сразу вспоминаю линукс с его дружественной настройкой. В место использования ос, нужно устраивать многочасовой забег по курению мануалов.

Автор:  Иван Кузьмицкий [ Вторник, 26 Ноябрь, 2013 12:38 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Нашёл в одной из последних заметок Дейкстры такие слова (2000 год, в переводе):
Цитата:
Видите ли, в то время, как мы все знаем, что причиной всех бед является неуправляемая сложность, мы не знаем, ни какой степени простоты можно достичь, ни до какой степени внутренняя сложность разработки в целом должна отражаться на видимых интерфейсах. Мы попросту до сих пор не знаем, насколько сможем выпутаться из этого. Мы до сих пор не знаем, можно ли отличить сложность, присущую самой задаче, от случайной сложности. Мы до сих пор не знаем, будут ли возможны компромиссы. Мы до сих пор не знаем, сумеем ли разработать для сложности осмысленную концепцию, на базе которой сможем построить полезную теорию. Откровенно говоря, мы просто до сих пор не знаем, о чем нам следует говорить, но это не должно нас беспокоить, поскольку это только иллюстрирует, что имеется в виду под непонятными целями и негарантированными результатами.
Возможно, под маскировкой "сильнейшей стороны компьютера" Дейкстра имел в виду, по-моему, как раз эту проблему: формальную систему не используют по-настоящему для преодоления и управления сложностью, заглаживая и замазывая возникающие артефакты, пользуясь сложившимися удобствами и не участвуя в процессе осмысленно, при этом отказываясь от проектирования будущего.

Автор:  Jordan [ Среда, 27 Ноябрь, 2013 14:28 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

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


Стоп, стоп. Дублирование кода разве не добавляет сложности? Повальный system не замазывает артефакты оберона, КП?

Автор:  Jordan [ Среда, 27 Ноябрь, 2013 14:29 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Точнее system компенсирует, отсутствие возможностей языка.

Автор:  Иван Кузьмицкий [ Среда, 27 Ноябрь, 2013 14:32 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Jordan писал(а):
Стоп, стоп. Дублирование кода разве не добавляет сложности? Повальный system не замазывает артефакты оберона, КП?
Дейкстра под конец своей жизни признал, что никто по-настоящему не знает, как работать со сложностью. Что нет ни концепции сложности, ни тем более полезной теории.

Поэтому говорить про SYSTEM в Обероне тут несколько рановато. А тем более в связи с каким-то отсутствием чего-то в языке. Кстати, тот же Дейкстра предостерегал от опасности называния формальной системы "языком".

Автор:  Jordan [ Среда, 27 Ноябрь, 2013 14:46 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Иван Кузьмицкий писал(а):
Дейкстра под конец своей жизни признал, что никто по-настоящему не знает, как работать со сложностью. Что нет ни концепции сложности, ни тем более полезной теории.


А как же структурное программирование? Абстракции? Деление на модули и процедуры? Всё это фантики? Или я чего то не понимаю, извините за мою тупость.

Автор:  Jordan [ Среда, 27 Ноябрь, 2013 14:51 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Тот же STL, разве это не борьба со сложностью написания алгоритмов? Чем не концепция стандартной библиотеки структур данных и алгоритмов. Именно написания, а не понимания.

Автор:  Иван Кузьмицкий [ Среда, 27 Ноябрь, 2013 14:54 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Jordan писал(а):
Иван Кузьмицкий писал(а):
Дейкстра под конец своей жизни признал, что никто по-настоящему не знает, как работать со сложностью. Что нет ни концепции сложности, ни тем более полезной теории.


А как же структурное программирование? Абстракции? Деление на модули и процедуры? Всё это фантики? Или я чего то не понимаю, извините за мою тупость.
Ну дык это жалкие потуги всё, как теперь оказывается :) Сложность нарастает как-то по-особому, и никто толком не знает, что это и как это победить.

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

Jordan писал(а):
Тот же STL, разве это не борьба со сложностью написания алгоритмов? Чем не концепция стандартной библиотеки структур данных и алгоритмов. Именно написания, а не понимания.
Все борются со сложностью, это вечная война :)

Автор:  Jordan [ Среда, 27 Ноябрь, 2013 16:41 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Сделал поиск по исходникам ББ

https://github.com/valexey/BlackBox-Component-Builder

На слово sort
https://github.com/valexey/BlackBox-Com ... ef=cmdform

Слово next
https://github.com/valexey/BlackBox-Com ... ef=cmdform

Теперь, осталось подсчитать сколько раз был реализован список. стек, очередь и дерево.

Вот оно дублирование кода, на практике.

Автор:  Валерий Лаптев [ Среда, 27 Ноябрь, 2013 17:18 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Jordan писал(а):
Тот же STL, разве это не борьба со сложностью написания алгоритмов? Чем не концепция стандартной библиотеки структур данных и алгоритмов. Именно написания, а не понимания.


Все это не ТЕОРИЯ. Это практические приемы, открытые по мере развития отрасли.

Автор:  Иван Кузьмицкий [ Среда, 27 Ноябрь, 2013 19:10 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Jordan писал(а):
Сделал поиск по исходникам ББ

https://github.com/valexey/BlackBox-Component-Builder

На слово sort
https://github.com/valexey/BlackBox-Com ... ef=cmdform

Слово next
https://github.com/valexey/BlackBox-Com ... ef=cmdform

Теперь, осталось подсчитать сколько раз был реализован список. стек, очередь и дерево.

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

Автор:  Rifat [ Среда, 27 Ноябрь, 2013 21:52 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Мне кажется он имел в виду это:
Цитата:
То, что машины являются абсолютно послушными слугами, является причиной недовольства многих начинающих программистов. Это послушание, полагают они, делает программирование мучительно трудным, поскольку тривиальная ошибка в программе определенно ведет к совершенно не тому поведению, которое нужно. Невозможность для программиста апеллировать к "здравому смыслу машины" производит впечатление одного из главных ее недостатков. Более опытный программист учится ценить ее рабскую, полную покорность: благодаря ей мы можем заставить ее сделать что-то "необычное"! И это то, чего вы не сможете сделать со слугой, который "округляет" свои инструкции до ближайшей возможной интерпретации.

EDW 316

Автор:  Иван Кузьмицкий [ Среда, 27 Ноябрь, 2013 22:13 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

Да, может быть, оно.

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

Кстати, выходит, что известный анализ ("Арифметика синтаксиса") показывает обе этих стороны:
Изображение

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

Автор:  Илья Ермаков [ Четверг, 28 Ноябрь, 2013 23:42 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

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

В ту же тему - о простоте и защите:

- когда-то, года полтора назад, ещё на госслужбе в региональной конторе, после одной из проверок по защите персональных данных, разговорились неформально в курилке с "товарищем майором".
И он мне сказал следующее: "Знаешь, вот вся эта кипа нормативных актов по защите ПД - и кипа бумаг, которую должна принять и поддерживать организация - полная хрень, только мешающая выстроить какую-либо нормальную, проверяемую систему защиты. У нас по гостайне на любом типовом объекте стопка документов в 3-4 раза тоньше, чем вот эта хрень по защите персональных данных. Потому что там задача - построить и описать столь компактную модель защиты, которую можно гарантированно проверить на выполнение\соблюдение".

Автор:  igor [ Пятница, 29 Ноябрь, 2013 08:29 ]
Заголовок сообщения:  Re: Что имел в виду Дейкстра под величайшей силой компьютера

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

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/