LINUX.ORG.RU
ФорумTalks

Стопами Дейкстры

 ,


3

3

В свое время Дейкстра запретил оператор goto и это очень положительно сказалось на культуре программирования. Вспомните классический Бейсик где управляющих конструкций было фактически две - условный переход и безусловный переход, а все циклы работали через метки. Помимо приведения циклов в божеский вид отказ от обязательного использования меток имел и другие последствия, опять же сугубо положительные - появилась возможность нормально использовать локальные переменные, стали использоваться исключения и т.д.
А ведь до нашего времени дожил еще атавизм, убивающий всю читабельность - цикл for. Самое смешное, что в современных языках он не нужен и даже вреден. Цикл for плохо распараллеливается. Вложенные циклы очень сильно снижают читабельность кода, при том что делают что-то тривиальное - например складывают массивы.
Господа, если язык в 21м веке требует для сложения двух матриц писать цикл, а не складывать их тупо как два числа - a+b, то язык говно. Уже больше 30 лет по планете шагает ООП, оно же позволяет переопределять операторы и делать продвинутые типы данных даже если язык изначально говно. Вспоминаем Вирта - «программы = алгоритмы + структуры данных».Отказ от for научил бы лиц, называющих себя программистами, что структуры данных это не только скалярные переменные и, в лучшем случае, списки и строки.
Когда нужен именно цикл, периодическое выполнение команды, то есть итераторы и их аналоги (вроде функции apply в R), опять же, for не нужен. Да, может найтись 1% случаев, когда применение for оправдано, но ведь и goto до сих пор используют там, где это действительно нужно.

★★☆☆☆
Ответ на: комментарий от aedeph_

Мсье знает толк в извращениях :)

Не, нормально всё, это ж не ржавчина какая.

Stanson ★★★★★
()
Ответ на: комментарий от DNA_Seq

Как ты заметишь что инжектор впрыскивает топливо в неподходящий момент?

:) Ты вообще хотя бы приблизительно принцип работы ДВС знаешь?

Ты ещё как заметишь и неподходящий момент и даже неподходящую длительность. А в нынешних всяких TFSI ещё и двигло разлететься на болты может, если невовремя прыснет.

Stanson ★★★★★
()
Ответ на: комментарий от Hertz

Очевидно - всякая декларативщина и логическое программирование.

alex4321
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.