среда, сентября 14, 2005

Публикации и интервью Александра Степанова

Различные публикации и интервью Александра Степанова, создателя STL.

Перевод куска из его интервью журналу Dr. Dobb's Journal.
"Давайте разберемся, почему C - великий язык. Люди верят, что C - это хак, который был успешным, потому что на нем был написан Unix. Я не согласен. [...]. С, как отражение гения Денниса Ритчи, предоставлял минимальную модель компьютера, который к тому моменту развивался около 30 лет. С не был быстрым хаком. Пока компьютеры развивались, чтобы уметь решать все виды проблем, С, будучи минимальной моделью такого компьютера, стал очень мощным языком для очень эффетивного решения всех проблем в различных областях. В этом секрет переносимости С: это лучшее представление абстрактного компьютера, что у нас есть. Конечно, это абстракция сделана на множестве реальных компьютеров, а не на множестве воображаемых вычислительных машин."

Нашла на блоге GrammerJack, Essays on games and game programming.

1 коммент.:

Marduk комментирует...

>> В этом секрет переносимости С: это лучшее представление абстрактного компьютера, что у нас есть.
Браво! Истина [по крайней мере, очень похоже на нее], как всегда, проста. С, будучи абстрактным представлением ЭВМ - в самом общем смысле слова ЭВМ - получает распостранение, соответствующее сегодняшему положению дел.
А причинно-следственная связь между успехом UNIX и С, по-моему прослеживается как раз в обратном от "C - это хак, который был успешным, потому что на нем был написан Unix" направлении. Т.е. UNIX обязана успехом качествам С, особенно переносимостью, какой бы иллюзорной она порой не являлась.

Возвращаясь к целесообразности абстрагирования языком своей целевой предметной области, нельзя не вспомнить идиллически-прекрасные исторические примеры в лице языков Forth и Lisp, которые имели наибольший успех в тех средах, для которых были созданы (вспомним Forth- и Lisp-машины). Так, не сыграл ли известный стереотип о Форте как о "языке для управления телескопами" на пользу его широкого применения в промышленности, инженерном деле и т.д.?

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