avva: (Default)
avva ([personal profile] avva) wrote2002-08-18 09:26 am

Дейкстра, compatibility, и чуть-чуть Ворфа, сдобренного Сапиром

Цитата из Тюринговской лекции Дейкстры (1972-й год, между прочим):
I pray daily that more of my fellow-programmers may find the means of freeing themselves from the curse of compatibility.
На что в 2002-м году я хотел бы отреагировать так: Ха! Нет, лучше так:
Ха. Ха. Ха.


А вот ещё интересный отрывок из той же лекции, затрагивающий в каком-то смысле тезис Ворфа-Сапира, применяя его к программистам:
Now for the fifth argument. It has to do with the influence of the tool we are trying to use upon our own thinking habits. I observe a cultural tradition, which in all probability had its roots in the Renaissance, to ignore this influence, to regard the human mind as the supreme and autonomous master of its artifacts. But if I start to analyse the thinking habits of myself and of my fellow human beings, I come, whether I like it or not, to a completely different conclusion, viz. that the tools we are trying to use and the language of notation we are using to express or record our thoughts, are the major factors determining what we can think or express at all![...]

Выделено мной.

И ничего смешного.

[identity profile] acow.livejournal.com 2002-08-18 01:26 am (UTC)(link)

Дейкстра же говорит о *его* fellow-programmers, а не о ваших.

Дейкстра прав. Вне зависимости от года или текущей версии VB, или STL ( или чем вы пользуетесь? )

Был такой финский студент, например, который поклал на compatibility. И ничего. А до него был один американский сумасшедший, который тоже поклал на compatibility. И тоже. Ничего получилось. Все не так примитивно, конечно, но .... Кстати, дедушка Кнут тоже поклал на compatibility.

Re: И ничего смешного.

[identity profile] ex-sgt783.livejournal.com 2002-08-18 02:22 am (UTC)(link)
как ужасно забавно, что даже понятие compatibility воспринимается всеми по разному.

вы, например, под compatibility имеете в виду совместимость с операционными системами Майкрософта. что для меня, например, выглядит странно - по-моему, вот уж кто поклал на совместимость - это майкрософт как раз.

Дейкстра же, видимо, имеет в виду в первую очередь совместимость с более ранними версиями вашего собственного продукта.

Re: И ничего смешного.

[identity profile] acow.livejournal.com 2002-08-18 04:13 am (UTC)(link)
Я полагаю, что Дейкстра имел в виду 'соместимость' как священную корову. (Совершенно мудро заметив, что там, где начитают руководствоваться compatibility или - как вариант о котором говорите вы - современным 'legacy' - начинает смердить)

И Дейкстра в этом 1000% прав. Ибо он был умный. И смотрел далеко. Кое в чем ошибался ( с прерываниями у него были ... нелюбовь ) но уж не в 'общей картине'.

Re: И ничего смешного.

[identity profile] avva.livejournal.com 2002-08-18 02:56 am (UTC)(link)
Дейкстра прав. Вне зависимости от года или текущей версии VB, или STL ( или чем вы пользуетесь? )

Это смешно. Вообще-то я пользуюсь тем, что нужно для решения задачи.

Был такой финский студент, например, который поклал на compatibility.

Это как он поклал - тем, что заново имплементировал операцинную систему, которой к тому моменту исполнилось четверть века, не добавил в неё ничего существенного и скрупулёзно сохранил все её интерфейсы?

А до него был один американский сумасшедший, который тоже поклал на compatibility. И тоже. Ничего получилось.

А этот как поклал? Тем, что переписал уже существующий редактор на другом языке? Тем, что написал новый компилятор к старому языку 20-летней давности, ничего к этому языку не добавив? Или тем, что основал проект, целью которого заявил - переписать заново все стндартные утилиты всё той же старой операционной системы, сохраняя всю функциональность и интерфейсы?

Очень смешные примеры.

Кстати, дедушка Кнут тоже поклал на compatibility.

Вот Кнут действительно поклал, когда TeX писал. Это редкое исключение из правил. Но в этой области и не было никаких универсальных стандартов.

Re: И ничего смешного.

[identity profile] acow.livejournal.com 2002-08-18 04:08 am (UTC)(link)
Был такой финский студент, например, который поклал на compatibility.


Это как он поклал - тем, что заново имплементировал операцинную систему, которой к тому моменту исполнилось четверть века, не добавил в неё ничего существенного и скрупулёзно сохранил все её интерфейсы?


Нет, тeм, что поклал на CDE и прочие продукты консорциума по компатибилити (был такой. Типа современного W3C. На который тоже надо класть).

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

