OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 18:33

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
СообщениеДобавлено: Понедельник, 25 Ноябрь, 2013 15:34 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Наткнулся тут на перевод одного из текстов Дейкстры, написанным в 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 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
В принципе, речь про то, что всегда для любой задачи можно придумать базовое компактное множество понятий и операций, которое будет проще для реализации и менее объёмно для использования.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Ноябрь, 2013 20:12 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Илья Ермаков писал(а):
Но у неподготовленного пользователя возникнут проблемы с тем, что для каждой конкретной задачки нужно будет напрячь мозг и подумать, как из базовых данных кубиков получить решение...
В ответ на этот тезис, прямо в руку спрыгнула другая цитата, оттуда же :)

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 25 Ноябрь, 2013 21:36 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Так в плане методов мало что принципиально меняется.
Индустрия проскочила по кругу с ПК-шными программистами ))


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Ноябрь, 2013 02:29 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Ноябрь, 2013 11:11 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Илья Ермаков писал(а):
В принципе, речь про то, что всегда для любой задачи можно придумать базовое компактное множество понятий и операций, которое будет проще для реализации и менее объёмно для использования.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 26 Ноябрь, 2013 12:38 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:28 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Возможно, под маскировкой "сильнейшей стороны компьютера" Дейкстра имел в виду, по-моему, как раз эту проблему: формальную систему не используют по-настоящему для преодоления и управления сложностью, заглаживая и замазывая возникающие артефакты, пользуясь сложившимися удобствами и не участвуя в процессе осмысленно, при этом отказываясь от проектирования будущего.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:29 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Точнее system компенсирует, отсутствие возможностей языка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:32 

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:46 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Иван Кузьмицкий писал(а):
Дейкстра под конец своей жизни признал, что никто по-настоящему не знает, как работать со сложностью. Что нет ни концепции сложности, ни тем более полезной теории.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:51 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Тот же STL, разве это не борьба со сложностью написания алгоритмов? Чем не концепция стандартной библиотеки структур данных и алгоритмов. Именно написания, а не понимания.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 14:54 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Jordan писал(а):
Иван Кузьмицкий писал(а):
Дейкстра под конец своей жизни признал, что никто по-настоящему не знает, как работать со сложностью. Что нет ни концепции сложности, ни тем более полезной теории.


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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 16:41 

Зарегистрирован: Пятница, 26 Август, 2011 23:42
Сообщения: 339
Откуда: Россия, Самара
Сделал поиск по исходникам ББ

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 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Jordan писал(а):
Тот же STL, разве это не борьба со сложностью написания алгоритмов? Чем не концепция стандартной библиотеки структур данных и алгоритмов. Именно написания, а не понимания.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 19:10 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 21:52 

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

EDW 316


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 27 Ноябрь, 2013 22:13 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2935
Откуда: г. Ярославль
Да, может быть, оно.

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 28 Ноябрь, 2013 23:42 
Модератор
Аватара пользователя

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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 29 Ноябрь, 2013 08:29 

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB