Автор Тема: Переводы Дейкстры  (Прочитано 6596 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Переводы Дейкстры
« : Июль 25, 2012, 06:58:31 am »
Плоды непонимания
The fruits of misunderstanding. EWD854.

Цитировать
Такое впечатление, что некоторые вещи возможны только в мире ИТ (computing). Объявлено о разработке новой продукции, и все глотают слюни в предвкушении её увидеть. Но, когда продукция готова, люди начинают пользоваться ею и видят, что она самым бесстыдным образом не способна выполнять своё предназначение. Это значит провал, и это должно быть ясно каждому. Даже в голове не укладывается такое развитие событий: все забывают о первоначальной цели и считают продукцию удачной. Читать далее
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #1 : Июль 25, 2012, 08:22:25 am »
Когда в 60-х годах «высокоуровневые» языки программирования не принесли обещанного спасения, решили, что медленная реакция компьютера при пакетной обработке делает невозможным эффективную отладку, и во имя быстрой реакции в широких масштабах внедрили «интерактивное программирование». На его распространение не повлияло даже то, что контролируемые эксперименты показали в лучшем случае маргинальную выгоду от причандал для интерактивной отладки.
Дык этот же тренд же до сих пор торчит! Это и хваленое преимущество всяких питонов и прочего динамически типизированного шлака, это и repl всяких там хваленых хаскелей, это и весь из себя интерактивный BB с мгновенной компиляцией и метаинформацией и срезом состояния системы в случае успешного краша.
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

alexus

  • Гость
Re: Переводы Дейкстры
« Ответ #2 : Июль 25, 2012, 09:03:35 am »
Плоды непонимания
The fruits of misunderstanding. EWD854.

Цитировать
Такое впечатление, что некоторые вещи возможны только в мире ИТ (computing). Объявлено о разработке новой продукции, и все глотают слюни в предвкушении её увидеть. Но, когда продукция готова, люди начинают пользоваться ею и видят, что она самым бесстыдным образом не способна выполнять своё предназначение. Это значит провал, и это должно быть ясно каждому. Даже в голове не укладывается такое развитие событий: все забывают о первоначальной цели и считают продукцию удачной. Читать далее
Читать Дейкстру всегда интересно, но кроме сочных и образных определений... из его писем/статей ничего полезного не извлечёшь. Эта статья пример того... Намешано всего много, а кроме бурчания... ничего нет.

Цитата: Дейкстра
Грубые факты состоят в том, что большая часть истории ИТ состоит из многомиллионных провалившихся проектов.
В какой другой отрасли не так?.. Сколько многомиллионных провалившихся проектов в космонавтике, авиации, судостроении и пр. и пр.? Любой проект несёт в себе риски, финансовые риски, в том числе. Чем выше новизна, тем выше риски. Что в этом нового, причём здесь ИТ?

Цитата: Дейкстра
Большое количество провалов можно объяснить тем, что мир ИТ наводнён сознательными лжеучёными и мошенниками, но я отвергаю это объяснение потому, что оно, во-первых, слишком горькое, чтобы быть здравым, во-вторых, неправильное: в общем и целом люди искренне надеются на успех. Очевидно, что мы столкнулись с распространённым непониманием, настолько стойким, что его невозможно игнорировать.
К сожалению, "сознательны лжеучёные" - это основа современно официальной науки. ИТ расхлёбывает то же самое, что и любые другие отрасли знаний/промышленности.

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

Цитата: Дейкстра
Наоборот, человек подходит к новинке с разумом настолько чистым, насколько возможно, и пытается понять эту новинку, исходя только из её внутренних закономерностей. (Когда вы учите иностранный язык, не переводя слова с иностранного языка на родной язык и наоборот, вы применяете этот подход. Это единственный выход, если языки предназначены для выражения разных мыслей: человек должен научиться «думать» на новом языке.) Я полагаю, что ИТ является настолько беспрецедентным явлением, что только второй подход адекватен, и поэтому мы обязаны прекратить подходить к ИТ с помощью аналогий.
В пределе... каждая новая задача должна порождать новый язык... Это то самое проклятие, которое пало на головы строителей "вавилонской башни"... Невозможным стало решение практических задач... ни одной...

Цитата: Дейкстра
Когда мы пытаемся понять программу, мы не должны смотреть на отдельные вычисления, в идеале (то есть ради эффективного мышления) мы должны работать с целой программой, временно забывая, что можно интерпретировать исполняемый код. Всё это хорошо известно, и это называется «аксиоматический метод». Я хочу сказать, что использование антропоморфных терминов возводит стену на пути этого метода. Антропоморфизм приводит к тому, что наиболее эффективный способ разработки программ и рассуждений о программах отвергается как «контринтуитивный» или «слишком абстрактный». Это уже очень серьёзно.
А здесь затрагивается совсем другая проблема... Да, целое (программу в данном случае) нужно понимать, до того, как приступаем к разбору частностей (структуры программы). Но это не имеет ничего общего с предыдущим тезисом. Поскольку целое (программу) мы всё равно будем выражать с помощью того языка, на котором происходит общение (языки программирования - частное средство общения). То есть, новые программа или самолёт выражаются с помощью "старых" языков (будь то язык программирования или язык конструкторского чертежа).

и т.д. (в общем, всё тот же "цикл Дейкстры"... заумно, запутанно, местами правильно...) :)

albobin

  • Full Member
  • ***
  • Сообщений: 198
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #3 : Июль 26, 2012, 01:55:01 pm »
Лишний повод прочесть в оригинале :)
Жаль, что не шибко силён в аглицком. чтоб уж совсем без словаря. Рекомендую всем, которые не очень, читать оригинал + типа гугль транслейт + готовый перевод. Практикую такой коктейль сам. Меньше претензий возникнет (к автору) по поводу "неточных" слов (в переводе)  ;D

alexus

  • Гость
Re: Переводы Дейкстры
« Ответ #4 : Июль 26, 2012, 08:41:24 pm »
Лишний повод прочесть в оригинале :)
Жаль, что не шибко силён в аглицком. чтоб уж совсем без словаря. Рекомендую всем, которые не очень, читать оригинал + типа гугль транслейт + готовый перевод. Практикую такой коктейль сам. Меньше претензий возникнет (к автору) по поводу "неточных" слов (в переводе)  ;D
К переводу нареканий нет... Спасибо.
Не знаю, как кого... но меня удивляет желание творить "идолов"... Дейкстра интересный автор, читать его нужно, но критически... собственно, как и Вирта (к которому я отношусь с уважением, но без... почтения).

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #5 : Август 13, 2012, 05:34:04 pm »
Собственно ссылка на некоторые переводы:
http://club.shelek.ru/view.php?id=32

В старой статье "Два взгляда на программирование" упоминается оценка производительности програамиста путём подсчёта произведённых им строк (как это принято в мейнстриме) и предлагается альтернативная оценка -- подсчёт истраченных программистов строк кода.

В связи с этим вспоминаются слова Ильи о том, что у них там оберонщики клепают по полтыщи строк кода в день, в то время как сишники выдают от силы 15...
Илья, что же это ваши оберонщики там столько тратят строк кода? это же ужас какой-то ))) Экономнее надо быть )))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #6 : Август 13, 2012, 05:37:21 pm »
И те, и другие постоянно ищут 0 в конце строки...

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #7 : Август 13, 2012, 06:29:35 pm »
И те, и другие постоянно ищут 0 в конце строки...

Да, строки в КП реально странные. Учитывая то, что есть нормальные (с размером) массивы...

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #8 : Август 13, 2012, 07:19:20 pm »
И те, и другие постоянно ищут 0 в конце строки...
А смысл это искать в явном виде? strlen же есть :-)
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #9 : Сентябрь 09, 2012, 04:51:40 pm »
Выдержка из "Дисциплины программирования" (раздел "От Автора"):
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #10 : Октябрь 02, 2012, 07:50:57 am »
В сборнике переводов Дейкстры пара новых перевода:

EWD1012 Настоящие математики не доказывают
Заметка «Настоящие математики не доказывают» (““Real mathematicians don't prove””, EWD1012) рассказывает о том, что люди, которые не считают формальное доказательство критерием истины, существуют не только в программировании, но и в математике. Правда, в программировании их намного больше.

EWD913 О пропасти между культурами. (Черновик.)
Заметка «О пропасти между культурами. (Черновик.)» (“On a cultural gap (Draft.)”, EWD913) рассказывает, какие исторические факторы привели к тому, что информатика оказалась оторванной от математики.
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #11 : Август 30, 2013, 01:56:35 pm »
В чатике мелькало упоминание про статью Дейкстры EWD123 "Cooperating sequential processes".
Вот её перевод:

Э. ДЕЙКСТРА. "ВЗАИМОДЕЙСТВИЕ ПОСЛЕДОВАТЕЛЬНЫХ ПРОЦЕССОВ"

Цитировать
ВВЕДЕНИЕ

1. ПРИРОДА ПОСЛЕДОВАТЕЛЬНЫХ ПРОЦЕССОВ

2. СЛАБО СВЯЗАННЫЕ ПРОЦЕССЫ
  2.1. Простой пример
  2.2. Обобщенная задача взаимного исключения
  2.3. Пример

3. НОВЫЙ ПОДХОД К ЗАДАЧЕ ВЗАИМНОГ0 ИСКЛЮЧЕНИЯ
  3.1. Необходимость в более реалистическом решении
  3.2. Синхронизирующие примитивы
  3.3. Применение синхронизирующих примитивов к задаче взаимного исключения

4. ОБЩИЙ СЕМАФОР
  4.1. Типичное использование общего семафора
  4.2. Избыточность общего семафора
  4.3. Ограниченный буфер

5. ВЗАИМОДЕЙСТВИЕ ЧЕРЕЗ ПЕРЕМЕННЫЕ СОСТОЯНИЯ
  5.1. Пример приоритетного правила
  5.2. Пример с диалогами

6. ПРОБЛЕМА ТУПИКОВ
  6.1. Алгоритм банкира
  6.2. Применение алгоритма банкира

7. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Переводы Дейкстры
« Ответ #12 : Октябрь 18, 2013, 12:15:59 pm »
К Дейкстре отношения, в общем-то, не имеет, но по теме параллельного программирования:

Simon Marlow "Parallel and Concurrent Programming in Haskell"
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…