Дзен-дубизм
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 13.04.06 04:58
Оценка: 8 (3) +3 -5 :))) :))) :)
Ещё раз услышу про парадигму программирования — заклеймлю нафиг.

Завязка.

Достойна ли "парадигма программирования" изучения в университете?

Определение "парадигмы программирования", даваемое википедией (сразу перевод):

Парадигма программирования — это парадигматический стиль программирования (сравн. с методологией, которая суть парадигматический стиль программного инжиниринга).

П.п. предполагает (и определяет) взгляд программиста на работу программы. Например, исходя из ООП, программист может думать о программе, как о наборе взаимодействующих объектов, тогда как с позиций функционального программирования о программе можно думать, как о последовательности функций, не имеющих состояния.

Тогда как разделы программного инжиниринга отстаивают различные методологии, различные языки продвигают различные парадигмы программирования. Одни языки разработаны для поддержки одной определённой парадигмы (Smalltalk, Java — объектно-ориентированное программирование, Haskell, Scheme — функциональное программирование), другие же поддерживают несколько парадигм (напр. Common Lisp, Python, Oz).

Многие парадигмы программирования хорошо определяют, от чего они отказываются и что разрешают. Например, чистое функциональное программирование запрещает использование побочных эффектов; структурное программирование запрещает использование goto. В частности, именно поэтому новые парадигмы часто кажутся слишком жёстким отношением к имевшим место стилям. Однако, такое ниспровержение имеющихся подходов может упростить доказательство теорем о корректности программ или, как минимум, облегчить понимание их работы без ограничений общности языка программирования.

Отношения между П.п. и языками программирования могут быть сложными, поскольку языки программирования могут поддерживать разные парадигмы. Например, C++ разработан для поддержки элементов процедурного, объектно-базированного, объектно-ориентированного и обобщённого программирования. Кто-то может писать процедурные программы на C++, кто-то — чистые объектно-ориентированные и кто-то — объединить элементы этих парадигм.


Кульминация.

И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.

Были бы википедисты поумнее — не стали бы давать такого определения.

Развязка.

А посему и обсуждать тут, получается, нечего, несмотря на наукообразие википедического определения. И еcли кто попытается в очередной раз сравнивать «парадигмы программирования» по их «предшествованию», «подчинённости», «выразимости» — то расписался он в своей собственной глупости. Я тоже, кстати, на этом поприще помудрил — больше не буду.

Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.

Итак:

1. Парадигма программирования — это что-то из области прыжков без земли под ногами.

2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.

3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.

PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.