Oberon space

General Category => Общий раздел => Тема начата: Geniepro от Июль 25, 2012, 06:58:31 am

Название: Переводы Дейкстры
Отправлено: Geniepro от Июль 25, 2012, 06:58:31 am
Плоды непонимания
The fruits of misunderstanding. EWD854.

Цитировать
Такое впечатление, что некоторые вещи возможны только в мире ИТ (computing). Объявлено о разработке новой продукции, и все глотают слюни в предвкушении её увидеть. Но, когда продукция готова, люди начинают пользоваться ею и видят, что она самым бесстыдным образом не способна выполнять своё предназначение. Это значит провал, и это должно быть ясно каждому. Даже в голове не укладывается такое развитие событий: все забывают о первоначальной цели и считают продукцию удачной. Читать далее (http://www.beroal.in.ua/article/dijkstra/ewd854.html)
Название: Re: Переводы Дейкстры
Отправлено: valexey от Июль 25, 2012, 08:22:25 am
Когда в 60-х годах «высокоуровневые» языки программирования не принесли обещанного спасения, решили, что медленная реакция компьютера при пакетной обработке делает невозможным эффективную отладку, и во имя быстрой реакции в широких масштабах внедрили «интерактивное программирование». На его распространение не повлияло даже то, что контролируемые эксперименты показали в лучшем случае маргинальную выгоду от причандал для интерактивной отладки.
Дык этот же тренд же до сих пор торчит! Это и хваленое преимущество всяких питонов и прочего динамически типизированного шлака, это и repl всяких там хваленых хаскелей, это и весь из себя интерактивный BB с мгновенной компиляцией и метаинформацией и срезом состояния системы в случае успешного краша.
Название: Re: Переводы Дейкстры
Отправлено: alexus от Июль 25, 2012, 09:03:35 am
Плоды непонимания
The fruits of misunderstanding. EWD854.

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

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

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

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

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

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

и т.д. (в общем, всё тот же "цикл Дейкстры"... заумно, запутанно, местами правильно...) :)
Название: Re: Переводы Дейкстры
Отправлено: albobin от Июль 26, 2012, 01:55:01 pm
Лишний повод прочесть в оригинале :)
Жаль, что не шибко силён в аглицком. чтоб уж совсем без словаря. Рекомендую всем, которые не очень, читать оригинал + типа гугль транслейт + готовый перевод. Практикую такой коктейль сам. Меньше претензий возникнет (к автору) по поводу "неточных" слов (в переводе)  ;D
Название: Re: Переводы Дейкстры
Отправлено: alexus от Июль 26, 2012, 08:41:24 pm
Лишний повод прочесть в оригинале :)
Жаль, что не шибко силён в аглицком. чтоб уж совсем без словаря. Рекомендую всем, которые не очень, читать оригинал + типа гугль транслейт + готовый перевод. Практикую такой коктейль сам. Меньше претензий возникнет (к автору) по поводу "неточных" слов (в переводе)  ;D
К переводу нареканий нет... Спасибо.
Не знаю, как кого... но меня удивляет желание творить "идолов"... Дейкстра интересный автор, читать его нужно, но критически... собственно, как и Вирта (к которому я отношусь с уважением, но без... почтения).
Название: Re: Переводы Дейкстры
Отправлено: Geniepro от Август 13, 2012, 05:34:04 pm
Собственно ссылка на некоторые переводы:
http://club.shelek.ru/view.php?id=32

В старой статье "Два взгляда на программирование" (http://club.shelek.ru/viewart.php?id=211) упоминается оценка производительности програамиста путём подсчёта произведённых им строк (как это принято в мейнстриме) и предлагается альтернативная оценка -- подсчёт истраченных программистов строк кода.

В связи с этим вспоминаются слова Ильи о том, что у них там оберонщики клепают по полтыщи строк кода в день, в то время как сишники выдают от силы 15...
Илья, что же это ваши оберонщики там столько тратят строк кода? это же ужас какой-то ))) Экономнее надо быть )))
Название: Re: Переводы Дейкстры
Отправлено: Peter Almazov от Август 13, 2012, 05:37:21 pm
И те, и другие постоянно ищут 0 в конце строки...
Название: Re: Переводы Дейкстры
Отправлено: vlad от Август 13, 2012, 06:29:35 pm
И те, и другие постоянно ищут 0 в конце строки...