Итак, что же такого смешного сказал нам Дейкстра, который (в отличие от вас), придумал, например, алгоритм перемывки в польскую запись через стек (и, собственно, призывал fellow programmers заниматься *этим* вместо той фигни, которая почему-то сейчас именутся 'программированием')?

Подробно пояснять где Столлман и прочие нарушили 'compatibility' могу, но зачем?

Это уведет нас в сторону от 'Ха-ха-ха'.

Re: И ничего смешного.

[identity profile] avva.livejournal.com 2002-08-18 04:22 am (UTC)(link)
Нет, тeм, что поклал на CDE и прочие продукты консорциума по компатибилити (был такой. Типа современного W3C. На который тоже надо класть).

Постыдитесь хоть бред-то такой очевидный нести. Какое отношение декстопный стандард CDE имеет к написанию ядра операционной системы? Совсем ничего не понимаете?

Что же касается релевантных стандартов, то Линус изначально стремился к POSIX-compatibility, и повсюду открыто об этом заявлял. Так что опять промах.

В остальном примерно так же

Нет, именно что не так же.

Итак, что же такого смешного сказал нам Дейкстра,

За 30 лет, прошедших с тех пор, как были написани эти слова, роль совместимости с предыдущими системами, стандартами, интерфейсами, библиотеками, аппликациями, конвенциями и языками в программировании не уменьшилась, а возросла во много раз. Эту совместимость в наше время иногда принято считать хорошей, иногда плохой - в зависимости от идеологических, технических и философских предпочтений. В любом случае слова его сейчас, в 2002-м году, звучат в лучшем случае иронически.

Re: И ничего смешного.

[identity profile] ex-sgt783.livejournal.com 2002-08-18 04:49 am (UTC)(link)
Стоит, наверно, уточнить, что эта цитата вообще-то выдрана из параграфа про FORTRAN (http://www.complang.tuwien.ac.at/forth/ftp.dei.isep.ipp.pt/pub/forth/docs/humble.txt). Речь, соответственно, идет о неотчуждаемости существовавших на тот момент продуктов от утаревшей фортранной специфики.

На мой взгляд, эта фраза Дейкстры вовсе не является ключевой в контексте его выступления. Просто ее выдрали из статьи и выдают за афоризм.

Если все-таки попытаться осмыслить это изречение как самоценную реплику, то наверно можно сказать, что Дейкстра нас учит правильно выбирать стандарты, которым надо соответствовать :)))

to avva: человек, видимо, не совсем в курсе положения дел. классический случай MS-центропупизма.

а про американского сумасшедшего - я думал, это про джобса :) но avva, видимо, угадал.

Re: И ничего смешного.

[identity profile] acow.livejournal.com 2002-08-18 12:03 pm (UTC)(link)
Постыдитесь хоть бред-то такой очевидный нести. Какое отношение декстопный стандард CDE имеет к написанию ядра операционной системы? Совсем ничего не понимаете?



Что же касается релевантных стандартов, то Линус изначально стремился к POSIX-compatibility, и повсюду открыто об этом заявлял. Так что опять промах


Понятно. Вы какое-то представление о том, как треды в линуксе реализованы - имеете? Поговорите как нибудь с человеком, который это представление имеет. Узнаете много интересного.

linux-то как раз кладет спокойно на 'compatibility' и 'legacy' (поговорите опять-таки с теми, кто знает чем 2.2 отличется от 'не 2.2').

Итого. Полуобразованный avva плюнул на могилу Дейкстры. В ответ на замечание, плюнул в того, кто ему сделал замечание.

Больше комментировать не буду. Смысла нет. 'Бред' ему 'очевидный'. Все-то он 'знает'.

Re: И ничего смешного.

[identity profile] avva.livejournal.com 2002-08-18 02:08 pm (UTC)(link)
Понятно. Вы какое-то представление о том, как треды в линуксе реализованы - имеете?

Да. Я изучал это, когда участвовал в разработке FreeBSD, и BSDшники обсуждали линуксовский опыт, размышляя о том, как лучше перейти к хорошей SMP-поддержке и эффективным kernel threads.

linux-то как раз кладет спокойно на 'compatibility' и 'legacy' (поговорите опять-таки с теми, кто знает чем 2.2 отличется от 'не 2.2').

Вы просто не понимаете, какой бред несёте.

...плюнул на могилу Дейкстры...

И глупы к тому же.

Re: И ничего смешного.

[identity profile] ex-ilyavinar899.livejournal.com 2002-08-18 06:36 am (UTC)(link)
По-моему, ни финский студент, ни американский сумасшедший ни в чем существенном не отклонялись от compatibility с существующими ОС и интерфейсами.

Кто действительно поклал на compatibility - это один французский плейбой лет шесть назад. И много он от этого выгадал?