Да, строки в КП реально странные. Учитывая то, что есть нормальные (с размером) массивы...
Название: Re: Переводы Дейкстры
Отправлено: valexey от Август 13, 2012, 07:19:20 pm
И те, и другие постоянно ищут 0 в конце строки...
А смысл это искать в явном виде? strlen же есть :-)
Название: Re: Переводы Дейкстры
Отправлено: Geniepro от Сентябрь 09, 2012, 04:51:40 pm
Выдержка из "Дисциплины программирования" (раздел "От Автора"):
Название: Re: Переводы Дейкстры
Отправлено: Geniepro от Октябрь 02, 2012, 07:50:57 am
В сборнике переводов Дейкстры (http://www.beroal.in.ua/article/dijkstra/) пара новых перевода:

EWD1012 Настоящие математики не доказывают (http://www.beroal.in.ua/article/dijkstra/ewd1012.html)
Цитата: http://beroal.livejournal.com/42017.html
Заметка «Настоящие математики не доказывают» (““Real mathematicians don't prove””, EWD1012) рассказывает о том, что люди, которые не считают формальное доказательство критерием истины, существуют не только в программировании, но и в математике. Правда, в программировании их намного больше.

EWD913 О пропасти между культурами. (Черновик.) (http://www.beroal.in.ua/article/dijkstra/ewd913.html)
Цитата: http://beroal.livejournal.com/42017.html
Заметка «О пропасти между культурами. (Черновик.)» (“On a cultural gap (Draft.)”, EWD913) рассказывает, какие исторические факторы привели к тому, что информатика оказалась оторванной от математики.
Название: Re: Переводы Дейкстры
Отправлено: Geniepro от Август 30, 2013, 01:56:35 pm
В чатике мелькало упоминание про статью Дейкстры EWD123 "Cooperating sequential processes" (http://www.cs.utexas.edu/~EWD/transcriptions/EWD01xx/EWD123.html).
Вот её перевод:

Э. ДЕЙКСТРА. "ВЗАИМОДЕЙСТВИЕ ПОСЛЕДОВАТЕЛЬНЫХ ПРОЦЕССОВ" (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/index.html)

Цитировать
ВВЕДЕНИЕ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej0.html)

1. ПРИРОДА ПОСЛЕДОВАТЕЛЬНЫХ ПРОЦЕССОВ  (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej1.html)

2. СЛАБО СВЯЗАННЫЕ ПРОЦЕССЫ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej2.html)
  2.1. Простой пример
  2.2. Обобщенная задача взаимного исключения
  2.3. Пример

3. НОВЫЙ ПОДХОД К ЗАДАЧЕ ВЗАИМНОГ0 ИСКЛЮЧЕНИЯ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej3.html)
  3.1. Необходимость в более реалистическом решении
  3.2. Синхронизирующие примитивы
  3.3. Применение синхронизирующих примитивов к задаче взаимного исключения

4. ОБЩИЙ СЕМАФОР (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej4.html)
  4.1. Типичное использование общего семафора
  4.2. Избыточность общего семафора
  4.3. Ограниченный буфер

5. ВЗАИМОДЕЙСТВИЕ ЧЕРЕЗ ПЕРЕМЕННЫЕ СОСТОЯНИЯ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej5.html)
  5.1. Пример приоритетного правила
  5.2. Пример с диалогами

6. ПРОБЛЕМА ТУПИКОВ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej6.html)
  6.1. Алгоритм банкира
  6.2. Применение алгоритма банкира

7. ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ (http://khpi-iip.mipk.kharkiv.edu/library/extent/dijkstra/ewd123/dej7.html)
Название: Re: Переводы Дейкстры
Отправлено: Geniepro от Октябрь 18, 2013, 12:15:59 pm
К Дейкстре отношения, в общем-то, не имеет, но по теме параллельного программирования:

Simon Marlow "Parallel and Concurrent Programming in Haskell" (http://chimera.labs.oreilly.com/books/1230000000929/index.html)