[identity profile] 37.livejournal.com 2002-08-18 07:14 am (UTC)(link)
Зря Вы наехали на Дейкстру. Он ведь ничего не пишет о совместимости в широком смысле слова. Вполне конкретно, он мечтает избавиться от печального наследия Фортрана, отряхнуть его прах с наших ног. И это было куда как правильно. Вряд ли он замахивался на совместимость вообще, тем более, что тогда и не наблюдалось такого разнообразия платформ и стандартов, которое мы наблюдаем сейчас.

[identity profile] ex-ilyavinar899.livejournal.com 2002-08-18 11:56 am (UTC)(link)
Не уверен, что Вы правы. Сколько популярных языков программирования общего назначения появилось в 1960е годы, а сколько - в 1990е?

Re:

[identity profile] 37.livejournal.com 2002-08-18 12:58 pm (UTC)(link)
Сколько операционных систем было в 60-е? IBM/360 пара-тройка ОС для PDP (в т.ч. UNIX). Языки, на которых тогда активно писали - COBOL, PL/I, FORTRAN IV, Assembler (не язык, вообще-то), APL. Сколько массовых типов процессоров существовало? Меньше, чем пальцев на одной руке. Практически не существовали сети, СУБД, графика, текстовая обработка - на зачаточном уровне. Спмсок того, что появилось с тех пор, неисчерпаем Что же было стандартизовывать? С учетом того, что больше половины всего харда и софта находилось под полным контролем IBM, а оставшееся часть - в значительной зависимости от DEC.

Re:

[identity profile] avva.livejournal.com 2002-08-18 10:45 pm (UTC)(link)
Зря Вы наехали на Дейкстру.

Да я не то чтобы наехал на него. Просто мне кажется, что сегодня очевидно, что его идеал не воплотился, да и не мог воплотиться в жизнь. Причин тому множество, лень их перечислять.

Мне импонирует подход Дейкстры, согласно которому нельзя зацикливаться на уже существующих системах и языках (в его случае это был Фортран, сегодня это будут - C, C++, Java, Unix, Windows и т.д. и т.п.), а вместо этого для конкретных задач надо использовать наиболее подходящие к ним инструменты, и не бояться новых языков и подходов. (обратите внимание, что Фортран 72-го года - не Фортран 2002-го, а как раз C++ и Java 2002-го). Но время показало, что этот подход просто нежизнеспособен на уровне всей софтверной community.

Re:

[identity profile] 37.livejournal.com 2002-08-19 03:48 am (UTC)(link)
Ну, в общем все почти так. Кроме того, что в 72-м Fortran IV (а именно эта версия Фортрана и процветала тогда), уже не был тем, чем в 2002 являются С++ и Java. Место его уже тогда в основном ограничивалось вычислительными задачами, и, главное, он был построен на основе, принципиально враждебной пропагандируемому Деекстрой структурному программированию. Каково же было мое удивление, когда недавно, пытаясь разыскать готовые программы для решения вырожденных систем, я обнаружил все то же засилье фортрановских библиотек. Правда, некоторые переведены автоматическими кросс-трансляторами на более современные языки.
А так, повторяю, согласен.

А можно мне свои пять копеек вставить?... ;-)

[identity profile] zc2.livejournal.com 2002-08-18 03:50 pm (UTC)(link)
Во-первых, абсолютно придерживаться совместимости не возможно, рано или поздно приходится ею жертвовать, ломать старые рамки, чтобы не остаться во вчерашнем дне.
Во-вторых, в 60-е годы вычислительная техника была нацелена в основном на решение математических задач, и всю проблему програмной совместимости можно, в принципе, свести к совместимости языков программирования на уровне кода, на объектном уровне, и вообщем-то всё. В то время и языков появилось больше, так как они были основным инструментом для решения основных же задач и шёл, можно сказать, процесс поиска оптимального. На сегодняшний день, ситуация в корне другая и сложнее на порядки.
Технология ушла в сторону от просто вычислений, мощности процессоров используются скорее как вспомогательный ресурс. Я не могу знать, предвидел ли Дейкстра такое развитие информационных технологий, но, если он имел в виду только языки программирования, то он прав, так как их совместимость тогда, и даже сейчас ничто по сравнению с проблемами совместимости протоколов, СУБД, форматов данных, юзер интерфейсов, аппаратуры наконец.

[identity profile] m-elle.livejournal.com 2002-08-18 04:23 pm (UTC)(link)
вот ведь человеку не о чем было молиться ежедневно...(?)

on compatibility

[identity profile] m-elle.livejournal.com 2002-08-19 03:49 am (UTC)(link)
The God created this world in only six days because He didn't need to worry about compatibility.