Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
Завязка.
Достойна ли "парадигма программирования" изучения в университете?
Определение "парадигмы программирования", даваемое википедией (сразу перевод):
Парадигма программирования — это парадигматический стиль программирования (сравн. с методологией, которая суть парадигматический стиль программного инжиниринга).
П.п. предполагает (и определяет) взгляд программиста на работу программы. Например, исходя из ООП, программист может думать о программе, как о наборе взаимодействующих объектов, тогда как с позиций функционального программирования о программе можно думать, как о последовательности функций, не имеющих состояния.
Тогда как разделы программного инжиниринга отстаивают различные методологии, различные языки продвигают различные парадигмы программирования. Одни языки разработаны для поддержки одной определённой парадигмы (Smalltalk, Java — объектно-ориентированное программирование, Haskell, Scheme — функциональное программирование), другие же поддерживают несколько парадигм (напр. Common Lisp, Python, Oz).
Многие парадигмы программирования хорошо определяют, от чего они отказываются и что разрешают. Например, чистое функциональное программирование запрещает использование побочных эффектов; структурное программирование запрещает использование goto. В частности, именно поэтому новые парадигмы часто кажутся слишком жёстким отношением к имевшим место стилям. Однако, такое ниспровержение имеющихся подходов может упростить доказательство теорем о корректности программ или, как минимум, облегчить понимание их работы без ограничений общности языка программирования.
Отношения между П.п. и языками программирования могут быть сложными, поскольку языки программирования могут поддерживать разные парадигмы. Например, C++ разработан для поддержки элементов процедурного, объектно-базированного, объектно-ориентированного и обобщённого программирования. Кто-то может писать процедурные программы на C++, кто-то — чистые объектно-ориентированные и кто-то — объединить элементы этих парадигм.
Кульминация.
И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Были бы википедисты поумнее — не стали бы давать такого определения.
Развязка.
А посему и обсуждать тут, получается, нечего, несмотря на наукообразие википедического определения. И еcли кто попытается в очередной раз сравнивать «парадигмы программирования» по их «предшествованию», «подчинённости», «выразимости» — то расписался он в своей собственной глупости. Я тоже, кстати, на этом поприще помудрил — больше не буду.
Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.
Итак:
1. Парадигма программирования — это что-то из области прыжков без земли под ногами.
2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.
PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Объясни, как из "«набор взглядов» относится к характеристике субъекта, а не объекта" следует то, что "Нет такой вещи, как «парадигма программирования»". Есть ведь такая вещь, как мировоззрение. Она тоже чисто субъективна и определяет то, как ты будешь действовать при решении жизненных проблем. Точно так же, парадигма, которой ты будешь придерживаться при решении задачи, определяет то, какое решение ты придумаешь.
ГВ>Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.
Хотя бы умению декомпозировать задачу разными способами, смотреть на неё по-разному — как на вычисление функции, как на взаимодействие объектов, как на последовательность изменений состояния. "методы, принципы, модели" — это все не то. Готовые алгоритмы или решения. Зачем их изучать? Они либо есть — значит, где-то записаны (в книжках, в интернете), либо их нет (а изучение готовых не научит придумывать новые). Вот новый образ мышления, новый способ смотреть на проблему — это полезнее.
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Кё>Объясни, как из "«набор взглядов» относится к характеристике субъекта, а не объекта" следует то, что "Нет такой вещи, как «парадигма программирования»".
Непосредственно. Потому что "взгляд" — это характеристика субъекта. То есть не та "вещь", которую можно передать другому. Можно передать метод, как книжку. А вот взгляд — нельзя.
Кё>Есть ведь такая вещь, как мировоззрение. Она тоже чисто субъективна и определяет то, как ты будешь действовать при решении жизненных проблем. Точно так же, парадигма, которой ты будешь придерживаться при решении задачи, определяет то, какое решение ты придумаешь.
Да на здоровье. Только не надо делать "мировоззрение" учебным предметом в университете.
ГВ>>Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.
Кё>Хотя бы умению декомпозировать задачу разными способами, смотреть на неё по-разному — как на вычисление функции, как на взаимодействие объектов, как на последовательность изменений состояния. "методы, принципы, модели" — это все не то.
Потому что этот самый "взгляд" появляется как следствие обучения тем или иным методам, моделям и пр. — не наоброт.
Кё>Готовые алгоритмы или решения. Зачем их изучать? Они либо есть — значит, где-то записаны (в книжках, в интернете), либо их нет (а изучение готовых не научит придумывать новые).
Именно изучение как раз и научит придумывать новые, при условии, что изучение подразумевает разъяснение подходов. То есть не просто "вот тебе рецепт", а "вот такой рецепт действенен потому-то и потому-то, на его месте мог быть и другой, но автор выбрал по своему вкусу именно этот. Ты сможешь выбрать другой".
Кё>Вот новый образ мышления, новый способ смотреть на проблему — это полезнее.
"Образ мышления" — это что такое? Вот попробуй, передай мне свой "образ мышления". Как ты будешь это делать?
Дело в том, что оперирование такими субъективными понятиями как "образ мышления", "мировоззрение" на уровне объективных понятий — это признак тумана в голове, ты уж не обижайся. Я понимаю, что ты не злобы для, а просто по ошибке.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>"Образ мышления" — это что такое? Вот попробуй, передай мне свой "образ мышления". Как ты будешь это делать?
Есть яркий пример очень необычного нового способа думать о числах — это числа Черча [поиск по форуму]. Если человек понял пример с числами Черча, дописал для них новые операции — он обучился новому способу мышления, получил возможность по-другому думать о числах. Не в ущерб своему старому, кстати, а наоборот, на пользу. Это и есть передача образа мышления — придумавший такой способ думать о числах передал его другим.
ГВ>Дело в том, что оперирование такими субъективными понятиями как "образ мышления", "мировоззрение" на уровне объективных понятий — это признак тумана в голове, ты уж не обижайся. Я понимаю, что ты не злобы для, а просто по ошибке.
Да, я считаю, что мировоззрение и образ мышления можно передать. И понятия для меня абсолютно конкретные. Туман в голове, это если не знаешь, что значит — мировоззрение, но оперируешь этим понятием. А если знаешь — то нет.
А данном случае речь идет не о передаче образа мышления в общем, а просто например, о показе студенту уже готовых декомпозиций. Путем их осмысления и сравнения с формулировкой задачи, он и узнает новый для него способ мышления. Повторяю, это не означает кардинально сменить способ мышления, ничего общего не имеющем с тем, как он уже мыслит. Это всего лишь по-другому взглянуть на некоторый аспект, а то и просто, систематизировать и привести в порядок те мыслительные шаблоны, которые он уже выработал.
Если человек уже умеет писать работающие программы, то дать ему какую-то парадигму будет означать скорее обратить внимание на то, что он и так уже знает и умеет, и систематизировать это. Думаешь, кого-то надо учить видеть в окружеющем мире взаимодействующие объекты? Да все не только их видят, но и твердо убеждены, что они существуют. Обучить ООП — значит, обратить на это внимание, сказать чтобы попробовал на все состояния в своей программе смотреть как на независимые объекты. Далее идет стандартная терминология, методики...
Кё>Хотя бы умению декомпозировать задачу разными способами, смотреть на неё по-разному — как на вычисление функции, как на взаимодействие объектов, как на последовательность изменений состояния.
Вряд ли будет ошибкой предположить, что для отдельно взятой задачи какой-то из этих способов будет предпочтительней остальных. Я лишь вижу опасность в том, когда кто-то пытается притягивать что-то за уши, используя способы не по назначению.
Например, если речь идет о моделировании работы аэропорта, то ООП — очень хороший способ реализовать эту модель. Если же речь идет о моделировании электрической аналоговой схемы, то функциональный способ рулит. Если речь о цифровой — то на автоматах надо делать (на моделях автоматов, опять же — ООП). А если что-то более реальное, то бишь всячески смешанное? То-то... Вывод же очевиден, надо для каждой задачки использовать наиболее подходящий способ решения. А все эти выхолощенные парадигмы ИМХО лишь усложняют жизинь (усложняют принятие правильного решения).
Кё>"методы, принципы, модели" — это все не то. Готовые алгоритмы или решения. Зачем их изучать? Они либо есть — значит, где-то записаны (в книжках, в интернете), либо их нет (а изучение готовых не научит придумывать новые). Вот новый образ мышления, новый способ смотреть на проблему — это полезнее.
При чем тут образ мышления? Есть задачи и есть несколько способов их решения. Разумеется, чем большим набором способов владеет программист, тем больше вероятность того, что он выберет удачный способ решения задачи. На отдельно взятых "образах мышления" лучше не зацикливаться.
Понятие парадигмы ещё окончательно не сформировалось. Что тянет на парадигму, а что является лишь течением в области программирования — спорный вопрос. Но раз уж существуют такие устоявшиеся понятия, как "функциональное программирование", "объектноориентированное программирование" — от понятия парадигмы никуда не деться. Если преподаватель не раскажет студенту, что такое парадигма, значит он узнает об этом из википедии.
Здравствуйте, Геннадий Васильев,
ГВ>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Совершенно верно. Такой самостоятельной вещи действительно не существует. Впрочем, как не существует таких самостоятельных сущностей как «справедливость», «гуманизм», «классическая физика», «дифференциальное исчисление», «философия программирования», в конце концов!
Странно, да? Форум «философия программирования» — это материальная сущность (локализована на сревере RSDN.ru), а сама философия программирования — какая-то фигня, характеризующая потребность субъектов-программистов в анализе глубинных причин возникающих проблем и поиске решений через, например, применение альтернативных (sic!) парадигм программирования.
ГВ>Достойна ли "парадигма программирования" изучения в университете?
Несомненно. Человек, не понимающий смысл этого понятия и не знающий некоего базового набора этих самых парадигм (а также границ их применимости), достоен стать только дешёвой рабсилой (например, кодером по подробной спецификации). Впрочем, если университет специализируется на выпуске IT-чернорабочих, то деткам, конечно, не нужно забивать слабые головки такими мутными вещами. Пусть учат синтаксис C++ и, как верх сложности, сортировку пузырьком.
ГВ>Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.
Это слова человека, только что пережившего глубокое разочарование. Если бы Вы изначально относились к Википедии не как к истине в последней инстанции, а просто как к одному из источников информации (очень, кстати, полезному!), то вместо горечи разочарования испытали бы радость от обнаружения очччччень тонкого логического ляпа. Кстати, я, например, не согласен с тем, что этот логический ляп в этой статье есть. Я просто не понимаю, почему содержимое статьи противоречит вполне справедливому утверждению, что «набор взглядов» относится к характеристике субъекта, а не объекта.
ГВ>Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
Здравствуйте, vdimas, Вы писали:
V>Вряд ли будет ошибкой предположить, что для отдельно взятой задачи какой-то из этих способов будет предпочтительней остальных. Я лишь вижу опасность в том, когда кто-то пытается притягивать что-то за уши, используя способы не по назначению.
V>Например, если речь идет о моделировании работы аэропорта, то ООП — очень хороший способ реализовать эту модель. Если же речь идет о моделировании электрической аналоговой схемы, то функциональный способ рулит. Если речь о цифровой — то на автоматах надо делать (на моделях автоматов, опять же — ООП). А если что-то более реальное, то бишь всячески смешанное? То-то... Вывод же очевиден, надо для каждой задачки использовать наиболее подходящий способ решения. А все эти выхолощенные парадигмы ИМХО лишь усложняют жизинь (усложняют принятие правильного решения).
Сам себе противоречишь. То по-твоему полезно "для каждой задачки использовать наиболее подходящий способ решения", то "какой-то из этих способов будет предпочтительней остальных". Ты бы определился, что ли.
Про усложнение вообще нонсенс. Владение разными парадигмами только упрощает выбор того самого самого подходящего способа решения конкретной задачи/подзадачи.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>1. Парадигма программирования — это что-то из области прыжков без земли под ногами.
Не позорься.
ГВ>2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
Рад, что ты не определяешь того чему быть, а чему не быть в наших учебных заведениях.
ГВ>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.
Скорее твои слова будут приравниваться к пустому сотрясению воздуха. Википедия — это ценный источник информации, а твои злапыхания неимеют ровно никакой ценности.
ГВ>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
Глупость сказанная с пафасом все равно является глупостью.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
ГВ>>>Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.
Почему? Рассказать молодежи — "вот, можно и так. А еще можно и вот так".
Здравствуйте, vdimas, Вы писали:
V>При чем тут образ мышления? Есть задачи и есть несколько способов их решения. Разумеется, чем большим набором способов владеет программист, тем больше вероятность того, что он выберет удачный способ решения задачи. На отдельно взятых "образах мышления" лучше не зацикливаться.
Нет никаких нескольких способов решения. К реальным задачам, возникающим повседневно, готовых решений нет. Каждая задача встречается один раз. Если она встретилась второй раз, то решение УЖЕ есть и решать там нечего вообще. Если нужно что-то решать, продумывать, это говорит о том, что задача — новая.
Человек, который хочет сделать что-либо, не выбирает "наиболее подходящее", как ты думаешь. Сначала он придумывает несколько решений, и только затем выбирает наиболее подходящее. Cколько решений ты сможешь придумать, зависит от того, насколько широко твое воображение. Если ты можешь мыслить только об объектах, то ты придумаешь 1, 10 или 100 решений, но они все будут ООП-шными. И если для задачи объектная декомпозиция плохо подходит, то все эти 100 решений будут плохими. А когда ты знаком с другими подходами, тебе доступны новые множества решений. Не отдельные дополнительные решения — а именно множества. В этом и отличие — узнать новую парадигму, или просто новые шаблоны/методики/принципы.
Знать парадигмы нужны не для того, чтобы застрять в одной и, не разбираясь, решать все задачи в одном духе. Они нужны как раз для того, чтобы тебе были доступны принципиально иные решения. Это как переход от целых чисел к действительным — и тех и других бесконечное множество, но это бесконечности разного рода.
Если например, ты не знаешь, что изменение состояния можно представить в виде создания функцией новой функции, которая будет немного отличаться от оригинала (а именно — действовать в соответствии с новым "состоянием"), то решения, включающие такой подход, тебе в голову не придут. А наиболее подходящее может быть как раз среди них.
Здравствуйте, Геннадий Васильев, Вы писали: ГВ>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
The term computation model makes precise the imprecise notion of "programming paradigm".
Peter Van Roy, Seif Haridi
VD>Сам себе противоречишь. То по-твоему полезно "для каждой задачки использовать наиболее подходящий способ решения", то "какой-то из этих способов будет предпочтительней остальных". Ты бы определился, что ли.
Прочитай еще раз что ты написал
VD>Про усложнение вообще нонсенс.
Я тут намекал на пристрастие или даже фанатизм в отношении парадигм. Просто сам термин "способ" рассматривается мною как некий будничное техническое слово. А "парадигмы" ассоциируются с "последователями", любителями и фанатами.
VD>Владение разными парадигмами только упрощает выбор того самого самого подходящего способа решения конкретной задачи/подзадачи.
Я же именно это и написал Замени "парадигма" на "способ".
Здравствуйте, last_hardcoder, Вы писали:
_>Понятие парадигмы ещё окончательно не сформировалось. Что тянет на парадигму, а что является лишь течением в области программирования — спорный вопрос. Но раз уж существуют такие устоявшиеся понятия, как "функциональное программирование", "объектноориентированное программирование" — от понятия парадигмы никуда не деться. Если преподаватель не раскажет студенту, что такое парадигма, значит он узнает об этом из википедии.
А если я использую совместно несколько парадигм, то это как? Это значит, что я не использую ни одной? Мне как-то Влад пытался именно это доказать, что если я смешиваю в одном проекте на разных подзадачах функциональную парадигму с объектной, то у меня функциональная парадигма "пропадает"... Странно, что при этом не "пропадает" объектная...
Здравствуйте, Voblin, Вы писали:
V>Несомненно. Человек, не понимающий смысл этого понятия и не знающий некоего базового набора этих самых парадигм (а также границ их применимости), достоен стать только дешёвой рабсилой (например, кодером по подробной спецификации). V>Впрочем, если университет специализируется на выпуске IT-чернорабочих, то деткам, конечно, не нужно забивать слабые головки такими мутными вещами. Пусть учат синтаксис C++ и, как верх сложности, сортировку пузырьком.
Парадигма — это как инструмент самого нижнего уровня, как раз на уровне кодирования, так что пусть останется на прежнем месте в общей классификации, не надо придавать ей столько важности.
ГВ>>Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
V>И, спрашивается, зачем?
А зачем ты употребил "кодер" в ругательном смысле? Хороших кодеров еще поискать, что б ты знал. И не может быть хорошего кодера без очччень мощной базы.
Здравствуйте, vdimas, Вы писали:
V>Парадигма — это как инструмент самого нижнего уровня, как раз на уровне кодирования, так что пусть останется на прежнем месте в общей классификации, не надо придавать ей столько важности.
Точно. Только это не инструмент, а хуже того — набор реакций подопытного кролика.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>>>Так чему же обучать в университетах-то? Правильно. Только не «парадигмам». Ищите методы, принципы, модели и прочее. С парадигмами нехай википедисты носятся.
MSS>Почему? Рассказать молодежи — "вот, можно и так. А еще можно и вот так".
Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, last_hardcoder, Вы писали:
_>Понятие парадигмы ещё окончательно не сформировалось.
При таком подходе вообще непонятно — зачем его формировать. На фига нужно ещё одно "определение" космического масштаба, если оно касается каких-то мировоззренческих вещей?
_>Что тянет на парадигму, а что является лишь течением в области программирования — спорный вопрос. Но раз уж существуют такие устоявшиеся понятия, как "функциональное программирование", "объектноориентированное программирование" — от понятия парадигмы никуда не деться.
В упомянутых названиях найди одно вхождение слова "парадигма". Так почему от "парадигмы" никуда не деться?
_>Если преподаватель не раскажет студенту, что такое парадигма, значит он узнает об этом из википедии.
А ещё студент много чего узнает из надписей на заборах. Преподавателям об этом тоже рассказывать?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Трурль, Вы писали:
ГВ>>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Т>
The term computation model makes precise the imprecise notion of "programming paradigm".
Т>Peter Van Roy, Seif Haridi
Вычислительная модель = "парадигма программирования"... Ну так и давайте тогда оперировать термином "вычислительная модель". Модель! А не моделист — вот, в чём дело.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту. VD>Скорее твои слова будут приравниваться к пустому сотрясению воздуха. Википедия — это ценный источник информации, а твои злапыхания неимеют ровно никакой ценности.
Влад, ну когда ты отучишься апеллировать к личности оппонента?
ГВ>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию. VD>Глупость сказанная с пафасом все равно является глупостью.
Угу, даже если она записана в википедии.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
VD>>Про усложнение вообще нонсенс. V>Я тут намекал на пристрастие или даже фанатизм в отношении парадигм. Просто сам термин "способ" рассматривается мною как некий будничное техническое слово. А "парадигмы" ассоциируются с "последователями", любителями и фанатами.
Вот именно поэтому замена "парадигмы" на "способ" лишает всяческие "программирования" налёта "доступности немногим".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Voblin, Вы писали:
ГВ>>Достойна ли "парадигма программирования" изучения в университете? V>Несомненно. Человек, не понимающий смысл этого понятия и не знающий некоего базового набора этих самых парадигм (а также границ их применимости), достоен стать только дешёвой рабсилой (например, кодером по подробной спецификации). Впрочем, если университет специализируется на выпуске IT-чернорабочих, то деткам, конечно, не нужно забивать слабые головки такими мутными вещами. Пусть учат синтаксис C++ и, как верх сложности, сортировку пузырьком.
Как может быть ограничен "взгляд"? Он ограничен только фантазией глядящего.
ГВ>>Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту. V>Это слова человека, только что пережившего глубокое разочарование. Если бы Вы изначально относились к Википедии не как к истине в последней инстанции, а просто как к одному из источников информации (очень, кстати, полезному!), то вместо горечи разочарования испытали бы радость от обнаружения очччччень тонкого логического ляпа.
Поверь, я ни в коей мере не расцениваю википедию как источник чего-то значимого. Что-то на уровне ммм... анекдотов под пиво. Трёхтомник Кнута значит куда как больше. "Ахоульман", кстати — тоже.
V>Кстати, я, например, не согласен с тем, что этот логический ляп в этой статье есть. Я просто не понимаю, почему содержимое статьи противоречит вполне справедливому утверждению, что «набор взглядов» относится к характеристике субъекта, а не объекта.
Содержимое статьи этому утверждению не противоречит. И ляпа там нет. Ребята честно попытались сформулировать неформулироемое. Вся беда в том, что им не хватило самоиронии. А так... для энциклопедии метафизики — пойдёт.
ГВ>>Ещё раз услышу про парадигму программирования — заклеймлю нафиг. V>И, спрашивается, зачем?
Задолбала глупость.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>При таком подходе вообще непонятно — зачем его формировать. На фига нужно ещё одно "определение" космического масштаба, если оно касается каких-то мировоззренческих вещей?
Но речь ведь идёт не о мировоззрении одного человека. За парадигмой — поколение программистов, мыслящих одинаково, новые языки программирования, отражающие парадигму.
ГВ>В упомянутых названиях найди одно вхождение слова "парадигма". Так почему от "парадигмы" никуда не деться?
А что тогда такое "функциональное программирование"? Метод, стиль, течение? Все говорят, что это парадигма. А вы пытаетесь заткнуть уши и не слышать этого слова.
_>>Если преподаватель не раскажет студенту, что такое парадигма, значит он узнает об этом из википедии. ГВ>А ещё студент много чего узнает из надписей на заборах. Преподавателям об этом тоже рассказывать?
ИМХО эта фраза гораздо ближе к тому, что пишут на заборах, чем те статьи, в которых встречается термин "парадигма".
Здравствуйте, vdimas, Вы писали:
V>Парадигма — это как инструмент самого нижнего уровня, как раз на уровне кодирования, так что пусть останется на прежнем месте в общей классификации, не надо придавать ей столько важности.
ПАРАДИГМА (греч. paradeigma — пример, образец), 1) образец, тип, модель (например, общественных отношений). 2) В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения. 3) В риторике — пример, взятый из истории для доказательства, сравнения. 4) В грамматике — система форм изменяющегося слова, конструкции, например имени, глагола.
Обратите внимание на п. 2.
Короче, парадигма — это такая штука, которая обычно закладывается куда-то в задний мозг и воспринимается как само собой разумеющееся.
Хороший программер (или архитектор, или прожэкт манагер, или... да мало ли?), как и хороший писатель или, допустим, актёр, должен уметь переключаться между парадигмами. Только актёр в нужный момент переключается, например, с модели поведения приличного человека на модель поведения мерзавца (или наоборот ), а программер должен уметь спрыгнуть, например, с горячо любимого ООП на что-нибудь типа автоматного программирования. А это, между прочим, не тривиально — взять и перестать искать в решаемой задаче объекты! И притягивать дерево классов за уши туда, где оно отродясь не применимо...
V>А зачем ты употребил "кодер" в ругательном смысле? Хороших кодеров еще поискать, что б ты знал. И не может быть хорошего кодера без очччень мощной базы.
Ну, во-первых, не просто "кодер", а "кодер по спецификации". Кстати, я очень ценю и уважаю тех, кто умеет работать руками. В конце концов, для того, чтобы быть хорошим слесарем, тоже нужна мощная база.
Здравствуйте, last_hardcoder, Вы писали:
ГВ>>При таком подходе вообще непонятно — зачем его формировать. На фига нужно ещё одно "определение" космического масштаба, если оно касается каких-то мировоззренческих вещей? _>Но речь ведь идёт не о мировоззрении одного человека. За парадигмой — поколение программистов, мыслящих одинаково, новые языки программирования, отражающие парадигму.
И что из этого следует? Пусть парадигма програмирования будет объектом исследования социологического факультета.
ГВ>>В упомянутых названиях найди одно вхождение слова "парадигма". Так почему от "парадигмы" никуда не деться? _>А что тогда такое "функциональное программирование"? Метод, стиль, течение? Все говорят, что это парадигма. А вы пытаетесь заткнуть уши и не слышать этого слова.
"функциональное программирование" — это, по большому счёту, сокращение более длинной фразы. Есть функциональная декомпозиция и набор способов её выражения в исходном коде. Есть языки, прямо поддерживающие те или иные способы выражения. То же справедливо и для остальных "программирований".
_>>>Если преподаватель не раскажет студенту, что такое парадигма, значит он узнает об этом из википедии. ГВ>>А ещё студент много чего узнает из надписей на заборах. Преподавателям об этом тоже рассказывать? _>ИМХО эта фраза гораздо ближе к тому, что пишут на заборах, чем те статьи, в которых встречается термин "парадигма".
О, да! Наукообразия в таких статьях куда как больше.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Как может быть ограничен "взгляд"? Он ограничен только фантазией глядящего.
А фантазию можно и нужно развивать. Это про преподавание в университетах... гм... ну, скажем так, подходов к решению задач.
ГВ>Поверь, я ни в коей мере не расцениваю википедию как источник чего-то значимого. Что-то на уровне ммм... анекдотов под пиво. Трёхтомник Кнута значит куда как больше. "Ахоульман", кстати — тоже.
А откуда тогда такое искреннее негодование?
ГВ>Содержимое статьи этому утверждению не противоречит. И ляпа там нет. Ребята честно попытались сформулировать неформулироемое. Вся беда в том, что им не хватило самоиронии. А так... для энциклопедии метафизики — пойдёт.
Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>"Образ мышления" — это что такое? Вот попробуй, передай мне свой "образ мышления". Как ты будешь это делать?
Кё>Есть яркий пример очень необычного нового способа думать о числах — это числа Черча [поиск по форуму]. Если человек понял пример с числами Черча, дописал для них новые операции — он обучился новому способу мышления, получил возможность по-другому думать о числах. Не в ущерб своему старому, кстати, а наоборот, на пользу. Это и есть передача образа мышления — придумавший такой способ думать о числах передал его другим.
Что передаётся из рук в руки? Правильно — задачи и образцы решения. То есть — методика того или иного рода. То, что при этом у реципиента появился "новый способ мышления" — побочный эффект, достигаемый не всегда. Этот самый "новый способ" может и не понадобиться.
ГВ>>Дело в том, что оперирование такими субъективными понятиями как "образ мышления", "мировоззрение" на уровне объективных понятий — это признак тумана в голове, ты уж не обижайся. Я понимаю, что ты не злобы для, а просто по ошибке. Кё>Да, я считаю, что мировоззрение и образ мышления можно передать. И понятия для меня абсолютно конкретные. Туман в голове, это если не знаешь, что значит — мировоззрение, но оперируешь этим понятием. А если знаешь — то нет.
Ну, на здоровье. Считай, что они есть и их можно передать. Я разве против? Я так... Считай, что просто предупредил о возможном риске.
Кё>А данном случае речь идет не о передаче образа мышления в общем, а просто например, о показе студенту уже готовых декомпозиций. Путем их осмысления и сравнения с формулировкой задачи, он и узнает новый для него способ мышления.
Бедный студент! Насколько же он скуден разумом, что новый способ решения задачи порождает у него аж чуть ли не цельное новое мировоззрение. Да уж, воистину: "освободи свой разум, ж... освободится сама!" (c) Гоблин.
Кё>Повторяю, это не означает кардинально сменить способ мышления, ничего общего не имеющем с тем, как он уже мыслит. Это всего лишь по-другому взглянуть на некоторый аспект, а то и просто, систематизировать и привести в порядок те мыслительные шаблоны, которые он уже выработал.
Так. Мы о чём вообще? О приведении в порядок мыслительных шаблонов или о новых способах решения задач? Шаблоны, как известно, сначала должны появиться. Для того, чтобы упорядочить их тем или иным способом, как правило, нет никакой нужды в даче новых "парадигм" и прочего. Кто склонен упорядочивать — упорядочит сам, кто не склонен — хоть кол на башке теши.
Кё>Если человек уже умеет писать работающие программы, то дать ему какую-то парадигму будет означать скорее обратить внимание на то, что он и так уже знает и умеет, и систематизировать это.
Ну да. И смысл тогда в самой парадигме? В дзенском коане его больше...
Кё>Думаешь, кого-то надо учить видеть в окружеющем мире взаимодействующие объекты? Да все не только их видят, но и твердо убеждены, что они существуют. Обучить ООП — значит, обратить на это внимание, сказать чтобы попробовал на все состояния в своей программе смотреть как на независимые объекты. Далее идет стандартная терминология, методики...
Эм... Что-то я не припомню, чтобы кого-то можно было чему-то обучить, начиная со сфероконей в вакууме. Так и с ООП — сначала показывают саму программу и объясняют простейшие вещи. То есть, сначла дают основы метода и плоды его применения. А потом уже "раскручивают" остальное. А то так можно на всё смотреть, как на взаимодействие инь и янь — тоже парадигма...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Voblin, Вы писали:
ГВ>>Как может быть ограничен "взгляд"? Он ограничен только фантазией глядящего. V> А фантазию можно и нужно развивать. Это про преподавание в университетах... гм... ну, скажем так, подходов к решению задач.
Хмм.... что-то мне сдаётся, что способность к фантазированию развивается где-то задолго до школы. Дальше просто нужно дать методы воплощения фантазий.
ГВ>>Поверь, я ни в коей мере не расцениваю википедию как источник чего-то значимого. Что-то на уровне ммм... анекдотов под пиво. Трёхтомник Кнута значит куда как больше. "Ахоульман", кстати — тоже. V>А откуда тогда такое искреннее негодование?
Какая разница?
V>P.S. Кто такой "Ахоульман"?
Эх... Например, сюда
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>А если я использую совместно несколько парадигм, то это как? Это значит, что я не использую ни одной?Мне как-то Влад пытался именно это доказать, что если я смешиваю в одном проекте на разных подзадачах функциональную парадигму с объектной, то у меня функциональная парадигма "пропадает"... Странно, что при этом не "пропадает" объектная...
Здравствуйте, Voblin, Вы писали:
V>>Парадигма — это как инструмент самого нижнего уровня, как раз на уровне кодирования, так что пусть останется на прежнем месте в общей классификации, не надо придавать ей столько важности.
V>Обратимся к господам гуманитариям — http://dictionary.fio.ru/article.php?id=30232 : V>
V>ПАРАДИГМА (греч. paradeigma — пример, образец), 1) образец, тип, модель (например, общественных отношений). 2) В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения. 3) В риторике — пример, взятый из истории для доказательства, сравнения. 4) В грамматике — система форм изменяющегося слова, конструкции, например имени, глагола.
V>Обратите внимание на п. 2.
Найди здесь хоть одну ссылку на субъект, а не на объект!
V>Короче, парадигма — это такая штука, которая обычно закладывается куда-то в задний мозг и воспринимается как само собой разумеющееся.
Так... Слушай, про "задний мозг" — это покруче падонкофф будет. Я запишу, можно?
.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, VladD2, Вы писали:
VD>>Сам себе противоречишь. То по-твоему полезно "для каждой задачки использовать наиболее подходящий способ решения", то "какой-то из этих способов будет предпочтительней остальных". Ты бы определился, что ли.
V>Прочитай еще раз что ты написал
Ты сам почитай. Это твои цитаты.
VD>>Владение разными парадигмами только упрощает выбор того самого самого подходящего способа решения конкретной задачи/подзадачи.
V>Я же именно это и написал Замени "парадигма" на "способ".
Ты умудрился написать в одном сообщении две совершенно противоречивые мысли.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Я только не понял, это было согласие или возражение? В принципе, ты развернул мой тезис... Наверно, для тех, кто в танке.
Раз ты согласен с создателем темы, то явно возражение. Но так как ты вообще имешь привычку крайне запутывать свои ответы и менять мнение, то с уверенностью на этот вопрос вообще ответить невозможно. Так что ты сначала определись со своей позицией, вырази ее прямо и однозрачно. А потом можно будет скать согласны с тобой другие или нет.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Voblin, Вы писали:
V>Хороший программер (или архитектор, или прожэкт манагер, или... да мало ли?), как и хороший писатель или, допустим, актёр, должен уметь переключаться между парадигмами. Только актёр в нужный момент переключается, например, с модели поведения приличного человека на модель поведения мерзавца (или наоборот ), а программер должен уметь спрыгнуть, например, с горячо любимого ООП на что-нибудь типа автоматного программирования. А это, между прочим, не тривиально — взять и перестать искать в решаемой задаче объекты! И притягивать дерево классов за уши туда, где оно отродясь не применимо...
Так вот для того, чтобы не путаться в "парадигмах", и нужно э... освобождать свой разум от оков субъективных определений. Методы! Это просто методы. Один метод, другой третий... пятьдесят пятый... какая разница? А вот если возвести метод в ранг Сияющей Истины Доступной Посвящённым — вот тут и начинается полный привет.
Притом трудно спорить с тем, что "в науке господствует парадигма...", поскольку речь здесь идёт о концептуальной модели. Ну дык не парадигма же является предметом изучения, а сама модель.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Трурль, Вы писали:
ГВ>>>И что мы в этом видим? Правильно. Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
Т>>
The term computation model makes precise the imprecise notion of "programming paradigm".
Т>>Peter Van Roy, Seif Haridi
ГВ>Вычислительная модель = "парадигма программирования"... Ну так и давайте тогда оперировать термином "вычислительная модель". Модель! А не моделист — вот, в чём дело.
A computation model is a formal system that defines how computations are done.
Peter Van Roy, Seif Haridi
В принципе можно продолжить цитировать замечательную книгу "Concepts, Techniques, and Models of Computer Programming"
от разработчиков Mozart\Oz, но думаю более эффективно будет скачать и прочитать ее.
Здравствуйте, Mikl Kurkov, Вы писали:
MK>В принципе можно продолжить цитировать замечательную книгу "Concepts, Techniques, and Models of Computer Programming" MK>от разработчиков Mozart\Oz, но думаю более эффективно будет скачать и прочитать ее.
MK>Ссылка
Особенно полезно в контексте данного обсуждения обратить внимание на употребление термина "парадигма программирования" в этой книге. Очень поучительно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, last_hardcoder, Вы писали:
_>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>При таком подходе вообще непонятно — зачем его формировать. На фига нужно ещё одно "определение" космического масштаба, если оно касается каких-то мировоззренческих вещей?
_>Но речь ведь идёт не о мировоззрении одного человека. За парадигмой — поколение программистов, мыслящих одинаково, новые языки программирования, отражающие парадигму.
Не совсем так. Язык может позволять отражать сколько угодно парадигм — это зависит от выразительности языка. За языком стоит не парадигма, а модель вычислений, а сие понятие "грубо техническое" и от парадигмы далекое.
Например в модели вычислений языка С++:
— набор базовых типов (не буду перечислять все, озвучу только особенности), несколько видов целых и рациональных чисел, привязка числового типа к платформе исполнения, представление строки в null-terminated виде и т.д..
— способ реализации полиморфизма — через таблицу виртуальных ф-ий
— единичное и множественное наследование, виртуальное наследование
— автоматический вызов деструкторов локальных объектов и мемберов-полей
— реализация исключений в виде значений произвольного типа, раскрутка стека и выполнение пред. пункта
— препроцессорные вычисления (макросы)
— compile-time ср-ва кодогенерации (шаблоны)
— run-time вычисления константных выражений (и аргументов шаблонов в т.ч. коими могут быть некоторые виды константных выражений) — как часть процесса, упомянутого в пред. пункте
Lisp:
— базовые типы: число — не зависит от платформы, строка, символ, ячейка/пара
— все остальные типы — это графы объектов указанных типов в памяти, образованных с помощью ячейки.
— список — как соглашение о специальной конфигурации графа, куча ср-в по оперированию списками
— программа и данные хранятся в виде списков, на спискахъ реализованы замыкания и все-все-все...
— выполнение программы — суть вычисление объектов Лиспа, атомы вычисляют сами себя, символы — вычисляют связанный объект, ячейка вычисляется как ф-ия, у которой car — ссылка на тело, а cdr — ссылка на список агрументов.
Пролог — модель вычислений представляет из себя логический автомат, который сопоставляет факты и правила, пытаясь найти путь к цели как результат последовательных применений фактов и правил. Автомат крайне тупой и ищет решения рекурсивным перебором.
ГВ>>В упомянутых названиях найди одно вхождение слова "парадигма". Так почему от "парадигмы" никуда не деться?
_>А что тогда такое "функциональное программирование"? Метод, стиль, течение? Все говорят, что это парадигма. А вы пытаетесь заткнуть уши и не слышать этого слова.
К сожалению, я слышу слова "парадигма" и "функциональный стиль" в связке с мнением, что если мы используем функциональный стиль, то он должен быть предельно чистым, т.е. ни в коем случае не сочетаться ни с какими другими стилями. Соответственно у меня слово "парадигма" ассоциируется со словом "глупость", аналогично слову "фанатизм".
ГВ>>А ещё студент много чего узнает из надписей на заборах. Преподавателям об этом тоже рассказывать?
_>ИМХО эта фраза гораздо ближе к тому, что пишут на заборах, чем те статьи, в которых встречается термин "парадигма".
А вот это очень спорно, что ближе к надписям на заборах.
Тебе сюда: http://lib.aswl.ru/books/methodology/programming/
Простая и ясная классификация подходов, и никакого зацикливания на "парадигмах".
VD>>>Сам себе противоречишь. То по-твоему полезно "для каждой задачки использовать наиболее подходящий способ решения", то "какой-то из этих способов будет предпочтительней остальных". Ты бы определился, что ли.
V>>Прочитай еще раз что ты написал
VD>Ты сам почитай. Это твои цитаты.
И в чем противоречие?
Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"?
Там основной смсл был в том, что слепое следование какой-либо "парадигме" при написании программы, состоящей обычно из множества подзадач, приведет к тому, что часть этих задач будет решена неэфективно, как с т.з. процесса программирования/отладки, так и с т.з. эффективности решения в рантайме.
Здравствуйте, VladD2, Вы писали:
V>>Я только не понял, это было согласие или возражение? В принципе, ты развернул мой тезис... Наверно, для тех, кто в танке.
VD>Раз ты согласен с создателем темы, то явно возражение.
Странно, мне показалось что предыдущий пост тоже скорее согласие Еще это называется — дойти своим умом в процессе рассуждений. Иногда у людей лучше получается думать, если они думают вслух.
Слово "парадигма" само по себе не опасно, и с этой т.з. оба спорщика спорят лишь о тонкостях значения этого термина. А вот "придерживаться парадигмы" — это уже весьма опасное словосочетание, и что характерно, встречается чаще, чем слово "парадигма" само по себе, и даже уже четко устоялось в этом контексте. В принципе, я встрял в тему, чтобы дополнительно фыркнуть именно по поводу "следования парадигмам".
Упор Коденка на мировозрения и путанность м/у "открытием" и "упорядочиванием" лишь подтверждают Гену, хотя Коденку кажется, что он спорит.
Мы о чём вообще? О приведении в порядок мыслительных шаблонов или о новых способах решения задач?
Резюмирую собственное мнение: мне больше импонирует слово "способ", т.к. это слово ассоциируется с фразой "наиболее подходящий способ", чем "парадигма", которая ассоциируется со "следованием парадигме".
А в "чистом" виде — это слова синонимы и спор абсолютно бессмыслен. (замени в постах Коденка "парадигма" на "способ" и отвечать что-либо станет бессмысленно, ибо эти посты превратяться в озвученные банальности... )
VD>Но так как ты вообще имешь привычку крайне запутывать свои ответы и менять мнение, то с уверенностью на этот вопрос вообще ответить невозможно. Так что ты сначала определись со своей позицией, вырази ее прямо и однозрачно. А потом можно будет скать согласны с тобой другие или нет.
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
MSS>Парадигма — это и есть метод и подход.
И способ и даже тайное знание и особое видение.
Мрако.. тьфу! Наукобесие!
---------
На самом деле парадигма, метод и подход хоть и слова-близкие по смыслу и часто применяются взаимозаменяемо, но имеют разные оттенки. Например, у нас могут быть разные подходы (ОО или функциональный), но одинаковые методы (выход на окончательное решение методом декомпозиции, оценка решения методом оценки связанности результата декомпозиции и т.д.).
Т.е. обрати внимание на то, что другая парадигма, включает те же самые знакомые методы ее применения и оценки результата. Так может надо изучать методы и подходы — "стоительные блоки" парадигм?
Здравствуйте, VladD2, Вы писали:
ГВ>>2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
VD>Рад, что ты не определяешь того чему быть, а чему не быть в наших учебных заведениях.
Ну и чему именно ты рад? Слава богу "парадигмам" там не учат. И тем более не учат следовать парадигмам. И поверь — не будут учить в будущем.
ГВ>>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.
VD>Скорее твои слова будут приравниваться к пустому сотрясению воздуха. Википедия — это ценный источник информации,
Согласен что ценной, согласен что информации, но не согласен что достоверной, ибо такова политика самой Википедии. Википедия — это и есть тот самый упомянутый большой забор, где каждый пишет что хочет. Это принципиальная позиция википедии, и ты не можешь ее здесь оспаривать.
VD>а твои злапыхания неимеют ровно никакой ценности.
Они УЖЕ заставили многих обратить внимание на вопрос и, вероятнее всего, улучшить/систематизировать свои представления об обсуждаемых вещах.
VD>Глупость сказанная с пафасом все равно является глупостью.
Я тебе хочешь ссылку на сборник высказываний подкину? Сможешь отвечать афоризмами абсолютно на любой довод оппонента. А что — очень удобно, думать не надо...
---------
Поискал по и-нету статьи о парадигмах, и вот в каких контекстах наткнулся:
(подряд результаты гугля)
http://www.intuit.ru/department/pl/funcpl/15/2.html
парадигмам программирования посвящена 1 (одна!!!) лекция из 15-ти по ФЯ, но что странно, слово "парадигма" присутствует только в названии лекции, но не упоминается в ходе самой лекции
Эта область знаний состоит из тех концепций и навыков, которые важны для практики программирования независимо от применяемой парадигмы программирования.
Изучение алгоритмов позволяет более глубоко вникнуть в задачу и может подсказать методы решения, не зависящие от языка программирования, парадигмы программирования, аппаратного обеспечения и других аспектов реализации.
На протяжении своей профессиональной карьеры программисты будет работать с множеством различных языков и стилей одновременно. Понимание разнообразия языков программирования и различных парадигм значительно облегчает быстрое освоение новых языков.
Исторически к первым технологическим приемам в области программирования можно отнести декомпозицию общей структуры решаемой задачи на такие составные компоненты, которые в данном контексте являются элементарными. В дальнейшем для этого подхода была разработана серьезная теоретическая база и целый ряд рекомендуемых технологических приемов, что в совокупности представляет собой современное программирование. В зависимости от выбора «элементной базы» можно получать различные совокупности методологических приемов, правил, отношений, зависимостей и т.п. для решения поставленной задачи, которые в совокупности образуют парадигму программирования.
Наконец-то!!! ОНО!!!
Итак, больше доказывать нечего. Приемы, правила, имеющиеся зависимости и пр. — вот что надо изучать. Затем делаем следующий трюк, объявляем студенту вслух: "прием такой-то + прием такой-то + придерживаться правила такого-то — это и есть парадигма такая-то". Итого, при изученных ранее более общих приемах и правилах, изучение конкретной парадигмы занимает секунд 10 примерно...
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
MSS>Парадигма — это и есть метод и подход.
Ага. А наблюдатель — это и есть наблдаемое. Да и вообще никакой ложки нифига нет.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>- run-time вычисления константных выражений (и аргументов шаблонов в т.ч. коими могут быть некоторые виды константных выражений) — как часть процесса, упомянутого в пред. пункте
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
MSS>Парадигма — это и есть метод и подход.
На самом деле — да. Парадигма, по аналогии с её "гуманитарным" определением — это сумма подходов, методов и прочих объективных вещей. Но никак не субъективный момент. Если кому-то кажется, что это что-то такое, что должно лежать в "заднем мозге", то это уже не к компьютерным наукам, а... к доктору, что ли?
Бессмысленно и даже глупо пытаться определить парадигму иначе, как собирательное понятие: "сумма...". Бесспорно, доминирующие на данный момент подходы влияют на очередного исследователя, но суть парадигмы — вовсе не в том влиянии, которое она оказывает на деятеля. Это просто сумма. Мешок такой, в котором всё свалено в одну кучу.
Вот как раз по факту того, что википедия попыталась дать "субъектно-ориентированное" определение понятию "парадигма", я более чем согласен с vdimas в том, что википедия — это тот же забор, на котором каждый пишет, что приспичит.
PS.: А субъектно-ориентированное програмирование ещё дождётся своего часа...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Влад, ну когда ты отучишься апеллировать к личности оппонента?
Когда личность начнет вместо выдавать не поток сознания, а аргументы. Тогда можно будет апеллировать к ним.
ГВ>>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию. VD>>Глупость сказанная с пафасом все равно является глупостью.
ГВ>Угу, даже если она записана в википедии.
Ага. Но в Вики если глупость и есть, то ее рано или поздно исправят. А вот пафасная глупость в форумах останется таковой до скончания дней форума.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Ну и чему именно ты рад?
Силе ваших слов.
V>Слава богу "парадигмам" там не учат.
Учат, учат. А бог мне твой не нравится. Да и вообще идолы.
V> И тем более не учат следовать парадигмам. И поверь — не будут учить в будущем.
Ты думашь эта тема была просто так? Ну, да уже учат, так что можешь расслябиться. Курсы по разным парадигмам уже давно идут в разных учебных заведениях. А вопрос систематизации знаний в этой области всего лишь вопрос времени.
V>Согласен что ценной, согласен что информации, но не согласен что достоверной, ибо такова политика самой Википедии. Википедия — это и есть тот самый упомянутый большой забор, где каждый пишет что хочет. Это принципиальная позиция википедии, и ты не можешь ее здесь оспаривать.
Вики модерируется. Информация в ней не вся на 5. Но со временем на нее наталкиваются знающие люди и ее качество улучшается. Посетители нашего сайта не мало сделали для повышения ее качества.
А вот частные злапыхания интереса не представляют. Особенно необоснованные.
VD>>а твои злапыхания неимеют ровно никакой ценности.
V>Они УЖЕ заставили многих обратить внимание на вопрос и, вероятнее всего, улучшить/систематизировать свои представления об обсуждаемых вещах.
Что-то поддержку я заметил не очень рьяную. И список поддерживающих до скуки предсказуем.
VD>>Глупость сказанная с пафасом все равно является глупостью.
V>Я тебе хочешь ссылку на сборник высказываний подкину? Сможешь отвечать афоризмами абсолютно на любой довод оппонента. А что — очень удобно, думать не надо...
Спасибо, предпочитаю свои слова.
V>--------- V>Поискал по и-нету статьи о парадигмах, и вот в каких контекстах наткнулся: V>(подряд результаты гугля)
V>http://www.intuit.ru/department/pl/funcpl/15/2.html V>парадигмам программирования посвящена 1 (одна!!!) лекция из 15-ти по ФЯ, но что странно, слово "парадигма" присутствует только в названии лекции, но не упоминается в ходе самой лекции
Эмуляция борьбы с ветряками поскипана.
V>Наконец-то!!! ОНО!!! V>Итак, больше доказывать нечего. Приемы, правила, имеющиеся зависимости и пр. — вот что надо изучать. Затем делаем следующий трюк, объявляем студенту вслух: "прием такой-то + прием такой-то + придерживаться правила такого-то — это и есть парадигма такая-то". Итого, при изученных ранее более общих приемах и правилах, изучение конкретной парадигмы занимает секунд 10 примерно...
Дальнешее развитие данной дискусси не может быть продолжено без обсуждение личностей и их жизненных принципов. По сему предлагаю закрыть этот бессмысленный разговор.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Извини, но у меня в последнее время крайне мало времени. Так что заниматься с тобой упраждениями в софистике желания нет.
Сторонник у тебя есть и он поддерживает тебя чтобы ты не говорил. Правда он в общем-то один. Но за то очень уверен в себе. Я рад за вас и закроем тему на этом.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>И в чем противоречие?
Ну, ни видишь, так не видишь. Что же я могу поделать?
V>Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"?
Я вижу другое. Ты в общем-то не согласен с мнением Г.В., но из чувства солидарности продолжашь поддерживать его методами пустопорожней софистики. Мне это не интересно. Заставить меня спорить в другом направлении тоже не выйдет. Так что разговор можно считаться не удавшимся.
V>Там основной смсл был в том, что слепое следование какой-либо "парадигме" при написании программы, состоящей обычно из множества подзадач, приведет к тому, что часть этих задач будет решена неэфективно, как с т.з. процесса программирования/отладки, так и с т.з. эффективности решения в рантайме.
Нет там такого смысла. Читай тему еще раз. И не нужно подменять одни слова другими. В данной теме отрицается само существование парадигм как класса. Ну, еще о их вреде (хотя они и не существуют) рассуждения ведутся. Ты же в очередной раз рассказывашь мне анегдот "Наш начальниг полное дерьмо... ну, я в хорошем смысле этого слова...".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Maxim S. Shatskih, Вы писали:
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
MSS>Парадигма — это и есть метод и подход.
Нет. Парадигма это способ осмысления.
Понимаш ли, и в С и в Схеме есть возможность передать ссылку на фунцию. Но в Схеме есть концептуальный взгляд на программу как на копозицию функций. А в С есть взгляд на функцию как на область памяти (в которой находится код) адрес которой можно передать куда то.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, last_hardcoder, Вы писали:
_>Здравствуйте, vdimas, Вы писали:
V>>А если я использую совместно несколько парадигм, то это как? Это значит, что я не использую ни одной?Мне как-то Влад пытался именно это доказать, что если я смешиваю в одном проекте на разных подзадачах функциональную парадигму с объектной, то у меня функциональная парадигма "пропадает"... Странно, что при этом не "пропадает" объектная...
_>Я с Владом никак не могу согласиться.
Дело в том, что когда слушашь vdimas-а, то нужно проверять все его высказывания. У него такой стиль ведения дискусси, подменять чужие высказывания, интерпретировать их и всячески запутывать собеседника. Инода он этого добивается и тогда празник на его улице.
В данном слечае он пытается опдменить мое несогласие с Г.В. о том что парадигмы зло или что их вовсе нет, на спор о том что я когда-то утверждал, что нельзя использовать несколько парадигм. Я такого не говорил. Это чистый подлог.
Более того я как раз за множество парадигм в одной программе. Выбор правильного образа осмысления программы позволяет находить оптимальные решения. Знание нескольких парадигм помогает этому выбору.
Помню как когда я был маленьким мне предложили решить головоломку не помню ее суть, но помню, что я пытался решить ее в 2D пространстве, а она решалась в 3D. Пока я этого не понял, решения для меня не существовало. Когда я это понял, решение стало очевидным и самом собой напрашивающимся.
Так вот Г.В. с какой-то весма странной злостью и злорадством оспаривет то, что есть такое понятие как парадигма, а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>А если я использую совместно несколько парадигм, то это как? Это значит, что я не использую ни одной? Мне как-то Влад пытался именно это доказать, что если я смешиваю в одном проекте на разных подзадачах функциональную парадигму с объектной, то у меня функциональная парадигма "пропадает"... Странно, что при этом не "пропадает" объектная...
Это не правда. Очередная надо признать. Снова за меня меняют мои слова.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ГВ>>Влад, ну когда ты отучишься апеллировать к личности оппонента? VD>Когда личность начнет вместо выдавать не поток сознания, а аргументы. Тогда можно будет апеллировать к ним.
Хм.... Ты это о ком?
ГВ>>>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию. VD>>>Глупость сказанная с пафасом все равно является глупостью. ГВ>>Угу, даже если она записана в википедии. VD>Ага. Но в Вики если глупость и есть, то ее рано или поздно исправят. А вот пафасная глупость в форумах останется таковой до скончания дней форума.
Ну вот когда исправят — тогда и будем на неё ссылаться. На данный момент википедия нередко дискредитирует себя. Уж так случилось.
А то, что кому-то покажется пафосной глупостью — да и пусть остаётся. Я своих высказываний не стыжусь.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые. VD>Какой смысл в методах если не ясны концепции? Если нет видения задачи в нектором свете?
Правильно. Концепции. но отнюдь не "вИдения". Или — видЕния.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
V>> И тем более не учат следовать парадигмам. И поверь — не будут учить в будущем. VD>Ты думашь эта тема была просто так? Ну, да уже учат, так что можешь расслябиться. Курсы по разным парадигмам уже давно идут в разных учебных заведениях. А вопрос систематизации знаний в этой области всего лишь вопрос времени.
Осень харасо. Насей фирме как раз не хватает рисовальсикоф окосек под МэФэСэ.
V>>Согласен что ценной, согласен что информации, но не согласен что достоверной, ибо такова политика самой Википедии. Википедия — это и есть тот самый упомянутый большой забор, где каждый пишет что хочет. Это принципиальная позиция википедии, и ты не можешь ее здесь оспаривать. VD>Вики модерируется. Информация в ней не вся на 5. Но со временем на нее наталкиваются знающие люди и ее качество улучшается. Посетители нашего сайта не мало сделали для повышения ее качества.
А где бы узнать — натолкнулись на очередную статью "знающие люди" или нет? А то как-то странно получается: пока не натолкнулись — чушь, как натолкнулись — не чушь. Маркер есть?
VD>>>Глупость сказанная с пафасом все равно является глупостью. V>>Я тебе хочешь ссылку на сборник высказываний подкину? Сможешь отвечать афоризмами абсолютно на любой довод оппонента. А что — очень удобно, думать не надо... VD>Спасибо, предпочитаю свои слова.
На этот счёт уже все давно в курсе.
V>>http://www.intuit.ru/department/pl/funcpl/15/2.html V>>парадигмам программирования посвящена 1 (одна!!!) лекция из 15-ти по ФЯ, но что странно, слово "парадигма" присутствует только в названии лекции, но не упоминается в ходе самой лекции VD>Попробуй еще раз. Programming paradigm
А зачем? Есть глупое определение несущствующей вещи. Возможно, оно попало в викпедию по недоразумению, кто знает?! Какой смысл в том, чтобы искать какое-то дополнительное подтверждение?
V>>Наконец-то!!! ОНО!!! V>>Итак, больше доказывать нечего. Приемы, правила, имеющиеся зависимости и пр. — вот что надо изучать. Затем делаем следующий трюк, объявляем студенту вслух: "прием такой-то + прием такой-то + придерживаться правила такого-то — это и есть парадигма такая-то". Итого, при изученных ранее более общих приемах и правилах, изучение конкретной парадигмы занимает секунд 10 примерно...
VD>Дальнешее развитие данной дискусси не может быть продолжено без обсуждение личностей и их жизненных принципов. По сему предлагаю закрыть этот бессмысленный разговор.
А вот это интересно. Из этого может воспоследовать, в частности, то, что контраргументы закончились. Собственно, на то оно и похоже.
Иными словами — получилось, что крыть-то нечем. Кроме как "коллективом", да "личностями".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
V>>И в чем противоречие? VD>Ну, ни видишь, так не видишь. Что же я могу поделать?
V>>Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"? VD>Я вижу другое. Ты в общем-то не согласен с мнением Г.В., но из чувства солидарности продолжашь поддерживать его методами пустопорожней софистики. Мне это не интересно. Заставить меня спорить в другом направлении тоже не выйдет. Так что разговор можно считаться не удавшимся.
Это один из широко распространённых способов демагогии — свести всё к личностям оппонентов и личным взаимоотношениям. Ну, что-то типа "вы тут всё равно все заодно". Не буду никак комментировать твои слова "по существу", ибо выходит сие за рамки допустимого. Так, просто отмечу некий существенный характер твоего высказывания.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А зачем? Есть глупое определение несущствующей вещи. Возможно, оно попало в викпедию по недоразумению, кто знает?! Какой смысл в том, чтобы искать какое-то дополнительное подтверждение?
Это одна точка зрения. А другая — есть упетрый чувак глядящий на белое и орущий "черное!".
Вот такое вот множество мнений. Забавно, что во всю поддерживающий тебя vdimas как бы не сомневается в наличии парадигм и это порождает забавнийший феерверк противоречий в его словах. Ведь поддержать хочется, но соглашаться со столь абсурдной теорией неохота.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Это один из широко распространённых способов демагогии — свести всё к личностям оппонентов и личным взаимоотношениям. Ну, что-то типа "вы тут всё равно все заодно". Не буду никак комментировать твои слова "по существу", ибо выходит сие за рамки допустимого. Так, просто отмечу некий существенный характер твоего высказывания.
Ага. Этакой демогогический прием — уличать других в демагогии. Меж тем все очевидно и объснят тут нечего.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Вот именно поэтому замена "парадигмы" на "способ" лишает всяческие "программирования" налёта "доступности немногим".
А что, у каких-то программирований есть налет доступности немногим? Надо срочно протереть эти программирования с Мистером Мускулом! Его волшебная формула "лифтолл" уберет нафиг этот налет!
Хотя, с другой стороны, если трактовать этот налет как неформальное следствие из двух тривиальных утверждений "для успешного программирования необходим здравый смысл" и "немногие в наше время оборудованы здравым смыслом", то я пожалуй и не против. Это не налет, это заводская краска
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>"функциональное программирование" — это, по большому счёту, сокращение более длинной фразы.
А можно привести ее полностью, эту длинную фразу?
Или вот ООП — можно привести определение того, что это такое? С учетом того, что само ООП — крайне размытое понятие?
Мое имхо в том, что термин "парадигма" все же имеет право на жизнь. Ну вот, к примеру, есть такая штука — "тезис Черча". Меня в свое время сразили вопросом: "а почему он называется тезис, а не теорема там или гипотеза?" Оказывается, как раз потому, что он не имеет строгой формулировки. Поэтому его нельзя ни доказать, ни опровергнуть. Тем не менее, тезис существует. Точно так же нельзя сказать, что существует какая-то "методика метапрограммирования", как набор хорошо очерченных методов. Существует более широкое и размытое понятие, которое описывает скорее направление, в котором мы ищем методику.
Словарь.ру:
В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения
Так что преподавать парадигму в университете можно и нужно. Потому как нельзя учить решать задачи, не обучая их ставить.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
ГВ>>"функциональное программирование" — это, по большому счёту, сокращение более длинной фразы. S>А можно привести ее полностью, эту длинную фразу? S>Или вот ООП — можно привести определение того, что это такое? С учетом того, что само ООП — крайне размытое понятие?
На самом деле, термином "... программирование" обычно обозначают всю совокупность методов, подходов, языков, идей, теорем, связанных с тем или иным направлением в программировании.
S>Мое имхо в том, что термин "парадигма" все же имеет право на жизнь.
Исходная тема — стоит ли преподавать парадигму в вузе. На определение парадигмы навёл VladD2. Ну и, собственно, имеем то, что имеем.
Естественно, сам по себе термин "парадигма" имеет право на существование. Только это не "взгляд", а собирательное понятие.
S>Словарь.ру: S>
В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения
S>Так что преподавать парадигму в университете можно и нужно. Потому как нельзя учить решать задачи, не обучая их ставить.
Правильно. Только в университете преподаётся та самая концептуальная схема (модель). А не "взгляд" на вещи.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>А зачем? Есть глупое определение несущствующей вещи. Возможно, оно попало в викпедию по недоразумению, кто знает?! Какой смысл в том, чтобы искать какое-то дополнительное подтверждение? VD>Это одна точка зрения. А другая — есть упетрый чувак глядящий на белое и орущий "черное!".
Есть мнение, что 2x2=4 и есть мнение, что 2x2=5. "В мире есть семь и в мире есть три" (c), что тут поделаешь.
VD>Вот такое вот множество мнений. Забавно, что во всю поддерживающий тебя vdimas как бы не сомневается в наличии парадигм
А вот знаешь, что забавно. Я тоже не сомневаюсь в наличии парадигм, но только не в той трактовке, которая даётся в википедии.
VD>и это порождает забавнийший феерверк противоречий в его словах. Ведь поддержать хочется, но соглашаться со столь абсурдной теорией неохота.
Ну, я не знаю, где там у него это самый пресловутый фейерверк противоречий, что-то не усмотрел. То, на что ты обращал внимание, на противоречия как-то не тянет.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>Это один из широко распространённых способов демагогии — свести всё к личностям оппонентов и личным взаимоотношениям. Ну, что-то типа "вы тут всё равно все заодно". Не буду никак комментировать твои слова "по существу", ибо выходит сие за рамки допустимого. Так, просто отмечу некий существенный характер твоего высказывания.
VD>Ага. Этакой демогогический прием — уличать других в демагогии. Меж тем все очевидно и объснят тут нечего.
Здравствуйте, Геннадий Васильев, Вы писали:
V>>Короче, парадигма — это такая штука, которая обычно закладывается куда-то в задний мозг и воспринимается как само собой разумеющееся.
ГВ>Так... Слушай, про "задний мозг" — это покруче падонкофф будет. Я запишу, можно?
Говоря про задний мозг, я имел в виду это, а не вот это.
Здравствуйте, Геннадий Васильев, Вы писали:
Кё>>А данном случае речь идет не о передаче образа мышления в общем, а просто например, о показе студенту уже готовых декомпозиций. Путем их осмысления и сравнения с формулировкой задачи, он и узнает новый для него способ мышления. ГВ>Бедный студент! Насколько же он скуден разумом, что новый способ решения задачи порождает у него аж чуть ли не цельное новое мировоззрение.
Прочитай на одну строчку ниже. Там написано, что я не имею ввиду кардинальное изменение мышления, а только некоторые частные взгляды.
ГВ>Так. Мы о чём вообще? О приведении в порядок мыслительных шаблонов или о новых способах решения задач? Шаблоны, как известно, сначала должны появиться. Для того, чтобы упорядочить их тем или иным способом, как правило, нет никакой нужды в даче новых "парадигм" и прочего.
О том, что тот, кто уже парадигму сам почти придумал, тому надо просто упорядочить своё. Тому, кто её не знал, она будет открытием.
ГВ>Эм... Что-то я не припомню, чтобы кого-то можно было чему-то обучить, начиная со сфероконей в вакууме. Так и с ООП — сначала показывают саму программу и объясняют простейшие вещи. То есть, сначла дают основы метода и плоды его применения. А потом уже "раскручивают" остальное.
Что есть результат обучения? Кипа методов и шаблонов в памяти, или что?
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Особенно полезно в контексте данного обсуждения обратить внимание на употребление термина "парадигма программирования" в этой книге. Очень поучительно.
There exist many programming "paradigms'': styles of programming based on particular mathematical theories or schools of thought on how to tell a computer what to do. Some popular paradigms include object-oriented programming, logic programming, and functional programming. There are in fact dozens of paradigms, each with its own special merits and trade-offs. In today's computing curricula, very few programming paradigms are taught. Object-oriented programming dominates by far, with some small attention given to functional or logic programming.
What's more, paradigms are mostly taught in an isolated way. Students do not see how they relate and how they can be used together. The result is that programming is a fragmented discipline. This has a detrimental effect on programmer competence and thus on program quality. For example, students who learn about concurrency only from Java conclude that it is always difficult and expensive. This is completely false: there are paradigms of concurrent programming that are almost as easy as sequential programming. One way to solve this problem is to base programming courses on concepts, not on single paradigms or languages. If chosen wisely, the concepts have both a simple intuition and a simple formal semantics.
Здравствуйте, VladD2, Вы писали:
VD>Помню как когда я был маленьким мне предложили решить головоломку не помню ее суть, но помню, что я пытался решить ее в 2D пространстве, а она решалась в 3D. Пока я этого не понял, решения для меня не существовало. Когда я это понял, решение стало очевидным и самом собой напрашивающимся.
VD>Так вот Г.В. с какой-то весма странной злостью и злорадством оспаривет то, что есть такое понятие как парадигма, а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
Да, кстати. Я вполне согласен с тем, что метапрограммирование — это тоже парадигма программирования в том смысле, что подразумевает наличие определённых методов, моделей, теорий и прочего подобного. Оспариваю я то, что сказано в википедии.
Критерий по которому определяется глупость в данном случае сугубо формальный. Упомянули "взгляд" (сугубо субъектное понятие) как часть определения сущности? Значит, написали глупость!
Если же изъять из википедической "парадигмы програмирования" её субъективную часть, то претензии рассасываются сами по себе. Бессмысленно спорить о том, существует та или иная группа методов, теорий, моделей или нет. Раз её удалось выделить по каким-то критериям, значит она существует. Но не надо ставить лошадь позади телеги: сначала должны быть концепции, модели, методы, а потом уже имеет смысл говорить об их группировке или общих чертах (парадигме).
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Кодёнок, Вы писали:
Кё>>>А данном случае речь идет не о передаче образа мышления в общем, а просто например, о показе студенту уже готовых декомпозиций. Путем их осмысления и сравнения с формулировкой задачи, он и узнает новый для него способ мышления. ГВ>>Бедный студент! Насколько же он скуден разумом, что новый способ решения задачи порождает у него аж чуть ли не цельное новое мировоззрение.
Кё>Прочитай на одну строчку ниже. Там написано, что я не имею ввиду кардинальное изменение мышления, а только некоторые частные взгляды.
И что это меняет? Мы в любом случае передаём студенту именно знание о конкретных моделях, концепциях, теориях и пр. Сформируется у него на этой базе "новое мышление" или нет — вообще дело десятое и к образованию отношения не имеющее.
ГВ>>Так. Мы о чём вообще? О приведении в порядок мыслительных шаблонов или о новых способах решения задач? Шаблоны, как известно, сначала должны появиться. Для того, чтобы упорядочить их тем или иным способом, как правило, нет никакой нужды в даче новых "парадигм" и прочего. Кё>О том, что тот, кто уже парадигму сам почти придумал, тому надо просто упорядочить своё. Тому, кто её не знал, она будет открытием.
Ну, подозреваю, что тому, кто не знал методов, включаемых в ту или иную парадигму (не в википедическом смысле слова, а в нормальном), рассуждения о парадигмах будут как сферический конь... А тому, кто знал — как кобыле пятая нога.
ГВ>>Эм... Что-то я не припомню, чтобы кого-то можно было чему-то обучить, начиная со сфероконей в вакууме. Так и с ООП — сначала показывают саму программу и объясняют простейшие вещи. То есть, сначла дают основы метода и плоды его применения. А потом уже "раскручивают" остальное. Кё>Что есть результат обучения? Кипа методов и шаблонов в памяти, или что?
Ну... я так думаю, что это владение фундаментальными концепциями, теориями и прочими подобными штучками. Ну и умение их применять, конечно.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Voblin, Вы писали:
V>>>Короче, парадигма — это такая штука, которая обычно закладывается куда-то в задний мозг и воспринимается как само собой разумеющееся.
ГВ>>Так... Слушай, про "задний мозг" — это покруче падонкофф будет. Я запишу, можно?
V>Говоря про задний мозг, я имел в виду это, а не вот это
Тем хуже. Я-то думал, это шутка такая, а ты, оказывается, имел ввиду чуть ли не спинномозговое программирование.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Т>... One way to solve this problem is to base programming courses on concepts, not on single paradigms or languages. If chosen wisely, the concepts have both a simple intuition and a simple formal semantics.
Ключевое слово — concepts.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали: ГВ>Правильно. Только в университете преподаётся та самая концептуальная схема (модель). А не "взгляд" на вещи.
Тогда я вообше не понимаю, против чего ты протестуешь. Парадигмы — есть; преподавать их — надо; точно сформулировать, что такое парадигма — невозможно. Чем тебе парадигмы-то насолили, если ты с ними согласен?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
ГВ>>Правильно. Только в университете преподаётся та самая концептуальная схема (модель). А не "взгляд" на вещи. S>Тогда я вообше не понимаю, против чего ты протестуешь. Парадигмы — есть; преподавать их — надо; точно сформулировать, что такое парадигма — невозможно. Чем тебе парадигмы-то насолили, если ты с ними согласен?
Википедия даёт глупое определение парадигмы, утверждая, что парадигма есть "взгляд на программу". Будь это определение более корректным — удалось бы избавиться от кучи поводов для конфликтов.
Я не утверждаю, кстати, что "нужно преподавать парадигму". Я утверждаю, что нужно передавать знания о концепциях, моделях и методах. А уж какую они там парадигму образуют и какой парадигме соответствуют — совсем не важно.
Это вовсе не исключает существования парадигмы программирования как таковой. но не в том виде, как её определяет википедия! Можно сгруппировать методы программирования по какому-то признаку? Можно. Можно такую группу назвать "парадигмой"? Да запросто. Является ли это "взглядом" на программу? Возможно, но в данном случае "взгляд" — не более, чем художественная метафора. Корректно мы не можем говорить о "взгляде", потому что он относится к субъекту процесса программирования.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
VD>Что-то поддержку я заметил не очень рьяную. И список поддерживающих до скуки предсказуем.
Особенно этот абзац понравился. Список возражающих тоже шириной не блещет.
Очередное столкновение любителей (любителя? ) эмпиризма с приверженцами точных подходов.
VD>Попробуй еще раз. Programming paradigm
Despite the formal equivalence of all computers, some may be better-suited to a given task than others. Similarly, most computer languages are designed to facilitate certain operations and not others: numerical computation, or text manipulation, or I/O. More broadly, a computer language typically embodies a particular programming paradigm. More than just a collection of features, a paradigm is a way of thinking about problems and their solutions, and an approach to using computers to implement those solutions. Three important paradigms are described below.
Преподавание математики и физики в нашей школе и в западной отличается примерно тем же самым. У нас дают аксиомы, а остальное выводится строгим доказательством, т.е. ученики с самого начала могут прекрасно представлять, что откуда берется. А у них сразу даются понятия высокого уровня, на уровне обывательских представлений, без доказательств, а доказательства приводят "потом" или даже никогда
A programming paradigm is a paradigmatic style of programming (compare with a methodology which is a paradigmatic style of doing software engineering).
Очень хорошее замечание. Сразу же расписались в том, что далее речь пойдет о субъективном, чувственном и малопонятном. Я уверен, что у них этот термин заведомо не вызывает иллюзий и разногласий, ибо понятие paradigma широко применимо, и люди представляют себе, что это обозначает. У нас же это слово неиспользуемое, поэтому данный термин кое-кто склонен наделять чем-то не присущим ему.
Далее:
A programming paradigm provides (and determines) the view that the programmer has of the execution of the program.
Если учащийся плохо представляет себе вычислительную модель, лежащую в основе языка, то разумеется, нужны суррогаты (искуственные заменители), в виде "концептуальных представлений" о том, как оно там примерно работает. А если учесть, что многие языки поддерживают сразу несколько парадигм, то приведенное определение вообще становится никуда не годным, ибо точку зрения на происходящее навязывает именно вычислительная модель, реализуемая языком.
For instance, in object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations.
Как обычно, западная школа в своем репертуаре. Вместо точных определений будем до бесконечности давать примеры и аналогии.
Кому-то может и нравится такой стиль, но меня он всегда напрягал, ибо под потоками воды обычно теряется суть.
читаем дальше:
Many programming paradigms are as well-known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of goto.
Все приплыли. Из этого абзаца можно сделать сразу несколько выводов:
— языки программирования недостаточно поддерживают парадигмы, часто требуются некие ограничения на использования ср-в языка, чтобы не выходить за рамки парадигм;
— парадигмы принципиально не могут применяться совместно, ибо наличие side-effect, например (изменение состояния где-то в памяти), сразу делает функциональное программирование не функциональным... Хотел бы я посмотреть на разработчиков того же Excel или MathCad на pure functional подходе. За одно только pure functional можно сразу в сад. Тем более, что это противоречит первому посылу из аналогичной статьи:
There is a well-developed mathematical theory of computers. According to this theory, all ordinary computers are equivalent, in the sense that anything that can be done with one computer can, in principle, be done with any other computer. Similarly, all ordinary computer languages are equivalent, in the sense that any program that can be written in one language can be written in any other.
VD>Дальнешее развитие данной дискусси не может быть продолжено без обсуждение личностей и их жизненных принципов. По сему предлагаю закрыть этот бессмысленный разговор.
А чего тут обсуждать, мы сами тебе о своих жизненных принципах скажем. Моя специальность (или техническое ВО, xz) приучила не верить лозунгам и предположениям. Докажи, выведи, обоснуй и тогда будет тебе самый радушный велкам. А иначе — только в сад.
Здравствуйте, VladD2, Вы писали:
VD>Извини, но у меня в последнее время крайне мало времени. Так что заниматься с тобой упраждениями в софистике желания нет.
Я это заметил еще 3 года назад, что у тебя недостаточно времени вдумываться, что именно говорит и хочет донести собеседник. Я лишь могу в сотый раз спросить тебя — а какой смысл встрять в спор с целью заявить: "у меня нет времени на вас"?
V>>А если я использую совместно несколько парадигм, то это как? Это значит, что я не использую ни одной? Мне как-то Влад пытался именно это доказать, что если я смешиваю в одном проекте на разных подзадачах функциональную парадигму с объектной, то у меня функциональная парадигма "пропадает"... Странно, что при этом не "пропадает" объектная...
VD>Это не правда. Очередная надо признать. Снова за меня меняют мои слова.
Не отнекивайся. Ты мне именно это и доказывал, что функциональный подход он или чисто-функциональный, или никакой.
Хотел было пропустить этот пост-воду, на которую у тебя находится время, в отличие от ответов на прямо поставленные вопросы.
Но не смог пройти мимо этого:
VD>... а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
Пример архисложной задачи в студию. И заодно описание отличительной особенности твоей очередной парадигмы в терминах методов и ограничений (правил). И мы посмотрим на простоту решения.
V>>И в чем противоречие?
VD>Ну, ни видишь, так не видишь. Что же я могу поделать?
Попытаться объяснить
Или ты встрял по принципу Портоса: "Я дерусь, потому что дерусь".
V>>Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"?
VD>Я вижу другое.
Я который раз не вижу ответа на прямо поставленный вопрос.
VD>Ты в общем-то не согласен с мнением Г.В., но из чувства солидарности продолжашь поддерживать его методами пустопорожней софистики. Мне это не интересно. Заставить меня спорить в другом направлении тоже не выйдет. Так что разговор можно считаться не удавшимся.
Гена подсознательно прочуствовал "искуственность" происхождения понятие "парадигма".
Парадигма программирования является фундаментальным понятием очень высокого уровня в теории программирования и поэтому невозможно дать его строгого определения.
И у меня не зря сложилось ассоциация "следование парадигме", "придерживаться парадигмы", ибо только в таком виде парадигма и существует в ПО, в виде следования ей. Если парадигмы не придерживаться, то она пропадает. Спасибо за идею пройтись по англоязычным сайтам, помогло лучше понять, что имеют в виду наши коллеги, когда говорят о парадигме (стиле).
V>>Там основной смсл был в том, что слепое следование какой-либо "парадигме" при написании программы, состоящей обычно из множества подзадач, приведет к тому, что часть этих задач будет решена неэфективно, как с т.з. процесса программирования/отладки, так и с т.з. эффективности решения в рантайме.
VD>Нет там такого смысла. Читай тему еще раз. И не нужно подменять одни слова другими. В данной теме отрицается само существование парадигм как класса. Ну, еще о их вреде (хотя они и не существуют) рассуждения ведутся. Ты же в очередной раз рассказывашь мне анегдот "Наш начальниг полное дерьмо... ну, я в хорошем смысле этого слова...".
Ты уже забодал своей манерой придумывать мотивацию оппонентов и разыгрывать спектакли по ролям.
Ты этот ранний пост читал: Re[6]: Дзен-дубизм
Слово "парадигма" само по себе не опасно, и с этой т.з. оба спорщика спорят лишь о тонкостях значения этого термина. А вот "придерживаться парадигмы" — это уже весьма опасное словосочетание, и что характерно, встречается чаще, чем слово "парадигма" само по себе, и даже уже четко устоялось в этом контексте. В принципе, я встрял в тему, чтобы дополнительно фыркнуть именно по поводу "следования парадигмам".
Мне что, в каждом посте объяснять, зачем я сюда влез??? Увидел тему, близкую той, о которой давно хотел высказаться, но ИМХО, моя тема не заслуживала отдельной ветки. А раз уж завели тему о парадигмах, то я добавил свои 5 копеек по околопарадигменному вопросу. Или у нас никогда дискуссии не разветвляются? Почему мы вообще должны обсуждать эти "неуставные" моменты вместо целевых вопросов...
MSS>>Парадигма — это и есть метод и подход.
VD>Нет. Парадигма это способ осмысления.
Что раньше — яйцо или курица? Следование определенным правилам, ограничениям и методам тоже называют парадигмой. С другой стороны, точка зрения на проблему может обосновывать выбор методов и ограничений (ктати, принцип обоснования не ахти ). В любом случае — классическая задача о курице и яйце.
VD>Понимаш ли, и в С и в Схеме есть возможность передать ссылку на фунцию. Но в Схеме есть концептуальный взгляд на программу как на копозицию функций. А в С есть взгляд на функцию как на область памяти (в которой находится код) адрес которой можно передать куда то.
Путаницу вносишь. Умудрился сравнить взгляд на программу и взгляд на ф-ию.
Ты будешь очень удивлен, но в Схеме ф-ию рассматривают именно как ссылку на объект (адрес объекта). Соответственно, этот адрес можно куда-то передать, где-то сохранить, а в будущем полагаться на наличие объекта по этому адресу. При передаче ф-ии куда-либо НЕ СОЗДАЕТСЯ ее копия, это важно и это прописано в стандарте, т.е. гарантируется ссылочная работа, собственно, как и для любых объектов Схемы (тоже гарантируется стандартом).
В интерпретаторе Схемы, помимо этого, ф-ии можно генерить на лету как данные и работать с ними соответственно, то бишь хранить тело в виде списка, а потом запускать на выполнение. Вся система макросов и пр. специальных символов основана на представлении тел ф-ий как данных и оперировании этими данными стандартными ср-вами. Это позволяет делать такие шалости, например, как множество точек входа для ф-ий, т.е. элементарно генеряться ф-ии, у которых участок тела может быть общим.
Так что пример неудачный. Тем более, что и в С++ ничто не мешает "концептуально" глядеть на программу как на композицию ф-ий. It's up to you.
ГВ>>Только это уже будут методы, подходы, модели, оценки и прочее. Вовсе не парадигмы как таковые.
VD>Какой смысл в методах если не ясны концепции? Если нет видения задачи в нектором свете?
А разве сама задача не диктует методы ее решения? Если тщательно собрать сценарии использования, требования и явные/неявные ограничения, то обычно задача просто-таки заставляет решать ее тем или иным способом.
Даже для отдельно взятого алгоритма быстрой сортировки, если задать все условия и ограничения, то можно очень быстро прийти от нескольких вариантов (функционального, алгоритмического или OO) к одному единственному, если как ограничение прозвучит невозможность дополнительного динамического выделения памяти для работы алгоритма.
Здравствуйте, VladD2, Вы писали:
ГВ>>>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию. VD>>>Глупость сказанная с пафасом все равно является глупостью.
ГВ>>Угу, даже если она записана в википедии.
VD>Ага. Но в Вики если глупость и есть, то ее рано или поздно исправят. А вот пафасная глупость в форумах останется таковой до скончания дней форума.
Здравствуйте, VladD2, Вы писали:
V>>Слава богу "парадигмам" там не учат.
VD>Учат, учат. А бог мне твой не нравится. Да и вообще идолы.
Кстати, Бог и идолопоклонничество несовместимы (как функциональная и структурная парадигмы).
V>> И тем более не учат следовать парадигмам. И поверь — не будут учить в будущем.
VD>Ты думашь эта тема была просто так? Ну, да уже учат, так что можешь расслябиться. Курсы по разным парадигмам уже давно идут в разных учебных заведениях. А вопрос систематизации знаний в этой области всего лишь вопрос времени.
Есть курсы по функциональным языкам, по логическим языкам. Но они идут не отдельно, а в рамках изучения теории баз знаний и ИИ. Причем, идут вместе с теорией по вычислительным моделям (Лисп как образец), по архитектурам экспертных систем (привет Пролог), по принципам построения ИИ (привет функциональщина и куча трудноусвояемой математики) и т.д. Ты хоть представляшь, насколько меньший объем знаний надо преподать, чтобы объяснить суть "парадигмы" после изучения всего этого? Блин, я когда прочитал в англоязычной Википедии, что отличительной чертой структурного программирования является отсутствие goto, а функционального — отсутствие side-effect, то прослезился от умиления...
Тебе же сказали — факультатив и зачет автоматом.
VD>Вики модерируется. Информация в ней не вся на 5. Но со временем на нее наталкиваются знающие люди и ее качество улучшается. Посетители нашего сайта не мало сделали для повышения ее качества.
VD>А вот частные злапыхания интереса не представляют. Особенно необоснованные.
Не злопыхание, а замечание насчет на уровня статьи. Обоснованное. Дополнительное обоснование (разъяснение) такого положения вещей в Вики ты прочитал в пред. посте. Сильнее обосновывать уже некуда.
Здравствуйте, Sinclair, Вы писали:
ГВ>>"функциональное программирование" — это, по большому счёту, сокращение более длинной фразы. S>А можно привести ее полностью, эту длинную фразу? S>Или вот ООП — можно привести определение того, что это такое? С учетом того, что само ООП — крайне размытое понятие?
S>Мое имхо в том, что термин "парадигма" все же имеет право на жизнь. Ну вот, к примеру, есть такая штука — "тезис Черча". Меня в свое время сразили вопросом: "а почему он называется тезис, а не теорема там или гипотеза?" Оказывается, как раз потому, что он не имеет строгой формулировки. Поэтому его нельзя ни доказать, ни опровергнуть. Тем не менее, тезис существует. Точно так же нельзя сказать, что существует какая-то "методика метапрограммирования", как набор хорошо очерченных методов. Существует более широкое и размытое понятие, которое описывает скорее направление, в котором мы ищем методику. S>Словарь.ру: S>
В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения
До этого момента все шло хорошо
S>Так что преподавать парадигму в университете можно и нужно. Потому как нельзя учить решать задачи, не обучая их ставить.
Как ты себе представляешь преподавание "размытых" понятий? Гена, например, не предлагал запретить, предлагалось оставить в виде факультатива. Не все предметы в ВУЗах науко-точные. У нас был предмет, типа "механические ср-ва вычислительных комплексов". (мог ошибиться в точном названии) Мы на этом предмете "изучали" какие принтеры бывают по принципу действия, какие плоттеры. В общем, набор информации из разряда научно-популящины, типа передачи Дискавери... Конечно, у современного выпускника должен быть хороший кругозор, он должен разбираться как в классических приемах, так и в текущей "моде" на стили. Но понимаешь, для того, чтобы понятие парадигмы воспринималось студентом не сложнее научно-популярщины, студент предварительно должен овладеть методологиями, понимать зависимости и последствия решений. И тогда на основе базисов можно крайне легко и непринужденно знакомить его с модными парадигмами, или даже искать совместно с ним новые.
Здравствуйте, VladD2, Вы писали:
ГВ>>А зачем? Есть глупое определение несущствующей вещи. Возможно, оно попало в викпедию по недоразумению, кто знает?! Какой смысл в том, чтобы искать какое-то дополнительное подтверждение?
VD>Это одна точка зрения. А другая — есть упетрый чувак глядящий на белое и орущий "черное!". VD>Вот такое вот множество мнений. Забавно, что во всю поддерживающий тебя vdimas как бы не сомневается в наличии парадигм и это порождает забавнийший феерверк противоречий в его словах. Ведь поддержать хочется, но соглашаться со столь абсурдной теорией неохота.
Ах как забавно играть словами. Никто не сомневается в наличии термина. Если им пользуются, то он есть де-факто. Сомнение вызывает определение этого термина. А формального определения-то и нет. <off>Гена, плиз, впредь, выражайся полным текстом. А то тут кое-кто пытается воспринять (или выставить ) все как нелепый софизм: "я знаю слово табуретка, но буду сейчас доказывать, что такого слова нет". </off>
Неплохо бы тебе, Влад, поточнее понять, что означает "paradigmatic approach" в английском языке (в широком смысле, не зацикливаясь на программинге), меньше было бы апеллирований к "парадигмам", ибо аппелирование к парадигмам суть абсурд и софизм.
Парадигма не может являться целью, причиной, оправданием или аргументом. Принятие решения идти по какому-то образцу/шаблону можно рассматривать как следование парадигме (стилю, шаблону, совокупности правил и ограничений). На принятие решения может оказать влияние точка зрения того, кто это решение принимал. И не факт, что точка зрения будет выбрана удачна, и уж тем более, бессмысленно аппелировать к точке зрения (способу мышления, концептуальному видению и т.д.- еще один смысл значения слова Парадигма для программинга).
Парадигма программирования является фундаментальным понятием очень высокого уровня в теории программирования и поэтому невозможно дать его строгого определения. Под парадигмой в программировании будем понимать внутренне согласованную совокупность программных элементов, обладающих общими фундаментальными особенностями, как логическими, так и алгоритмическими, и связанных с этими элементами базовых концепций. Аналогичным образом можно сказать, что парадигмы в программировании это способ концептуализации, который определяет, как проводить вычисления и как работа, выполняемая компьютером, должна быть структурирована и организована.
По сути, дано два определения, одно курсивом, другое — выделено. Ни одно из них и близко не тянет ни на формальность, ни даже на однозначность. Где заканчивается одна парадигма и начинается другая? То-то...
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Так вот для того, чтобы не путаться в "парадигмах", и нужно э... освобождать свой разум от оков субъективных определений. Методы! Это просто методы. Один метод, другой третий... пятьдесят пятый... какая разница?
Ничего себе "просто методы"...
ГВ>А вот если возвести метод в ранг Сияющей Истины Доступной Посвящённым — вот тут и начинается полный привет.
Угу. Даже в борьбе с фанатизмом не надо доходить до фанатизма.
ГВ>Притом трудно спорить с тем, что "в науке господствует парадигма...", поскольку речь здесь идёт о концептуальной модели. Ну дык не парадигма же является предметом изучения, а сама модель.
Модель моделей, она же метамодель, она же парадигма, тоже должна немножко изучаться.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Если кому-то кажется, что это что-то такое, что должно лежать в "заднем мозге", то это уже не к компьютерным наукам, а... к доктору, что ли?
Здравствуйте, vdimas, Вы писали:
V>Гена, например, не предлагал запретить, предлагалось оставить в виде факультатива.
Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
...
Так чему же обучать в университетах-то? Правильно. Только не «парадигмам».
...
В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
Собственно, в самом низу статьи на www.answers.com есть ма-асенькая такая ремарочка:
This entry is from Wikipedia, the leading user-contributed encyclopedia. It may not have been reviewed by professional editors (see full disclaimer)
Мне остаётся только ещё раз сказать тебе спасибо за то, что ты обратил внимание на некоторые детали, которые я упустил.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Это называется сарказм.
Да, верно, но ответ на вопрос "преподавать ли парадигмы в вузах" зависит от того, как трактовать "парадигму программирования". Если так, как об этом сказано в википедии — то ну её подальше от университетов. А если трактовка нормальная, то почему бы и нет? Просто в последнем случае "парадигма программирования" достойна не более, чем упоминания в обзорном курсе.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Я не утверждаю, кстати, что "нужно преподавать парадигму". Я утверждаю, что нужно передавать знания о концепциях, моделях и методах. А уж какую они там парадигму образуют и какой парадигме соответствуют — совсем не важно.
Гм. Цитирую:
Итак:
1. Парадигма программирования — это что-то из области прыжков без земли под ногами.
2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
ГВ>Это вовсе не исключает существования парадигмы программирования как таковой.
Ну вот видишь, мы уже приближаемся к решению. Совсем недавно ты отрицал существование парадигмы. ГВ>но не в том виде, как её определяет википедия! Можно сгруппировать методы программирования по какому-то признаку? Можно.
Речь идет о том, что нет никакого объективного и независящего от субъекта способа сгруппировать методы так, чтобы они разделились на парадигмы. ГВ>Можно такую группу назвать "парадигмой"? Да запросто. Является ли это "взглядом" на программу? Возможно, но в данном случае "взгляд" — не более, чем художественная метафора.
Нет. "Взгляд" в данном случае является объективной констатацией субъективного и неформального характера термина "парадигма". Потому как группировать методы программирования в соответствии с парадигмой будет все же субъект. Используя свои взгляды.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, VladD2, Вы писали:
VD>Так вот Г.В. с какой-то весма странной злостью и злорадством оспаривет то, что есть такое понятие как парадигма, а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
ИМХО метапрограммирование на парадигму пока не тянет.
Что такое программа:
функциональное пр-е — набор функций
ООП — набор объектов
обобщённое — набор паттернов (как функций так и объектов)
метапрограммирование — набор специализаций шаблонов?
Наверное, можно создать такие паттерны, что большая часть логики программы будет реализована за счёт операций с типами объектов, а не самими объектами. Если это случится и станет массовой практикой, а не отдельными экспериментами, можно будет говорить о метапрограммировании, как о парадигме. А пока метапрограммирование является лишь приёмом в рамках обобщённого программирования.
Здравствуйте, Sinclair, Вы писали:
ГВ>>Я не утверждаю, кстати, что "нужно преподавать парадигму". Я утверждаю, что нужно передавать знания о концепциях, моделях и методах. А уж какую они там парадигму образуют и какой парадигме соответствуют — совсем не важно. S>Гм. Цитирую: S>
Итак:
S>1. Парадигма программирования — это что-то из области прыжков без земли под ногами.
S>2. В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
ГВ>>Это вовсе не исключает существования парадигмы программирования как таковой. S>Ну вот видишь, мы уже приближаемся к решению. Совсем недавно ты отрицал существование парадигмы.
ГВ>>но не в том виде, как её определяет википедия!
Что я написал строкой выше?
ГВ>>Можно сгруппировать методы программирования по какому-то признаку? Можно. S>Речь идет о том, что нет никакого объективного и независящего от субъекта способа сгруппировать методы так, чтобы они разделились на парадигмы.
Да ну???? Хотя бы по используемой терминологии. А по зависимостям друг от друга?
ГВ>>Можно такую группу назвать "парадигмой"? Да запросто. Является ли это "взглядом" на программу? Возможно, но в данном случае "взгляд" — не более, чем художественная метафора. S>Нет. "Взгляд" в данном случае является объективной констатацией субъективного и неформального характера термина "парадигма". Потому как группировать методы программирования в соответствии с парадигмой будет все же субъект. Используя свои взгляды.
Ну если это субъективный и неформальный термин, то и дорога ему только в факультативный курс. Тогда возвращаемся на круги своя — нет такой штуки, как "парадигма программирования", если она не определима вне субъекта программирования.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, VladD2, Вы писали:
V>>>Слава богу "парадигмам" там не учат.
VD>>Учат, учат. А бог мне твой не нравится. Да и вообще идолы.
V>Кстати, Бог и идолопоклонничество несовместимы (как функциональная и структурная парадигмы).
Вполне совместимы, недавно по ящику показывали презентацию перевода библии на чукотский язык, так там их главный священик и главный шаман по совместительству не стеснялась рассказывать про библиию и бить при этом в бубен и говорить про духов предков
Здравствуйте, FR, Вы писали:
FR>...главный шаман по совместительству не стеснялась рассказывать про библиию и бить при этом в бубен и говорить про духов предков
А ещё можно курить прямо на автозаправке и пепел на "пистолет" стряхивать. И грибы все подряд есть. Правда некоторые — только один раз.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, FR, Вы писали:
FR>>...главный шаман по совместительству не стеснялась рассказывать про библиию и бить при этом в бубен и говорить про духов предков
ГВ>А ещё можно курить прямо на автозаправке и пепел на "пистолет" стряхивать. И грибы все подряд есть. Правда некоторые — только один раз.
Угу еще можно долго вести бессмысленный терминологический спор.
Здравствуйте, AndrewVK, Вы писали:
AVK>Это называется сарказм.
Тогда можно начистоту?
Я вообще против ПРЕПОДАВАНИЯ парадигм, как отдельного предмета, если честно...
Любой нормальный предмет в последних лекциях заканчивается упорядочиванием и классификацией. Вот там этому понятию и место — определить взаимосвязь неких подходов, правил и ограничений, которые образуют устойчивые популярные парадигмы. Обосновать каждую взаимосвязь, особенно для популярных парадигм, т.е. рассказать, откуда у каждой парадигмы ноги растут, и зачем потребовалось выделять (объединять) в парадигму.
Изучать это как? Упомянуть на 1-2-х лекциях — да! Талдычить семестр или два одно и то же — увольте.
AVK>Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
AVK>...
AVK>Так чему же обучать в университетах-то? Правильно. Только не «парадигмам».
AVK>...
AVK>В университетах такому понятию делать нечего. Разве что, где-то в курсе «массовые заблуждения и устойчивые мифы программистской среды». Фольклористика, словом.
AVK>Это называется сарказм.
Нет. Это скорее называется "подлог".
Но по сути согласен. Я уже давно наблюдаю театр абсурда когда один явно утверждает об отсусвии парадигм и одновременно о их вреде при преподавании, а второй соглашается с ним и одновременно говорит, что Гена ничего такого не говорил. В общем, как в том анегдоте "ну, я в хорошем смысле этого слова...".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
ГВ>Ну, я не знаю, где там у него это самый пресловутый фейерверк противоречий, что-то не усмотрел. То, на что ты обращал внимание, на противоречия как-то не тянет.
Противоречия прут из-зо всех щелей. Он дошел то того, что утверждает, что ты вроде как и не говорил ничего такого. Но вот вышеприведенные цитатки говорят об обратно. Хотя ты и сам уже с чем-то согласен. Так что каша у вас общая, надо признать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
VD>>Что-то поддержку я заметил не очень рьяную. И список поддерживающих до скуки предсказуем.
V>Особенно этот абзац понравился. Список возражающих тоже шириной не блещет.
Да, как бы список возражающих то повесомее будет. Да и аргументация есть, а путания в том, что есть/чего нет нету. Так что...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Кстати, Бог и идолопоклонничество несовместимы (как функциональная и структурная парадигмы).
Давай еще по этому поводу поспорим. Я утверждаю, что, например, поклонение богу Пируну или Зевсу есть идолопоклоничество. Можешь оспаривать. Но, плиз, в другом форуме.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>А разве сама задача не диктует методы ее решения?
Нет не диктует. Она только дает почву для размышлений. А круг способов будет определяться фантазией программиста и количеством известных ему парадигм.
Я поддерживаю теорию Бабл-прогаммиста который смотрит на мир с точки зрения известного ему языка, только считаю, что дело не в языке, а в знании парадигм программистом. Отусуствие некоторых парадигм в его арсенале не дают ему взглянуть на задачу с некторых точек зрения.
Вот по этому и ущербна позиция Г.В. которую ты пыташся косвенно защитить.
V> Если тщательно собрать сценарии использования, требования и явные/неявные ограничения, то обычно задача просто-таки заставляет решать ее тем или иным способом.
Если в твоем арсенале нет метапрограммирования (с которого и зародился весь спор, ведь Г.В. исходно оспаривал утверждение, что МП — это еще одна парадигма), то ты не сможешь использовать его подходы для решения задачи. А значит, исходно круг решений будет сужен и ты скорее всего будешь ограничен рантайм-решениями основанными на других парадигмах (ООП, ФП, и т.п.).
Вот именно по этому парадигмы есть, они востребованы, и их изучение в специальных учебных заведениях является на сегодня архи важной задачей.
V>Даже для отдельно взятого алгоритма быстрой сортировки, если задать все условия и ограничения, то можно очень быстро прийти от нескольких вариантов (функционального, алгоритмического или OO) к одному единственному, если как ограничение прозвучит невозможность дополнительного динамического выделения памяти для работы алгоритма.
Сортировка слишком узкая задача — алгоритмическая. Тут скорее важны занния в области алгоритмов, нежели парадигм. Но и знание парадигм не помешает. Например, знание той же ФП позволит создать очень краткий варинт сортировке в стиле примеро из Хаскеля. А знание императивной парадигмы позволит реализовать максимально быстрое решение.
Так что в твоей фразе "даже" нужно заменить на "только". Так будет вернее.
В качестве же примера лучше взять клонирование или сериализацию объекта. Вот эта задача может быть решена крайне по разному в зависимости от выбора парадигмы. В ООП они будет решена совсем неуклюже. В ФП тоже. КОП даст красивое, но не самое быстрое решение (аналогичное дотнетной сериализации через пометку атрибутом Serializeble). А вот метапрограммирование позволит сделать решение и локоничным, и максимально эффективным.
Определившись с подходящей парадигмой можно выбрать и конкретный метод. Например, можно воспользоваться XmlSerializer, а можно встроенной в язык подсистемой метапрограммированния или основанной на ней библиотекой (как, например, в Немерле).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Попытаться объяснить
Объяснять нечего. Все очевидно. Ты выдашь желаемое за действительное. Г.В. открытым текстом много раз заявлял "парадигм нет", "парадигмы зло", "парадигмы не определены". Ты же пыташся все развернуть на 180".
V>Или ты встрял по принципу Портоса: "Я дерусь, потому что дерусь".
У меня большое ощущение, что это ты в данном случае придерживашся данного подхода.
V>>>Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"?
VD>>Я вижу другое.
V>Я который раз не вижу ответа на прямо поставленный вопрос.
Ответа на что? На попытку подменить мои слова? Это означает пойти на поводу. Я это делать не намерен. Так что мой ответ прост — я с тобой не спорю. Я спорю с совершенно другими утверждениями Г.В. И смеюсь над его "заклеймлю того кто упоминет про парадигмы" и т.п. Он сам себя заклеймил этими словами.
VD>>Ты в общем-то не согласен с мнением Г.В., но из чувства солидарности продолжашь поддерживать его методами пустопорожней софистики. Мне это не интересно. Заставить меня спорить в другом направлении тоже не выйдет. Так что разговор можно считаться не удавшимся.
V>Гена подсознательно прочуствовал "искуственность" происхождения понятие "парадигма". V>
V>Парадигма программирования является фундаментальным понятием очень высокого уровня в теории программирования и поэтому невозможно дать его строгого определения.
Меня не волнуют чьи-то подсознательные способности. Меня волнуют неразумные высказывания осуществляемые громко и безопеляционно.
V>И у меня не зря сложилось ассоциация "следование парадигме",
Еще раз. Не надо заставлять меня обсуждать то о чем я не говорил и то с чем я в общем-то согласен. Я сам не сторонник жизни по кальке. Знание парадигм нужно скорее для выбора оптимального подхода, чем для следования лучшие из них. Лучшей просто не бывает. Деревья проще парсить в ФП, сериализацию делать методами МП, а описывать объекты реального мира средствами ООП.
V>"придерживаться парадигмы", ибо только в таком виде парадигма и существует в ПО, в виде следования ей.
Нет. С++ часто называют мультипарадигмным потому что он с горем попалам позволяет писать в разных стилях, опираясь на разные парадигмы. Языки вроде Немерле или Окамала поддерживают разные парадигмы намного лучше. Они позволяют действительно выбрать подходящую парадигму для конкретной подзадачи.
Тем эти языки и ценны. И стало быть тем самым менее ценны языки вроде C++, C#, VB...
Г.В. собственно не наравится именно этот ход мысли, и в попытках найти контраргументы он именно что "на подсознательном уровне" начинает говорить то что говорит. (это естественно мое ИМХО).
V> Если парадигмы не придерживаться, то она пропадает.
Она пропадат из арсенала конкретного программиста. Если же она есть в арсенале, то даже не имея прямой поддержки в языке программист может использовать ее для выбора решения. То же МП можно осуществить с помощью внешних утилит (генераторы парсеров, Код Смит, и т.п.).
V> Спасибо за идею пройтись по англоязычным сайтам, помогло лучше понять, что имеют в виду наши коллеги, когда говорят о парадигме (стиле).
Пожалуйста.
VD>>Нет там такого смысла. Читай тему еще раз. И не нужно подменять одни слова другими....
V>Ты уже забодал своей манерой придумывать мотивацию оппонентов и разыгрывать спектакли по ролям.
О, как? Красивый ход. Использовать против оппонента его же аргументы. Вот только я говорю о том, что есть, а ты всего лишь пользуешся нечестными приемами. АВК тут уже составил красноречивую подборку: Re[7]: Дзен-дубизм
V>Слово "парадигма" само по себе не опасно, и с этой т.з. оба спорщика спорят лишь о тонкостях значения этого термина. А вот "придерживаться парадигмы" — это уже весьма опасное словосочетание, и что характерно, встречается чаще, чем слово "парадигма" само по себе, и даже уже четко устоялось в этом контексте. В принципе, я встрял в тему, чтобы дополнительно фыркнуть именно по поводу "следования парадигмам".
Нет не читал. Ответил не глядя.
Демагогия это а не сообщение. Подменил смысл дискуссии и борешся с выдуманным мнением.
Сходи по ссылке выше и прочитай цитаты Г.В. Далее задумайся над осмысленностью своих действий.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Я это заметил еще 3 года назад, что у тебя недостаточно времени вдумываться, что именно говорит и хочет донести собеседник. Я лишь могу в сотый раз спросить тебя — а какой смысл встрять в спор с целью заявить: "у меня нет времени на вас"?
Вдумываться можно в аргументы, факты, ссылки... В противоричивые слва и софистику вдумываться крайне сложно и неприятоно.
А со временем у меня действительно плохо. Особенно сейчас. Я ведь не просто программист который может за счет работодателя поболтать в рабочее время. На мне целая контора висит и еще куча всего по РСДН-у. Так что извени. Я и так снова ввязался в дискуссию, хотя крайне нехотил.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Да, кстати. Я вполне согласен с тем, что метапрограммирование — это тоже парадигма программирования в том смысле, что подразумевает наличие определённых методов, моделей, теорий и прочего подобного. Оспариваю я то, что сказано в википедии.
Защибись! Тогда в чем предмет спора?
ГВ>Критерий по которому определяется глупость в данном случае сугубо формальный. Упомянули "взгляд" (сугубо субъектное понятие) как часть определения сущности? Значит, написали глупость!
Меня крайне мало интересуют формальные доказательства. Мне не нужно доказывать формально, что яблоко вкусное. Я его попробовал и согласен с этим. Вот точно так же мне не нужно доказывать что парадигмы или МП есть, и что они полезны (знание о них). Я это попробовал и оценил.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
VD>>... а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
V>Пример архисложной задачи в студию. И заодно описание отличительной особенности твоей очередной парадигмы в терминах методов и ограничений (правил). И мы посмотрим на простоту решения.
1. Он уже выше таки признал то что не хотел признать.
2. Пример не проблема. Например, реализация эффективного клонирования объектов, сериализации, OR Maping-а. Все это задачи которые архи сложны при решении их без испльзования МП и вмеру сложны если решать их с использовнием МП.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
ГВ>>Да, кстати. Я вполне согласен с тем, что метапрограммирование — это тоже парадигма программирования в том смысле, что подразумевает наличие определённых методов, моделей, теорий и прочего подобного. Оспариваю я то, что сказано в википедии.
VD>Защибись! Тогда в чем предмет спора?
В том, что википедия даёт бестолковое определение. Ты на него сослался, как на опорное и завертелось. Кстати, тут уже по ходу разобрались — что к чему, да почему, и откуда и куда ноги растут. Респект vdimas, кстати.
ГВ>>Критерий по которому определяется глупость в данном случае сугубо формальный. Упомянули "взгляд" (сугубо субъектное понятие) как часть определения сущности? Значит, написали глупость!
VD>Меня крайне мало интересуют формальные доказательства. Мне не нужно доказывать формально, что яблоко вкусное. Я его попробовал и согласен с этим. Вот точно так же мне не нужно доказывать что парадигмы или МП есть, и что они полезны (знание о них). Я это попробовал и оценил.
Очень хорошо. Факта глупости википедии это не отменяет.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>Но по сути согласен. Я уже давно наблюдаю театр абсурда когда один явно утверждает об отсусвии парадигм и одновременно о их вреде при преподавании, а второй соглашается с ним и одновременно говорит, что Гена ничего такого не говорил. В общем, как в том анегдоте "ну, я в хорошем смысле этого слова...".
Не... всё веселее. Обсуждая дурацкое определение, подобное тому, которое приведено в википедии очень трудно не оказаться на некоторое время в положении балбеса: раскапывать кто что и почему подумал, сказал, кто под каким термином что имел ввиду и прочую требуху. Неблагодарное это занятие, надо сказать. Особенную трудность, кстати, представляют твои высказывания. Собственно, это уже притча воязыцех, но ничего страшного. Я, например, прекрасно представлял, что тут будет.
В конечном итоге, как мне кажется, с выводами всё-таки определились.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
ГВ>Да, верно, но ответ на вопрос "преподавать ли парадигмы в вузах" зависит от того, как трактовать "парадигму программирования". Если так, как об этом сказано в википедии — то ну её подальше от университетов. А если трактовка нормальная, то почему бы и нет? Просто в последнем случае "парадигма программирования" достойна не более, чем упоминания в обзорном курсе.
Здравствуйте, VladD2, Вы писали:
ГВ>>А вот знаешь, что забавно. Я тоже не сомневаюсь в наличии парадигм, но только не в той трактовке, которая даётся в википедии. VD>Странно ты это делашь судя по вот этим цитатам: VD>Re[7]: Дзен-дубизм
ГВ>>Ну, я не знаю, где там у него это самый пресловутый фейерверк противоречий, что-то не усмотрел. То, на что ты обращал внимание, на противоречия как-то не тянет. VD>Противоречия прут из-зо всех щелей. Он дошел то того, что утверждает, что ты вроде как и не говорил ничего такого. Но вот вышеприведенные цитатки говорят об обратно. Хотя ты и сам уже с чем-то согласен. Так что каша у вас общая, надо признать.
Да нет никакой каши, если учитывать, какими определениями обоснованы те или иные оценки и высказывания.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>>>Что-то поддержку я заметил не очень рьяную. И список поддерживающих до скуки предсказуем. V>>Особенно этот абзац понравился. Список возражающих тоже шириной не блещет. VD>Да, как бы список возражающих то повесомее будет.
Ну, это ещё неизвестно, у кого что длиннее, а у кого ширше.
VD>Да и аргументация есть, а путания в том, что есть/чего нет нету. Так что...
Ну как бы, одни истину ищут, а другие долдонят одно и то же. Собственно, отсюда и иллюзии "путаницы" у первых и "аргументации" у вторых. Ничего, бывают фишки и поинтригальней.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
VD>>>... а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь. V>>Пример архисложной задачи в студию. И заодно описание отличительной особенности твоей очередной парадигмы в терминах методов и ограничений (правил). И мы посмотрим на простоту решения. VD>1. Он уже выше таки признал то что не хотел признать.
Это уже твоё персональное заблуждение. Я признал существование "парадигмы метапрограммирования", но не в том определении, которое даёт википедия. Википедия пошла в "/dev/глупость несусветная". Собственно, я туда с некоторых пор все такие "субъектно-ориентированные" определения направляю. И этот случай исключением не оказался.
Я ж тебе писал, что да, парадигма есть, но как собирательное понятие, как некая сумма методов и т.п., а вовсе не какой-то там загадочный "взгляд".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Это уже твоё персональное заблуждение. Я признал существование "парадигмы метапрограммирования", но не в том определении, которое даёт википедия. Википедия пошла в "/dev/глупость несусветная". Собственно, я туда с некоторых пор все такие "субъектно-ориентированные" определения направляю. И этот случай исключением не оказался.
Видишь ли, в чем дело... Если ты собираешься следовать этому подходу, то тебе придется выкинуть и тезис Черча-Тьюринга.
Сошлюсь еще раз на ненавистную тебе википедию: http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B7%D0%B8%D1%81_%D0%A7%D0%B5%D1%80%D1%87%D0%B0-%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0
Обрати внимание на термин "интуитивно вычислимая функция". Он очевидно субъектно-ориентированный, т.к. никакой "объективной" интуиции не существует. Что, тезис тоже глупостью считать прикажете? А между тем его влияние на программирование ничуть не менее важно, чем постулат о невозможности вечного двигателя первого рода для инженерного дела.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, vdimas, Вы писали: V>Изучать это как? Упомянуть на 1-2-х лекциях — да! Талдычить семестр или два одно и то же — увольте.
Извините, я себе как-то слабо представляю "талдычение парадигм семестр или два". Это все равно, как думать, что курс "Врачебная этика" в мединституте состоит из целого семестра повторений клятвы Гиппократа.
А вот рассказ о них в рамках курса "философские основы информатики" представляю себе достаточно хорошо.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, VladD2, Вы писали:
V>>Попытаться объяснить VD>Объяснять нечего. Все очевидно. Ты выдашь желаемое за действительное. Г.В. открытым текстом много раз заявлял "парадигм нет", "парадигмы зло", "парадигмы не определены".
Ровно до тех пор, пока не появилось подходящего определения понятия "парадигма программирования".
V>>Ты же пыташся все развернуть на 180".
Хм. Даже я скорректировал свои оценки, не знаю уж на сколько градусов (транспортира под рукой нет). Так что, в Диминых словах противоречия нет.
V>>>>Разумеется, в зависимости от характера задачи какой-то из способов будет предпочтительнее. Он же — наиболее подходящий. Один из нас тормозит, ИМХО... Или по-твоему "предпочтительный" не синоним "наиболее подходящему"? VD>>>Я вижу другое. V>>Я который раз не вижу ответа на прямо поставленный вопрос. VD>Ответа на что? На попытку подменить мои слова? Это означает пойти на поводу. Я это делать не намерен. Так что мой ответ прост — я с тобой не спорю. Я спорю с совершенно другими утверждениями Г.В. И смеюсь над его "заклеймлю того кто упоминет про парадигмы" и т.п. Он сам себя заклеймил этими словами.
Смейся! На здоровье! Есть, правда, момент: я-то нашёл, что искал... Оказался я в процессе этого заклеймённым с чьей-то точки зрения али нет — во второй сотне в очереди дел.
VD>Меня не волнуют чьи-то подсознательные способности. Меня волнуют неразумные высказывания осуществляемые громко и безопеляционно.
Вот веришь или нет, но меня волнует то же самое.
V>>И у меня не зря сложилось ассоциация "следование парадигме", VD>Еще раз. Не надо заставлять меня обсуждать то о чем я не говорил и то с чем я в общем-то согласен. Я сам не сторонник жизни по кальке. Знание парадигм нужно скорее для выбора оптимального подхода, чем для следования лучшие из них. Лучшей просто не бывает. Деревья проще парсить в ФП, сериализацию делать методами МП, а описывать объекты реального мира средствами ООП.
Нормально. Ничего нового: ...средствами ФП, ...методами МП, ...средствами ООП. Да и то, слишком общие эти высказывания...
Кто мешает воспользоваться теми же женериками совершенно не зная о термине "парадигма МП"? Кто запретит применять методы ООП в Common Lisp (не путать с CLOS), вовсе не представляя о том, что есть такая "ОО-парадигма"?
V>>"придерживаться парадигмы", ибо только в таком виде парадигма и существует в ПО, в виде следования ей. VD>Нет. С++ часто называют мультипарадигмным потому что он с горем попалам позволяет писать в разных стилях, опираясь на разные парадигмы. Языки вроде Немерле или Окамала поддерживают разные парадигмы намного лучше. Они позволяют действительно выбрать подходящую парадигму для конкретной подзадачи.
О! Ну ка, расскажи, что такое "действительно выбрать подходящую парадигму", с учётом того, что парадигма программирования существует только как собирательное понятие для группы методов, моделей, концепций. "Взгляды" — не привлекать.
VD>Тем эти языки и ценны. И стало быть тем самым менее ценны языки вроде C++, C#, VB...
Приехали! Опять C++ vs. XXXXX? Ага, на сегодня C# и VB по одну сторону барьера с C++.
VD>Г.В. собственно не наравится именно этот ход мысли, и в попытках найти контраргументы он именно что "на подсознательном уровне" начинает говорить то что говорит. (это естественно мое ИМХО).
Тебя же не волнуют мои "подсознательные способности"?! А чего тогда гадаешь, что мне нравится, а что нет? Да и ещё и вслух. Ай-яй-яй. Такие имхи следует при себе держать. Или приватом отправлять.
V>> Если парадигмы не придерживаться, то она пропадает. VD>Она пропадат из арсенала конкретного программиста. Если же она есть в арсенале, то даже не имея прямой поддержки в языке программист может использовать ее для выбора решения. То же МП можно осуществить с помощью внешних утилит (генераторы парсеров, Код Смит, и т.п.).
Это ещё как так получается? Приёмы, которые могут быть отнесены к той или иной группе (парадигме) никуда не пропадут, даже если ими не пользоваться. Другое дело, что тогда нельзя будет говорить о "следовании парадигме". А кого волнует, следуем мы "парадигме" или нет? Хотим — следуем, не хотим — не следуем. Хотим — новую придумываем.
Эмм... Или ты опять о "взгляде" на программу?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
ГВ>>Это уже твоё персональное заблуждение. Я признал существование "парадигмы метапрограммирования", но не в том определении, которое даёт википедия. Википедия пошла в "/dev/глупость несусветная". Собственно, я туда с некоторых пор все такие "субъектно-ориентированные" определения направляю. И этот случай исключением не оказался. S>Видишь ли, в чем дело... Если ты собираешься следовать этому подходу, то тебе придется выкинуть и тезис Черча-Тьюринга.
S>Сошлюсь еще раз на ненавистную тебе википедию: S>http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B7%D0%B8%D1%81_%D0%A7%D0%B5%D1%80%D1%87%D0%B0-%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0
S>Обрати внимание на термин "интуитивно вычислимая функция". Он очевидно субъектно-ориентированный, т.к. никакой "объективной" интуиции не существует. Что, тезис тоже глупостью считать прикажете?
Погоди-погоди, ты меня навёл на интересную мысль... Я попозже отвечу.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Наконец-то!!! ОНО!!! V>Итак, больше доказывать нечего. Приемы, правила, имеющиеся зависимости и пр. — вот что надо изучать. Затем делаем следующий трюк, объявляем студенту вслух: "прием такой-то + прием такой-то + придерживаться правила такого-то — это и есть парадигма такая-то". Итого, при изученных ранее более общих приемах и правилах, изучение конкретной парадигмы занимает секунд 10 примерно...
Думаю, это разумно для подготовки программистов. А будущим архитекторам полезно знать историю смены парадигм подробнее.
Любая новая парадигма начинает зарождаеться в недрах предшествующей. К примеру, в эпоху структурного программирования особо продвинутые использовали таблицы, аналогичные таблицам виртуальных методов, создавая их вручную.
Знание истории может помочь сориентироваться в современных системах программирования и принять правильное решение, когда речь идёт о их выборе, отсеев рекламную шелуху.
Кроме того, парадигма — это не только приёмы, но и стереотипы. Например, многие приверженцы ООП поначалу предлагали вообще отказаться от функций. На примере истории можно научить адекватно воспринимать шум, вызванный появлением новой парадигмы и конфликтом поколений программистов.
Здравствуйте, last_hardcoder, Вы писали:
_>Думаю, это разумно для подготовки программистов. А будущим архитекторам полезно знать историю смены парадигм подробнее.
Т.е. предполагается что институт готовит программистов, которые не архитекторы? Забавно. Не сочти за наезд, просто интересно — ты давно институт закончил?
... << RSDN@Home 1.2.0 alpha rev. 646 on Windows XP 5.1.2600.131072>>
Здравствуйте, Sinclair, Вы писали:
ГВ>>Это уже твоё персональное заблуждение. Я признал существование "парадигмы метапрограммирования", но не в том определении, которое даёт википедия. Википедия пошла в "/dev/глупость несусветная". Собственно, я туда с некоторых пор все такие "субъектно-ориентированные" определения направляю. И этот случай исключением не оказался. S>Видишь ли, в чем дело... Если ты собираешься следовать этому подходу, то тебе придется выкинуть и тезис Черча-Тьюринга. S>Сошлюсь еще раз на ненавистную тебе википедию: S>http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%B7%D0%B8%D1%81_%D0%A7%D0%B5%D1%80%D1%87%D0%B0-%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0 S>Обрати внимание на термин "интуитивно вычислимая функция". Он очевидно субъектно-ориентированный, т.к. никакой "объективной" интуиции не существует.
А в чём его субъектная ориентация-то? ТЧТ говорит о сугубо объективных вещах (оценке вычислимости), пусть даже вызванных к жизни интуицией субъекта. Но при этом он никак не пытается определять черты самого субъекта! Он же не говорит о том, например, что "вычислимость функции влияет на взгляд субъекта и предписывает субъекту то-то и то-то".
Так что — мимо кассы. Хотя, я-точно-знаю-кто всё равно скажет, что я "выкрутился".
S>Что, тезис тоже глупостью считать прикажете? А между тем его влияние на программирование ничуть не менее важно, чем постулат о невозможности вечного двигателя первого рода для инженерного дела.
А глупость ТЧТ или не глупость — сие пока не доказано.
PS.: Интересную Мысль я потом додумаю.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, last_hardcoder, Вы писали:
_>Здравствуйте, VladD2, Вы писали:
VD>>Так вот Г.В. с какой-то весма странной злостью и злорадством оспаривет то, что есть такое понятие как парадигма, а делает он это чтобы не признать тот факт, что метапрограммирование и есть прадигма. Это тот самый образ мышления который нужно познать чтобы найти простые решения казалось бы архи-сложных задачь.
_>ИМХО метапрограммирование на парадигму пока не тянет.
Наоборот, более чем тянет.
_>Что такое программа:
_>функциональное пр-е — набор функций _>ООП — набор объектов _>обобщённое — набор паттернов (как функций так и объектов)
Прадигма != набор. Парадигма это взгляд на программу. ФП — взгляд как на систему мат.функций. ООП — взгляд как на систему взаимодействующих объектов. МП — взгляд на программу как на набор паттернов (неких сложных но кратких и выразительный конструкций) или даже DSL-ей разворачиваемых в более низкоуровневые конструкции метакодом.
_>метапрограммирование — набор специализаций шаблонов?
С++ тут вообще не причем. Это самый убогий и неудачный вариант. Видимо от того и непонимание сути подхода.
_>Наверное, можно создать такие паттерны, что большая часть логики программы будет реализована за счёт операций с типами объектов, а не самими объектами. Если это случится и станет массовой практикой, а не отдельными экспериментами, можно будет говорить о метапрограммировании, как о парадигме. А пока метапрограммирование является лишь приёмом в рамках обобщённого программирования.
Убери знак равенства между МП и шаблонами С++ и сразу все станет на место. Полноценное метапрограммирование есть в Лиспах, Немерле, Окамле...
Там получается разрабатывать полноценные DSL-и или паттерны уже сейчас (точнее уже давно) и без каких либо костылей.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Кто мешает воспользоваться теми же женериками совершенно не зная о термине "парадигма МП"? Кто запретит применять методы ООП в Common Lisp (не путать с CLOS), вовсе не представляя о том, что есть такая "ОО-парадигма"?
Пожалуй единственная фарза достойная обсуждения.
Мешает то, что у человека мозг не научен думать некоторым образом. Для этого мозга просто не существует ОО-решений. Конечно может оказаться так, что человек ниразу не слышавший об ООП интуитивно прийдет к нему на не ООЯ, но вероятнось этого ниже и качество восприятия слабее. Хотя конечно ситуация с ООП явно надумана. А вот с МП все обстоит именно так. Те кто вкусил МП и прочувствовал его силу даже не сомневаются что МП — это прадигма (если конечно у них нет цели докопаться до слова и устроить фразиологическую дискуссию), так как они получают приемущества думая о программе в терминах МП.
Возможно МП это слишком обобщенный взгляд. Рельно МП имеет несклько отичных подходов, но в общем, это действительно уникальный подход. Он дает радикально иные решения.
Он с одной стороны словно угадал мою идею о том, что неплохо было бы ввести абстракцию выдающую список индексов для списков поддерживающих индексацию, но вот представил он ее себе в терминах ОО-парадигмы. Я же представил тоже самое но в терминах прадигмы МП
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ну если это субъективный и неформальный термин, то и дорога ему только в факультативный курс. Тогда возвращаемся на круги своя — нет такой штуки, как "парадигма программирования", если она не определима вне субъекта программирования.
Задача учебного заведения учить людей думать. И парадигма это как раз способ думать, так что все ОК. Ведь учатся субъекты и мыслят тоже они.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Изучать это как? Упомянуть на 1-2-х лекциях — да! Талдычить семестр или два одно и то же — увольте.
2 лекции это такой же перебор как несколько симестров. Общие введение в парадигмы и их перчисление — это действительно пара-тройка занятий. А вот обучение конкретным приемам парадикм могут вестись и дольше. ООП, ФП, МП... все подразумевают изучения конкретных подходов, паттернов, ... и естественно практическое программирование. Ну, а там уже имеет смысл обучать выбирать более подходящие средства решения задач на основе прменения разных образов осмысления задачь.
Это и позволит превратить то что есть у едениц благодоря интуиции в четкие начучные принципы.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
ГВ>Парадигма программирования — это парадигматический стиль программирования (сравн. с методологией, которая суть парадигматический стиль программного инжиниринга).
И на старуху бывает порнуха. То, что конкретная статья википедии рассказала нам про сепулек — значит не то, что парадигм нет, а то, что 1) у автора статьи было умопомрачение и 2) тебе не повезло.
Но ты отомщён! Мой личный вклад в болтологию — перевод слова Паттерн
Здравствуйте, VladD2, Вы писали:
ГВ>>Кто мешает воспользоваться теми же женериками совершенно не зная о термине "парадигма МП"? Кто запретит применять методы ООП в Common Lisp (не путать с CLOS), вовсе не представляя о том, что есть такая "ОО-парадигма"?
VD>Пожалуй единственная фарза достойная обсуждения.
VD>Мешает то, что у человека мозг не научен думать некоторым образом. Для этого мозга просто не существует ОО-решений. Конечно может оказаться так, что человек ниразу не слышавший об ООП интуитивно прийдет к нему на не ООЯ, но вероятнось этого ниже и качество восприятия слабее. Хотя конечно ситуация с ООП явно надумана.
Жаль. Мне, например, сосвем не интересно обсуждать, что именно мешает "освободить свой разум" и позволить себе делать то, что не было написано в учебнике. ИМХО, если сам человек не предрасположен к выходу за рамки, то никакое "обучение парадигмам" ему не поможет. Впрочем, это всего лишь неверифицируемое ИМХО, и значения особого оно не имеет.
VD>А вот с МП все обстоит именно так. Те кто вкусил МП и прочувствовал его силу даже не сомневаются что МП — это прадигма (если конечно у них нет цели докопаться до слова и устроить фразиологическую дискуссию), так как они получают приемущества думая о программе в терминах МП.
Они "получают преимущества" от обобщённых конструкций. Как что при этом "думает" о программе — ровным счётом никакого значения не имеет.
VD>Возможно МП это слишком обобщенный взгляд. Рельно МП имеет несклько отичных подходов, но в общем, это действительно уникальный подход. Он дает радикально иные решения.
Кстати, эти самые обобщённые конструкции сами по себе тоже не слишком-то существуют в отрыве от базового языка.
macro IndexesOf(collection)
{
// In real code one needs to do check type of collection and make specialized code
<[ $$[0..collection.Length - 1] ]>
}
Выделенное — это, типа, не обращение к свойству Length?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А в чём его субъектная ориентация-то? ТЧТ говорит о сугубо объективных вещах (оценке вычислимости), пусть даже вызванных к жизни интуицией субъекта.
НЕТ! ГВ>Но при этом он никак не пытается определять черты самого субъекта! Он же не говорит о том, например, что "вычислимость функции влияет на взгляд субъекта и предписывает субъекту то-то и то-то".
Зато он говорит о том, что взгляды субъекта влияют на его представления о вычислимости. ГВ>Так что — мимо кассы. Хотя, я-точно-знаю-кто всё равно скажет, что я "выкрутился".
Неа, не выкрутился. Попытался отмазаться.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
ГВ>>А в чём его субъектная ориентация-то? ТЧТ говорит о сугубо объективных вещах (оценке вычислимости), пусть даже вызванных к жизни интуицией субъекта. S>НЕТ!
ГВ>>Но при этом он никак не пытается определять черты самого субъекта! Он же не говорит о том, например, что "вычислимость функции влияет на взгляд субъекта и предписывает субъекту то-то и то-то". S>Зато он говорит о том, что взгляды субъекта влияют на его представления о вычислимости.
Это масло масляное. Понятно, что взгляды субъекта влияют на его представления о вычислимости. Но ТЧТ никак не регламентирует сами взгляды и представления. Он говорит только о том, что (слегка перефразирую) если удалось посмотреть на задачу, как на вычислимую, то... То есть, перефразирую ещё раз: если кажется, что можно, значит — можно.
Замечательный жизнеутверждающий тезис.
ГВ>>Так что — мимо кассы. Хотя, я-точно-знаю-кто всё равно скажет, что я "выкрутился". S>Неа, не выкрутился. Попытался отмазаться.
Да хоть груздём...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, last_hardcoder, Вы писали:
_>>Думаю, это разумно для подготовки программистов. А будущим архитекторам полезно знать историю смены парадигм подробнее.
AVK>Т.е. предполагается что институт готовит программистов, которые не архитекторы?
Я считаю, что институт готовит в основном программистов. Но какой-то процент из них впоследствии дорастут до архитекторов.
AVK>Забавно. Не сочти за наезд, просто интересно — ты давно институт закончил?
МИФИ 1993 г. К слову сказать из нашей группы программистов получилось 20%. А что, теперь институты одних архитекторов выпускают?
Здравствуйте, last_hardcoder, Вы писали:
_>Я считаю, что институт готовит в основном программистов. Но какой-то процент из них впоследствии дорастут до архитекторов.
Видишь ли, то что сейчас называют архитекторами или тим-лидами, в советское время называлось инженерами-конструкторами, и именно для такой работы обучали в институтах. А нынешние просто программисты даже не знаю чему соответствуют. Т.е. я собственно понимаю, что каждый молодой специалист обязательно должен поработать программистом, но учить в институте только этому...
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту.
ГВ>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
Я не раз замечал, что пользуюсь в последние годы Википедией не реже, чем Гуглем. В качестве источника базовых и иногда неточных сведений совершенно обо всем она не имеет равных. Никогда в истории человечества не было ничего подобного этому огромному сборнику полезных сведений из всех областей человеческого знания. Никакие энциклопедические достижения прошлого и настоящего и близко не стоят.
То, что эти сведения часто неполны и неточны — очевидно любому, совершенно любому человеку, обладающему глубокими познаниями в любой вообще области. Но в подавляющем большинстве случаев это просто оказывается неважным, и в этом главный урок Википедии: не в том, что постоянная редактура сделает любую статью идеальной, а в том, что она сделает почти все статьи достаточно хорошими, чтобы быть полезными, а не вредными (пусть и хуже в почти любом конкретно взятом случае, чем могла бы быть профессионально написанная и отредактированная энциклопедическая статья на ту же тему). Привычка воспринимать критически любой текст, а не принимать его утверждения слепо на веру помогает отсеивать на практике почти все случаи тенденциозного описания в Википедии, и замечать большинство случаев неполного или неточного описания; даже когда понимаешь, что на данную статью не имеет смысла полагаться в плане полноты или точности описания, она оказывается полезной в том, что предоставляет контекст, основные понятия досель незнакомых объекта или идеи, дает ссылки на другие источники или даже понятие о том, по каким ключевым словам следует искать ссылки на другие источники. Так или иначе, я, читатель Википедии, почти всегда оказываюсь в выигрыше.
Здравствуйте, VladD2, Вы писали:
VD>Но по сути согласен. Я уже давно наблюдаю театр абсурда когда один явно утверждает об отсусвии парадигм и одновременно о их вреде при преподавании, а второй соглашается с ним и одновременно говорит, что Гена ничего такого не говорил.
Добавь к этому свою способность к выборочному чтению оппонентов и цитированию в отрыве от контекста, и картинка получится окончательно правдоподобной.
Здравствуйте, FR, Вы писали:
FR>Угу еще можно долго вести бессмысленный терминологический спор.
Кстати, ты правильно сформулировал — именно терминологический спор. Любое серьезное обсуждение может происходить только при установленных и однозначно понимаемых терминах. Любая наука начинается с терминов. А у нас тут есть один передовик, который впереди планеты всей, запросто аппелирует к терминам, типа в качестве усиления собственной позиции, и тут выясняется, что ясности в самих терминах нет...
Вполне закономерный результат. Все узнали много нового, и, надеюсь, обсуждаемый термин наши "передовики" будут использовать осторожнее и по назначению.
Здравствуйте, VladD2, Вы писали:
VD>Да, как бы список возражающих то повесомее будет. Да и аргументация есть, а путания в том, что есть/чего нет нету. Так что...
А можно в одном месте собрать всю аргументацию? Если действительно охота по-людски закончить спор.
Вся эта возня возникла из-за множества отличающихся, похожих только общей туманностью, формулировок обсуждаемого термина. Ситуацию усугубляет так же тот факт, что когда он впервые был применен для IT, то имел немного другой оттенок, чем сейчас.
Какие аргументы интересуют:
1. Что имено надо изучать, будь такой отдельный курс: "парадигмы программирования"? Сколько и какого качества дополнительной информации он даст в сравнении с изучением вычислительных моделей?
2. Возможна ли классификация парадигм? Есть ли закономерности в их обособлении друг от друга? Существуют ли критерии сравнения получаемых решений в случае применения разных парадигм для одной и той же задачи? (один из самых интересных вопросов)
3. Первая из выделившихся парадигм — это ФП. Единственное, имеющее на сегодняшний момент нормальный математический аппарат. Собственно, совокупность ограничений, составляющих эту парадигму выбиралась таким образом, чтобы не нарушать выбранную модель вычислений. Случай совершенно вырожденный, ибо в итоге парадигма и модель вычислений относятся ровно один к одному. У других парадигм нет подобного математического аппарата и привязанности к одной избранной модели вычисления. Тогда каким образом устанавливать границы парадигм?
4. Методы проектирования теперь следует изучать в рамках парадигм, или же "по-старинке"? Не пострадает ли такая вещь как универсальность и применимость получаемых знаний и навыков?
5. Как быть с классификацией подходов к разработке? Теперь это переименовано в "парадигмы"?
-------------------
Не уверен, что кто-либо сможет четко и правдоподобно ответить даже на эти первые вопросы. Практически везде будут уместны такие вещи как ИМХО, "обычно", "чаще всего", "эмпирически установлено" и т.д.
-------------------
Я пока не увидел другой аргументации, кроме как поиск несоответствий в Гениных выступлениях. Как насчет аргументаций по существу вопроса? По существу пытался говорить лишь Коденок, но он тоже упирал на субъективность понятия, чем только подыгрывал Гене, который обратил внимание на туманность формулировки.
Хотя очевидно, что к термину "парадигма", вернее к каждой конкретной парадигме, привязан вполне однозначный набор инструментария (языков), вычислительных моделей, методов проектирования и ограничений (правил), которые, все-таки, диктуются объективными причинами. Может быть дело в том, что пока ни у кого не получилось нормально сформулировать как сам термин так и предпосылки к возникновению "парадигм"?
"Взгляд на проблему", "видение" — да близко, но немного не то. "Взгляд на проблему" подразумевает бесчисленное множества оттенков серого, типа как раньше свет считали непрерывным волновым излучением. Ан нет, все разбито на вполне конкретные кванты, м/у которыми значения порций энергии существовать не могут. Т.е., не так уж мы вольны в выборе парадигм, ибо как ограничения идут инструменты (автоматизированная поддержка методов и ограничений, составляющих парадигму), наработанные практики (главное достоинство парадигм, ИМХО) и оценочные критерии, по большей части эмпирические, как следствие пред. пункта.
Что я для себя вынес из всей информации, раздобытой и изученной во время обсуждения:
— объективно парадигмы — это наборы практик, которые устоялись и выкристаллизовались в процессе применения. Практики основаны на совместном применении определенных методов наряду с различными правилами и ограничениями.
— мы толчемся вокруг фраз субъективного плана, типа "парадигма — это способ видения проблемы", что не совсем верно, ибо "способ видения" претендует на некую свободу выбора взгляда (ведь задача начинается с ее рассмотрения). Но фиг там — парадигма предоставляет некий вполне определенный угол зрения. И этот угол появился не спроста, у него были десятки причин и многие человеко-года проб и ошибок. Т.е. должны существовать вполне объективные критерии для выбора парадигмы (совокупности методов и правил их применения). Собственно, с этого я и начал свое выступление в ветке, что необходимо применять методы по назначению, а не следовать понравившимся парадигмам.
Кстати, очередной вопрос:
— что определяет критерии предпочтительности решения задачи с применением той или иной парадигмы? Способ видения разработчика, или соотношение требований и возможностей методов, составляющих в "парадигму"?
Согласитесь, будет непросто, признав второе, продолжать считать, что первое есть определяющее.
— Роль инструментария для формирования "парадигмы"? К инструментарию относятся сами ср-ва выражения (языки) и ср-ва разработки (либо в одном флаконе в случае визуальных редакторов, для визуальных парадигм) + базовые программные платформы, реализующие наиболее встречающиеся сценарии по правилам используемой парадигмы.
На мой взгляд весь этот инструментарий и есть главное "парадигмообразующее". Т.е. кому-то показалось, что будет неплохо совмещать такие-то и такие-то подходы, потом разрабатывается инструментарий под это — (язык программирования в первую очередь), базовая платформа, и если все это дает некий положительный результат — то вот она парадигма и готова.
Ну а теперь главный вопрос:
— Насколько все это "научно"? А если все это время речь шла о практиках, то в какой последовательности и с каким балансом по отношению к фундаментальным знаниям надо вводить изучение практик? Вопрос относится ко всем накопенным практикам: средам, платформам, библиотекам, АПИ, шаблонам проектирования и т.д.
-----------
Собственно, мне почти сразу стало понятно, что во мне вызывает возражение при обсуждении подобных моментов. Это наше образование, которое упирает на фундаментальные знания, и дает их оччень неплохо. По крайней мере, сравнивая себя и здешних коллег с коллегами из-за океана, я отмечаю гораздо лучшую общую подготовку "наших". Как следствие очень заметна разница в скорости освоения новых знаний (и парадигм в т.ч. ), а так же потрясающая универсальность большинства наших спецов, по сравнению с тамошними коллегами, кои зачастую довольно узкие спецы. Понятное дело, что уверенность в необходимости именно хорошего изучения фундаментальных знаний, которые дадут возможность не зависеть от мод и коньюктур, ставит на вполне определенную позицию в спорах, где обсуждается размер необходимых знаний практического плана. Банально работает боязнь, что за счет практических навыков непременно урежут теорию (ну не 12 часов в сутки студентам лекции читать, правильно?)
Опять же, Дейкстра в свое время очень неплохо высказался о порочности тенденций в IT, и по сути, высказался за модель, близкую нашим вузам. (не нашел этой ссылки, поделитесь у кого есть).
VD>Если в твоем арсенале нет метапрограммирования (с которого и зародился весь спор, ведь Г.В. исходно оспаривал утверждение, что МП — это еще одна парадигма),
После всего прочитанного о парадигмах и прочего, склоняюсь к мысли что да, еще одна парадигма. Но если быть точным (исходить из того, что парадигма подразумевает определенный набор методов, правил и т.д.), то это не МП-парадигма, это скорее DSL-парадигма. Если интересно, могу попытаться разложить по полочкам.
VD>Вот именно по этому парадигмы есть, они востребованы, и их изучение в специальных учебных заведениях является на сегодня архи важной задачей.
Я все равно склонен считать, что полезнее, изучать строительные блоки парадигм: методы, взаимосвязи м/у действиями и результатами, оценочные критерии и т.д.. Неужели не видишь, что это более универсальные знания?
Кстати, задолго до обнаружения ОО-парадигмы как "отдельной", она практически в чистом виде выступала при построении выч.систем и комплексов. (Ключевая фраза: "системный подход"). Т.е., несмотря на наличие кучи других т.н. "парадигм", есть одна из них — ОО-парадигма, которой подчиняется современное проектирование любых более-менее сложных вещей, начиная от структуры сети, заканчивая взаимодействием электроники многопортовых маршрутизаторов с их ПО. Остальные парадигмы могут выступать на этапе имплементации частей более низкого уровня. К тому же, не являются универсальными. Я тут недавно пошутил про "поглощение" парадигм, но был недалек от истины, если рассматривать парадигмы как множества методов и правил. К множествам понятие "поглощение" еще как применимо.
VD>В качестве же примера лучше взять клонирование или сериализацию объекта. Вот эта задача может быть решена крайне по разному в зависимости от выбора парадигмы. В ООП они будет решена совсем неуклюже. В ФП тоже. КОП даст красивое, но не самое быстрое решение (аналогичное дотнетной сериализации через пометку атрибутом Serializeble). А вот метапрограммирование позволит сделать решение и локоничным, и максимально эффективным.
Да не мета-программирование это. Или же мы должны признать, что построение компиляторов — это тоже метапрограммирование (Ахо с Ульманов перевернулись на другй бок). У тебя есть компилятор в Nemerle, который выполнен как конструктор. Ты программируешь собственный компилятор.
VD>Определившись с подходящей парадигмой можно выбрать и конкретный метод.
Вот что меня смущает. Алгоритм процесса "определения с подходящей парадигмой" существует? Я, например, знаю методы: объектная (она же — системная) декомпозиция, и декомпозиции более низкого уровня (больше ограничений) — функциональные и структурные. Если в какой-то подсистеме будет явно преобладать, например, функциональная декомпозиция, то я могу попробовать использовать функциональную парадигму для ее реализации, т.е. наработанный опыт решения через ФП. Повторюсь: мне по прежнему кажется, что требования в состоянии продиктовать ход решения. А произвольный выбор "способа видения" позволит равновероятно выбрать любой из ошибочных путей.
VD>Например, можно воспользоваться XmlSerializer, а можно встроенной в язык подсистемой метапрограммированния или основанной на ней библиотекой (как, например, в Немерле).
Ты по-сути, встявляешь в компилятор задачи прикладного уровня. При таком подходе тебе в run-time уже практически не нужна метаинформация, потому мне и кажется, что МП — неудачное определение. Ведь в компилятор можно закладывать задачи не только из области доступа к структуре объектов, но и из области алгоритмов и еще бог его знает чего. Т.е. термин DSL-подход мне бы казался более удачным, т.к. более общий. А то тут говорят слишком много об сериализации или ORM (та же сериализация — вид сбоку), типа других задач не бывает...
Здравствуйте, Sinclair, Вы писали:
S>Обрати внимание на термин "интуитивно вычислимая функция".
Что означает этот термин??? Я так и не понял, о чем речь. Хотя, предполагаю, что речь о способности мозга рассуждать логически. Если рассуждения не ошибочны, то их можно воспроизвести с помощью машины Тьюринга, разумеется. При чем тут обсуждаемая тема?
S>Он очевидно субъектно-ориентированный, т.к. никакой "объективной" интуиции не существует. Что, тезис тоже глупостью считать прикажете?
В конце дано определение, которое вполне понятно:
Физический тезис Чёрча—Тьюринга гласит: Любая функция, которая может быть вычислена физическим устройством, может быть вычислена машиной Тьюринга.
VD>2 лекции это такой же перебор как несколько симестров. Общие введение в парадигмы и их перчисление — это действительно пара-тройка занятий. А вот обучение конкретным приемам парадикм могут вестись и дольше. ООП, ФП, МП... все подразумевают изучения конкретных подходов, паттернов, ... и естественно практическое программирование. Ну, а там уже имеет смысл обучать выбирать более подходящие средства решения задач на основе прменения разных образов осмысления задачь.
Основная задача обучения — это научить человека учиться. Но, вот в чем вопрос — эту задачу пока решают одновременно с напихиванием в человека информации. Ты же сейчас предлагаешь ограничиться только напихиванием информации. Все эти методы, о которых ты говоришь замечательно преподают, так что непонятно, что еще надо и за что ты борешься. Я уже говорил в этой ветке, что ФП и ЛП обычно преподают в рамках курса обработки знаний. Студентам не просто перечисляют наличие каких-то методов в IT, а именно учат пользоваться на примере целого класса востребованных задач. Но опять же, обрати внимание, никто не делает акцента на парадигмах, акцент делается на строительных блоках этих парадигм, кои переживут все существующие парадигмы и все будущие.
VD>Это и позволит превратить то что есть у едениц благодоря интуиции в четкие начучные принципы.
Угу, количество, само по себе переходящее в качество.
Здравствуйте, last_hardcoder, Вы писали:
_>>>Думаю, это разумно для подготовки программистов. А будущим архитекторам полезно знать историю смены парадигм подробнее.
AVK>>Т.е. предполагается что институт готовит программистов, которые не архитекторы?
_>Я считаю, что институт готовит в основном программистов.
Если взять мою выписку из диплома, то там часов на подготовку меня как программиста — дай бог 5-10% от профилирующих (историю, философию, физкультуру и пр. вычеркиваем, иначе совсем маленький процент получим).
Остальные — подготовка как инженера, т.е. конкструктора программных систем.
_>Но какой-то процент из них впоследствии дорастут до архитекторов.
С 3-го курса их только архитектуре ПО, сетей, БД, БЗ и т.д. и учат... Значит, ты ведешь речь о выпускниках, которые отучились лишь первые 2 курса.
Здравствуйте, vdimas, Вы писали:
AVK>>Еще одни спор о терминах, бессмысленный и беспощадный.
V>С терминов начинается любой раздел науки. Прикладной — в первую очередь.
Ради бога. Только это не умаляет бессмысленности и беспощадности спора о них.
Здравствуйте, vdimas, Вы писали:
V>Что означает этот термин??? Я так и не понял, о чем речь.
Вижу. Плохо. Вот у тебя есть интуитивное понятие о том, что такое "вычислимость"?
V>Хотя, предполагаю, что речь о способности мозга рассуждать логически.
Нет. Речь идет о способности мозга воспринимать чуть более абстрактные понятия, чем "стол" и "стул".
Вот возьмем к примеру термин "температура". Что он обозначает? Абсолютное большинство людей имеют вполне смутные интуитивные представления о том, что это такое, на уровне "горячо-холодно". Тот, кто изучает физику, знает, к примеру, что "температура есть мера средней кинетической энергии". Мы резко сузили понятие температуры. После этого мы можем делать о ней всякие строго доказуемые заключения (ну, к примеру, мы можем сказать, что температуры ниже абсолютного нуля не существует. Это, очевидно, невозможно постулировать для "интуитивной температуры"). Естественно, опираясь на достаточно точное понимание того, что такое кинетическая энергия. При
этом мы не исключаем возможности иметь альтернативные определения термина "температура", но вряд ли они дадут нам что-то принципиально новое. При этом совершенно четко можно различить интуитивное представление о температуре и научное представление о том, что это такое.
Перейдем теперь к понятию "вычислимости". У каждого мало-мальски соображающего человека есть интуитивное представление о том, что такое "вычислимость": "возможность вычислить".
В начале прошлого века куча умного народу пыталась формализовать понятие вычислимости. Оказалось, что есть достаточно широкий набор способов это сделать — все зависит от того, с помощью чего мы собираемся вычислять. Относительно быстро была доказана эквивалентность всех этих вычислимостей. Однако вопрос "а не существует ли машины более мощной, чем машина Тьюринга?" пока что остается открытым. Отсутствие такой машины не доказано, равно как и отсутствие полиномиально-сложного алгоритма разложения числа на простые множители.
Совершенно очевиден зазор между способностями человека к неограниченному мышлению и способностями компьютера (реального либо воображаемого). Неясно, можно ли описать человеческое мышление при помощи машины Тьюринга.
Тем не менее Черч делает смелое заявление: человек не в состоянии делать ничего такого, чего не могла бы машина Тьюринга. Невозможно придумать такое понятие вычислимости, которое было бы "мощнее" вычислимости при помощи МТ или общерекурсивных функций. Доказать этот тезис, очевидно, пока что невозможно.
V>Если рассуждения не ошибочны, то их можно воспроизвести с помощью машины Тьюринга, разумеется.
Проблема в том, что никто не знает, что такое "рассуждения". Человек в состоянии воспроизвести машину Тьюринга, или следовать методам формальных доказательств. Однако непонятно, работает ли это в обратную сторону. Лично я уверен в том, что таки да, но удовлетворительного доказательства нет и быть пока не может, ибо методика прямого наблюдения за мышлением не создана.
S>>Он очевидно субъектно-ориентированный, т.к. никакой "объективной" интуиции не существует. Что, тезис тоже глупостью считать прикажете?
V>В конце дано определение, которое вполне понятно:
Ну так это другой тезис! V>Где тут "субъективность"?
Вот здесь уже нету. Равно как и в тезисе об эквивалентности вычислимости в терминах МТ и вычислимости в терминах общерекурсивных функций.
V>И что должна была доказать эта ссылка?
Что существуют неформализуемые, (пока что неформализованные/слабо формализованные) понятия, которые тем не менее не являются глупостями. Пренебрегать ими как раз и есть глупость.
На досуге советую подумать над тем, что такое множество, есть ли альтернативный способ определить этот термин (так, чтобы он не слишком противоречил нашему интуитивному представлению о множестве), и можно ли построить другую алгебру множеств, чем та, на котороой зиждется университетский курс.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, AndrewVK, Вы писали:
AVK>Только это не умаляет бессмысленности и беспощадности спора о них.
Беспощадность спора — ладно. А вот почему — бессмысленность?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
AVK>>Только это не умаляет бессмысленности и беспощадности спора о них.
ГВ>Беспощадность спора — ладно. А вот почему — бессмысленность?
Потому что результат этих споров всегда один и тот же.
Здравствуйте, AndrewVK, Вы писали:
ГВ>>Беспощадность спора — ладно. А вот почему — бессмысленность? AVK>Потому что результат этих споров всегда один и тот же.
Какой?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>Ну если это субъективный и неформальный термин, то и дорога ему только в факультативный курс. Тогда возвращаемся на круги своя — нет такой штуки, как "парадигма программирования", если она не определима вне субъекта программирования.
VD>Задача учебного заведения учить людей думать. И парадигма это как раз способ думать, так что все ОК. Ведь учатся субъекты и мыслят тоже они.
Ой, как всё запущено...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
S>... в рамках курса "философские основы информатики" представляю себе достаточно хорошо.
Это ещё что такое? Семестр талдыченья ни о чём?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
ИМХО, приведённая статья есть пример того, как слишком объёмный для осмысления предмет приводит неподготовленного наблюдателя в изменённое состояние сознания. Если вернее — то побуждает подменить совокупность сущностями. Ну, бывает...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
V>>И что должна была доказать эта ссылка? S>Что существуют неформализуемые, (пока что неформализованные/слабо формализованные) понятия, которые тем не менее не являются глупостями. Пренебрегать ими как раз и есть глупость.
А что слабоформализованного в ТЧТ? "Интуитивно вычислимая" легко разворачивается в "которую, кажется, возможно вычислить". Ссылка на роль субъекта здесь очевидна, но ни о каких "способах обеспечения кажимости", "методах кажения" и "классификации показалостей" речи там не идёт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>>>Потому что результат этих споров всегда один и тот же. ГВ>>Какой? AVK>Такой же как и в текущем случае — никакой.
Для кого?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>Ну если это субъективный и неформальный термин, то и дорога ему только в факультативный курс. Тогда возвращаемся на круги своя — нет такой штуки, как "парадигма программирования", если она не определима вне субъекта программирования.
VD>Задача учебного заведения учить людей думать. И парадигма это как раз способ думать, так что все ОК. Ведь учатся субъекты и мыслят тоже они.
Э... наиважнейшим среди способов думания стоит полагать способ "не думать о белой обезъяне". Всё прочее — пустота и тлен.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, AndrewVK, Вы писали:
AVK>>>Такой же как и в текущем случае — никакой. ГВ>>Для кого? AVK>А что, есть кто то, кому он пользу принес?
Да, есть. Почитай дискуссию.
AVK>Впрочем, если посчитать за таковую удовлетворенное себялюбие, то возможно.
Можно предположить и такой исход, как один из возможных результатов
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
S>Тем не менее Черч делает смелое заявление: человек не в состоянии делать ничего такого, чего не могла бы машина Тьюринга. Невозможно придумать такое понятие вычислимости, которое было бы "мощнее" вычислимости при помощи МТ или общерекурсивных функций. Доказать этот тезис, очевидно, пока что невозможно.
Некторые физики (Пенроуз и Ко) выдвинули "тезис о невычислимости" и даже собираются его эксперементально проверить(http://www.computerra.ru/think/35650/)
V>>Если рассуждения не ошибочны, то их можно воспроизвести с помощью машины Тьюринга, разумеется. S>Проблема в том, что никто не знает, что такое "рассуждения". Человек в состоянии воспроизвести машину Тьюринга, или следовать методам формальных доказательств. Однако непонятно, работает ли это в обратную сторону. Лично я уверен в том, что таки да, но удовлетворительного доказательства нет и быть пока не может, ибо методика прямого наблюдения за мышлением не создана.
V>>И что должна была доказать эта ссылка? S>Что существуют неформализуемые, (пока что неформализованные/слабо формализованные) понятия, которые тем не менее не являются глупостями. Пренебрегать ими как раз и есть глупость.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, last_hardcoder, Вы писали:
_>>>>Думаю, это разумно для подготовки программистов. А будущим архитекторам полезно знать историю смены парадигм подробнее.
AVK>>>Т.е. предполагается что институт готовит программистов, которые не архитекторы?
_>>Я считаю, что институт готовит в основном программистов.
V>Если взять мою выписку из диплома, то там часов на подготовку меня как программиста — дай бог 5-10% от профилирующих (историю, философию, физкультуру и пр. вычеркиваем, иначе совсем маленький процент получим).
V>Остальные — подготовка как инженера, т.е. конкструктора программных систем.
Не сочти за наезд, просто интересно. А ты давно архитектором работаешь?
_>>Но какой-то процент из них впоследствии дорастут до архитекторов.
V>С 3-го курса их только архитектуре ПО, сетей, БД, БЗ и т.д. и учат... Значит, ты ведешь речь о выпускниках, которые отучились лишь первые 2 курса.
Насколько я себе представляю, учить архитектуре чего-то там и выпускать готовых архитекторов — это разные вещи. Впрочем, возможно, мы вкладываем в понятие "архитектор" несколько разные вещи.
V>После всего прочитанного о парадигмах и прочего, склоняюсь к мысли что да, еще одна парадигма. Но если быть точным (исходить из того, что парадигма подразумевает определенный набор методов, правил и т.д.), то это не МП-парадигма, это скорее DSL-парадигма. Если интересно, могу попытаться разложить по полочкам.
Не стоит. Я вот с удивлением слежу за ходом дискуссий по-поводу парадигм. Каждый склоняет в общем-то хорошо известные, и имеющие хорошо понятные и четкие определения, термины как ему угодно. Для начала следуют определиться с тем, что каждый конкретный термин все таки означает(в понимании большинства исследователей, занимавшихся исследованиями в той или иной области) и тогда все эти споры станут абсолютно бессмысленными.
Метапрограммирование это написание программ, создающих программы и манипулирующих программами же(кодом программ). При этом конкретное средство метапрограммирования не имеет никакого значения, это общая концепция. Т.е. компилятор, транслятор, построитель парсеров и т.д. без сомнения являются метапрограммами в широком смысле этого слова. Но как и любая концепция — метапрограммирование, может иметь совершенно различный уровень реализации и развития в том или ином инструменте.
Такие инструменты как Nemerle поддерживают эту концепцию(парадигму если хотите) на очень высоком уровне. Его мета-язык является его же объектным языком и позволяет работать с объектным-кодом в run-time и через подключение пользовательских мета-программ непосредственно к компилятору(который и сам является мета-программой в каком-то смысле) в compile-time.
Есть языки, такие как Prolog, где концепция МП развита на чуть более низком уровне и строго ограниченна рамками run-time. Но тем не менее поддержка МП в этих языках есть, причем во многом более существенная, чем во многих compile-time мета-языках(например C++ templates). На самом деле то же пространство имен System.Reflection это средство метапрограммирования(так как позволяет анализировать и создавать программы).
А теперь пару слов о DSL. DSL это всего навсего частный случай метапрограммирования. То есть создание DSL — это без сомнения метапрограммирование, но вот метапрограммирование это далеко не всегда создание DSL. При этом сам DSL конечно может не иметь с метапрограммированием ничего общего(мета-языком в данном случае является средство непосредственного создания DSL мета-программы).
Здравствуйте, Кодёнок, Вы писали:
V>>При чем тут образ мышления? Есть задачи и есть несколько способов их решения. Разумеется, чем большим набором способов владеет программист, тем больше вероятность того, что он выберет удачный способ решения задачи. На отдельно взятых "образах мышления" лучше не зацикливаться.
Кё>Нет никаких нескольких способов решения. К реальным задачам, возникающим повседневно, готовых решений нет. Каждая задача встречается один раз. Если она встретилась второй раз, то решение УЖЕ есть и решать там нечего вообще. Если нужно что-то решать, продумывать, это говорит о том, что задача — новая.
Однако, есть шаблоны/методики/принципы построения решений схожих задач.
Например, задача построения транслятора обычно делится на несколько подзадач: анализ и разбор входного текста, построение промежуточного кода, построение объектного кода. Разумеется, можно строить объектный код вообще сходу, прямой подстановкой фиксированных наборов машинных команд на место конструкций входного языка. Но при этом можно потерять гибкость в адаптации к разным платформам и запутаться в огромном объёме таких конструкций. Иде здесь парадигма? Чистая математика с экономикой! А если какая-то "парадигма" и есть, то какая именно?
Кё>Человек, который хочет сделать что-либо, не выбирает "наиболее подходящее", как ты думаешь. Сначала он придумывает несколько решений, и только затем выбирает наиболее подходящее. Cколько решений ты сможешь придумать, зависит от того, насколько широко твое воображение. Если ты можешь мыслить только об объектах, то ты придумаешь 1, 10 или 100 решений, но они все будут ООП-шными. И если для задачи объектная декомпозиция плохо подходит, то все эти 100 решений будут плохими.
Кё>А когда ты знаком с другими подходами, тебе доступны новые множества решений. Не отдельные дополнительные решения — а именно множества.
Ну ёлки зелёные! Множества что, пустые, что ли? Или просто обозначенные своими названиями?
Кё>В этом и отличие — узнать новую парадигму, или просто новые шаблоны/методики/принципы.
Фокус в том, что "новая парадигма" — это просто набор слов без шаблонов/методик/принципов. А при познании последних "новая парадигма" снова — просто набор слов.
А есть ещё и соображения учебного процесса. И если некоторые наборы методов имеют в своём составе схожие или, паче чаяния, одинаковые методы, то с целью оптимизации учебного процесса изучать будут именно методы, а не их совокупности. А по агрегатам методов пройдутся где-то в самом конце — и хватит с них.
Кё>Знать парадигмы нужны не для того, чтобы застрять в одной и, не разбираясь, решать все задачи в одном духе. Они нужны как раз для того, чтобы тебе были доступны принципиально иные решения. Это как переход от целых чисел к действительным — и тех и других бесконечное множество, но это бесконечности разного рода.
Мне кажется, ты переоцениваешь значимость агрегативных понятий для синтеза решений. Пока они не конкретизированы методами и прочими сугубо конкретными вещами их ценность близка к нулю. Ну вот скажут, например, что задачи ИИ лучше всего решаются в парадигме сепуления. А что такое сепуление, как выглядит сепулька — за кадром. А если известно, что это такое, то знание о "парадигме сепуления", как о названии группы мало что добавит к владению сепульками.
На самом деле, я на практике чаще сталкивался с такой ситуацией: сначала решение придумывается (синтезируется), а потом кто-то говорит: "О! Так ведь у <нужное вписать> как раз об этом написано!" Ну это так, просто наблюдение.
Кё>Если например, ты не знаешь, что изменение состояния можно представить в виде создания функцией новой функции, которая будет немного отличаться от оригинала (а именно — действовать в соответствии с новым "состоянием"), то решения, включающие такой подход, тебе в голову не придут. А наиболее подходящее может быть как раз среди них.
Lisp был в программе третьего курса, если не ошибаюсь. С этого момента идея о самомодифицирующейся программе укоренилась в мозгах не только в виде stealth-вирусов. Собственно, да. Об этом напоминает сама конструкция компьютера, у которого память может интерпретироваться и как код, и как данные.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Зверёк Харьковский, Вы писали:
ГВ>>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту. ГВ>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
Это всё понятно. Но если бы кто-то, не будем говорить кто, не сослался именно на эту статью в википедии в обсуждении вузовского обучения...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Зверёк Харьковский, Вы писали:
ГВ>>>3. Википедия — очень опасный источник определений. Ссылка на википедию в ответе должна приравниваться автонезачёту. ГВ>>>PS.: Я теперь знаю о чём это: «Какова вероятность, что случайно рассыпанные литеры сложатся в «Войну и Мир»?» Это про википедию.
ГВ>[скип] ЗХ>>(c) снова avva
ГВ>Это всё понятно. Но если бы кто-то, не будем говорить кто, не сослался именно на эту статью в википедии в обсуждении вузовского обучения...
[skip]
S>При этом совершенно четко можно различить интуитивное представление о температуре и научное представление о том, что это такое.
Пример насчет температуры малость неудачный, т.к. у людей температура ассоциируется с одним из чуств — осязанием. Люди знакомились с ней на ощупь и понятие интуитивным назвать сложно.
S>Неясно, можно ли описать человеческое мышление при помощи машины Тьюринга.
Можно, если не принимать в расчет наличие "души". Ведь на самом низком уровне это сеть нейронов.
S>Тем не менее Черч делает смелое заявление: человек не в состоянии делать ничего такого, чего не могла бы машина Тьюринга. Невозможно придумать такое понятие вычислимости, которое было бы "мощнее" вычислимости при помощи МТ или общерекурсивных функций. Доказать этот тезис, очевидно, пока что невозможно.
Когда сделают нейронную сетку в несколько миллиардов ячеек и с разрешающей способностью в сотни бит на связь, и докажут эквивалентность этой сетки человеческому мозгу (а вдруг доживем!), то это и будет доказательством.
V>>Если рассуждения не ошибочны, то их можно воспроизвести с помощью машины Тьюринга, разумеется. S>Проблема в том, что никто не знает, что такое "рассуждения". Человек в состоянии воспроизвести машину Тьюринга, или следовать методам формальных доказательств. Однако непонятно, работает ли это в обратную сторону. Лично я уверен в том, что таки да, но удовлетворительного доказательства нет и быть пока не может, ибо методика прямого наблюдения за мышлением не создана.
Разумеется. Логический вычислитель эмулируется нейронной сеткой. Да скорее удасться доказать, что подобный вычислитель с ненулевой вероятностью работает ошибочно.
S>Что существуют неформализуемые, (пока что неформализованные/слабо формализованные) понятия, которые тем не менее не являются глупостями. Пренебрегать ими как раз и есть глупость.
Понятно. Если вернуться к нашим баранам, то бишь к парадигмам, то после размышлений на эту тему мне наиболее правильным показался самый первый вариант его применения. Когда парадигмой в IT было названо все то, что накоплено и используется. И про смену парадигм как про мини-революцию тоже согласен. Затем это понятие стали применять направо и налево, заменили им понятие подход, придали понятию немного широты, но не за счет формального определения, а за счет интуитивного: "способ глядеть на мир". В подобном определении уместно в конце приписать: "to be continued...", ибо само понятие, очевидно, не устаканилось. Не отрицаю, что устаканиться когда-нибудь.
S>На досуге советую подумать над тем, что такое множество, есть ли альтернативный способ определить этот термин (так, чтобы он не слишком противоречил нашему интуитивному представлению о множестве), и можно ли построить другую алгебру множеств, чем та, на котороой зиждется университетский курс.
Здравствуйте, Зверёк Харьковский, Вы писали:
ГВ>>Это всё понятно. Но если бы кто-то, не будем говорить кто, не сослался именно на эту статью в википедии в обсуждении вузовского обучения...
ЗХ>Фразы не понял.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, last_hardcoder, Вы писали:
_>Не сочти за наезд, просто интересно. А ты давно архитектором работаешь?
С 4-го курса, правда на тот момент это так не называлось. Инженер-системотехник это было. Проектировал аппаратуру с выч.-начинкой, структуру радио-сетей, протоколы и даже сценарии пользования.
_>>>Но какой-то процент из них впоследствии дорастут до архитекторов.
V>>С 3-го курса их только архитектуре ПО, сетей, БД, БЗ и т.д. и учат... Значит, ты ведешь речь о выпускниках, которые отучились лишь первые 2 курса.
_>Насколько я себе представляю, учить архитектуре чего-то там и выпускать готовых архитекторов — это разные вещи. Впрочем, возможно, мы вкладываем в понятие "архитектор" несколько разные вещи.
В нас вкладывали по ГОСТам (19-е, 34-е). Т.к. современные ГОСТы по IT малость отстали, в современных выпускников надо вкладывать сразу несколько буржуазных стандартов и процессов . Скепсис — из-за слишком большой большой пестроты и разброса, сейчас нереально ограничиться только лишь UML+RUP (наиболее близкие по духу к нашим ГОСТам, правда не столь полные)
Здравствуйте, vdimas, Вы писали:
VD>>Да, как бы список возражающих то повесомее будет. Да и аргументация есть, а путания в том, что есть/чего нет нету. Так что...
V>А можно в одном месте собрать всю аргументацию? Если действительно охота по-людски закончить спор.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>ИМХО парадигма программирования так же относится к реальному программированию, как форум "Философия программирования" — к тематическим форумам
Понимание и оценка в основном завист от личности.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ещё раз услышу про парадигму программирования — заклеймлю нафиг.
Итак, можно подвести итоги данного топика. Совершенно очевидно, что мы стали свидетелями зарождения новой парадигмы — безпарадигматического (aparadigmatic) программирования. Этот образ мышления отрицает наличие какого-либо прикладного значения как у самого понятия "парадигма программирования", так и у конкретных парадигм. Влияние образа мыслей исследователя на проблему в этой парадигме начисто отрицается, считается что в решении задач играют роль только конкретные методики, а также строгие математические модели.
Основным парадоксом данной парадигмы, конечно же, является невозможность ее признания ее же приверженцами.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
VK>[...] DSL это всего навсего частный случай метапрограммирования. [...] При этом сам DSL конечно может не иметь с метапрограммированием ничего общего
VD>Отлично сформулировано.
Ты меня окончательно запутал. МП, получается, это вообще не парадигма, а примочка, которую можно прикладывать к другим парадигмам, так? Ведь само по себе МП не живет. Мы должны определиться с парадигмой, т.е. с "т.з. на программу" (объктная, функциональная, логическая и т.д.), а МП — это вроде как один из инструментов для достижения цели.
Кстати, тема наличия МП в Пролог не раскрыта. С удовольствием послушаю, какие там встроены ср-ва в сам язык. И если уж речь зашла о точности терминов, то воизбежание жонглирования хотелось бы услышать, почему МП — это парадигма?
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, vdimas, Вы писали:
VD>>>Да, как бы список возражающих то повесомее будет. Да и аргументация есть, а путания в том, что есть/чего нет нету. Так что...
V>>А можно в одном месте собрать всю аргументацию? Если действительно охота по-людски закончить спор.
VD>Попытаюсь: вот эти мысли кажутся мне верными
Несомненно интересный пост по ссылке, но мало относящийся к поставленным вопросам о парадигмах и способе их преподавания. На этом, вроде, не сошлись и мне действиетльно интересно, чтобы противная сторона разложила по полочкам "свое видение" места парадигмы в IT вообще и в преподавании в частности...
А насчет этого поста, есть пара моментов, которые показались мне интересными, но малость непонятными, попытаю автора...
Здравствуйте, Vermicious Knid, Вы писали:
V>>После всего прочитанного о парадигмах и прочего, склоняюсь к мысли что да, еще одна парадигма. Но если быть точным (исходить из того, что парадигма подразумевает определенный набор методов, правил и т.д.), то это не МП-парадигма, это скорее DSL-парадигма. Если интересно, могу попытаться разложить по полочкам.
VK>Не стоит. Я вот с удивлением слежу за ходом дискуссий по-поводу парадигм. Каждый склоняет в общем-то хорошо известные, и имеющие хорошо понятные и четкие определения, термины как ему угодно. Для начала следуют определиться с тем, что каждый конкретный термин все таки означает(в понимании большинства исследователей, занимавшихся исследованиями в той или иной области) и тогда все эти споры станут абсолютно бессмысленными.
Скажу больше. Тогда бы их и не возникало. Одно напрягает: не ясно, кого считать исследователями, а кого — кем-то ещё. Также будет трудно оценить уровень и квалификацию отдельного взятого исследователя. За неимением возможности оценить качественные характеристики того или иного субъекта, следует обратиться к исторически сложившемуся понятийному базису.
А не обращаться к голосованию. Нильса Бора я уже устал поминать.
VK>Метапрограммирование это написание программ, создающих программы и манипулирующих программами же(кодом программ). При этом конкретное средство метапрограммирования не имеет никакого значения, это общая концепция. Т.е. компилятор, транслятор, построитель парсеров и т.д. без сомнения являются метапрограммами в широком смысле этого слова. Но как и любая концепция — метапрограммирование, может иметь совершенно различный уровень реализации и развития в том или ином инструменте.
VK>Такие инструменты как Nemerle поддерживают эту концепцию(парадигму если хотите) на очень высоком уровне.
С этого места поподробнее, пожалуйста. Так концепцию или парадигму?
PS.: Это дополнительный вопрос к тем, что задал vdimas.
Его мета-язык является его же объектным языком и позволяет работать с объектным-кодом в run-time и через подключение пользовательских мета-программ непосредственно к компилятору(который и сам является мета-программой в каком-то смысле) в compile-time.
VK>Есть языки, такие как Prolog, где концепция МП развита на чуть более низком уровне и строго ограниченна рамками run-time. Но тем не менее поддержка МП в этих языках есть, причем во многом более существенная, чем во многих compile-time мета-языках(например C++ templates). На самом деле то же пространство имен System.Reflection это средство метапрограммирования(так как позволяет анализировать и создавать программы).
Ну, осталось поглядеть на Prolog с точки зрения марсиан и найти в нём что-то марсианское. Чего не сделаешь ради доказательства всепроникающей сущности жителей красной планеты!
VK>А теперь пару слов о DSL. DSL это всего навсего частный случай метапрограммирования. То есть создание DSL — это без сомнения метапрограммирование, но вот метапрограммирование это далеко не всегда создание DSL.
Бери круче. Создание любой библиотеки — это тоже метапрограммирование. Скажу ещё больше — любая программа на ЯВУ — это чистой воды метапрограмма!
VK>При этом сам DSL конечно может не иметь с метапрограммированием ничего общего(мета-языком в данном случае является средство непосредственного создания DSL мета-программы).
О, как. Логика зажигательна. Три тезиса:
N1
DSL это всего навсего частный случай метапрограммирования.
N2
...сам DSL конечно может не иметь с метапрограммированием ничего общего
...будучи частным случаем метапрограммирования?
N3
(мета-языком в данном случае является средство непосредственного создания DSL мета-программы)
...ага, значит, язык Yacc — тоже метаязык? И ANTLR-грамматики — тоже метаязыки? И нотация [E]BNF (чуть-чуть обобщим) — тоже метаязык? И притом шаблоны C++ — тоже метаязык?
Так что, присоединяюсь к просьбе vdimas — раскрой тему поподробнее.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
ГВ>>Ещё раз услышу про парадигму программирования — заклеймлю нафиг. S>Итак, можно подвести итоги данного топика. Совершенно очевидно, что мы стали свидетелями зарождения новой парадигмы — безпарадигматического (aparadigmatic) программирования. Этот образ мышления отрицает наличие какого-либо прикладного значения как у самого понятия "парадигма программирования", так и у конкретных парадигм. Влияние образа мыслей исследователя на проблему в этой парадигме начисто отрицается, считается что в решении задач играют роль только конкретные методики, а также строгие математические модели.
S>Основным парадоксом данной парадигмы, конечно же, является невозможность ее признания ее же приверженцами.
Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Ты меня окончательно запутал. МП, получается, это вообще не парадигма, а примочка, которую можно прикладывать к другим парадигмам, так?
Называй как тебе угодно. Хоть примочкой, хоть присоской, хоть парадигмой. Сути это не меняет. Изъясняйся как тебе проще.
V>Ведь само по себе МП не живет.
Конечно не живет, как и любая парадигма. Для того, чтобы МП жило нужно две вещи — метаязык(язык на котором пишется метапрограмма) и объектный язык(язык(и) с которым работает метапрограмма). Все.
Для того, чтобы жило ФП нужны функции как значения. Для ООП нужны объекты. Улавливаешь взаимосвязь?
Другое дело уровень развития этой самой жизни. Скажем на C можно сэмулировать объекты, но уровень такой программы будет значительно ниже аналогичной программы на C++. Тоже самое и с ФП, и с МП. На любом тюринг-полном языке программирования можно написать все что угодно, следовательно он может быть метаязыком. Метаязык правда не обязан быть языком программирования, как и объектный язык, но это вырожденные случаи и мне они малоинтересны.
V> Мы должны определиться с парадигмой, т.е. с "т.з. на программу" (объктная, функциональная, логическая и т.д.), V>а МП — это вроде как один из инструментов для достижения цели.
МП это не инструмент. МП это принцип, концепция, парадигма, идея, все что угодно, но не инструмент. Инструмент для достижения цели в контексте МП это метапрограммы и(или) программы на объектном языке.
V>Кстати, тема наличия МП в Пролог не раскрыта. С удовольствием послушаю, какие там встроены ср-ва в сам язык.
В первую очередь с точки зрения любой вменяемой Пролог-системы код это данные. Эти данные можно создавать, изменять, производить их декомпозицию. В общем rtfm. Здесь кстати приводились небольшие примеры(1
) использования этих ср-в.
V>И если уж речь зашла о точности терминов, то воизбежание жонглирования хотелось бы услышать, почему МП — это парадигма?
А почему бы и нет? Я кстати не говорил о точности терминов, я говорил о четкости определений. Это немножко разные вещи. Определение метапрограммирования(как чего угодно) я представляю себе очень четко, чего и желаю всем окружающим.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет.
В ответ на столь весомую ссылку могу порекомендовать только http://lib.ru/LITRA/KRYLOW/basni.txt#6. До просветления.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>А не обращаться к голосованию. Нильса Бора я уже устал поминать.
Нильс Бор это offtopic.
ГВ>С этого места поподробнее, пожалуйста. Так концепцию или парадигму?
Это неважно.
ГВ>Ну, осталось поглядеть на Prolog с точки зрения марсиан и найти в нём что-то марсианское. Чего не сделаешь ради доказательства всепроникающей сущности жителей красной планеты!
Осталось тебе прочитать хотя бы одну приличную книгу по Прологу и присоединиться к жителям красной планеты. Рекомендую книгу И. Братко.
VK>>А теперь пару слов о DSL. DSL это всего навсего частный случай метапрограммирования. То есть создание DSL — это без сомнения метапрограммирование, но вот метапрограммирование это далеко не всегда создание DSL.
ГВ>Бери круче. Создание любой библиотеки — это тоже метапрограммирование. Скажу ещё больше — любая программа на ЯВУ — это чистой воды метапрограмма!
Оба утверждения не верны.
1. Создание библиотеки не изменяет и не создает язык, так как библиотечный код и код ее использования обычно придерживается правил объектного языка.
2. Программа на ЯВУ только в том случае является метапрограммой если ее предназначение создание и/или манипуляция программ на объектном языке.
VK>>При этом сам DSL конечно может не иметь с метапрограммированием ничего общего(мета-языком в данном случае является средство непосредственного создания DSL мета-программы).
ГВ>О, как. Логика зажигательна. Три тезиса:
Хорошо когда она вообще есть. Судя по названию этой темы логики в этом мире все меньше и меньше. Если есть хотя бы зажигательная это уже замечательно.
ГВ>N1 ГВ>
ГВ>создание DSL это всего навсего частный случай метапрограммирования.
ГВ>N2 ГВ>
ГВ>...сам DSL конечно может не иметь с метапрограммированием ничего общего
Нет, будучи частным случаем DSL. Простой пример. Мы пишем DSL для поиска марсиан. Компилятор/транслятор этого DSL и есть метапрограмма. Сам же DSL не имеет никакого отношения к метапрограммированию, т.к. является всего навсего объектным языком.
ГВ>...ага, значит, язык Yacc — тоже метаязык? И ANTLR-грамматики — тоже метаязыки? И нотация [E]BNF (чуть-чуть обобщим) — тоже метаязык?
Нет. И Yacc, и ANTLR, и нотация EBNF это примеры классических объектных языков. Метаязык — это любой язык программирования, на котором можно написать метапрограмму. Метапрограммами в данном случае являются генераторы парсеров.
ГВ>И притом шаблоны C++ — тоже метаязык?
А вот шаблоны C++ являются метаязыком времени компиляции. Но только в том смысле, что на них пишут метапрограммы времени компиляции. Если бы этого не происходило, то они не были бы метаязыком.
ГВ>Так что, присоединяюсь к просьбе vdimas — раскрой тему поподробнее.
Я бы скорее предпочел ее закрыть. Тем более, что раскрытие этой темы абсолютно бесполезное занятие. К тому же есть источники, которые раскрывают тему значительно лучше чем я. Ищите и обрящите.
Здравствуйте, Sinclair, Вы писали:
ГВ>>Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет. S>В ответ на столь весомую ссылку могу порекомендовать только http://lib.ru/LITRA/KRYLOW/basni.txt#6. До просветления.
Ну ладно. Как просветлишься — заходи.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Vermicious Knid, Вы писали:
ГВ>>С этого места поподробнее, пожалуйста. Так концепцию или парадигму? VK>Это неважно.
Не понял. Что не важно? Не важно — сахар или сахарница? Хм.
ГВ>>Ну, осталось поглядеть на Prolog с точки зрения марсиан и найти в нём что-то марсианское. Чего не сделаешь ради доказательства всепроникающей сущности жителей красной планеты! VK>Осталось тебе прочитать хотя бы одну приличную книгу по Прологу и присоединиться к жителям красной планеты. Рекомендую книгу И. Братко.
Угу, спасибо, уже читал. Даже транслятор пролога написал. Впрочем, неважно — проехали.
Остальное уже интересно:
VK>>>А теперь пару слов о DSL. DSL это всего навсего частный случай метапрограммирования. То есть создание DSL — это без сомнения метапрограммирование, но вот метапрограммирование это далеко не всегда создание DSL. ГВ>>Бери круче. Создание любой библиотеки — это тоже метапрограммирование. Скажу ещё больше — любая программа на ЯВУ — это чистой воды метапрограмма! VK>Оба утверждения не верны. VK>1. Создание библиотеки не изменяет и не создает язык, так как библиотечный код и код ее использования обычно придерживается правил объектного языка.
VK>2. Программа на ЯВУ только в том случае является метапрограммой если ее предназначение создание и/или манипуляция программ на объектном языке.
IDE, получается, тоже метапрограмма? Даже ещё проще: любой текстовый редактор — он тоже метапрограмма?
VK>>>При этом сам DSL конечно может не иметь с метапрограммированием ничего общего(мета-языком в данном случае является средство непосредственного создания DSL мета-программы). ГВ>>О, как. Логика зажигательна. Три тезиса: VK>Хорошо когда она вообще есть. Судя по названию этой темы логики в этом мире все меньше и меньше. Если есть хотя бы зажигательная это уже замечательно.
Ага. Мне тоже нравится.
Поджал цитату для компактности: ГВ>>
ГВ>>N1
VK>>создание DSL это всего навсего частный случай метапрограммирования.
ГВ>>N2
VK>>...сам DSL конечно может не иметь с метапрограммированием ничего общего
ГВ>>...будучи частным случаем метапрограммирования?
VK>Нет, будучи частным случаем DSL. Простой пример. Мы пишем DSL для поиска марсиан. Компилятор/транслятор этого DSL и есть метапрограмма. Сам же DSL не имеет никакого отношения к метапрограммированию, т.к. является всего навсего объектным языком.
Так... Значит, компилятор, это, всё таки, метапрограмма. Отметим.
ГВ>>...ага, значит, язык Yacc — тоже метаязык? И ANTLR-грамматики — тоже метаязыки? И нотация [E]BNF (чуть-чуть обобщим) — тоже метаязык? VK>Нет. И Yacc, и ANTLR, и нотация EBNF это примеры классических объектных языков. Метаязык — это любой язык программирования, на котором можно написать метапрограмму. Метапрограммами в данном случае являются генераторы парсеров.
Генератор парсеров Yacc написан на C. Следовательно, C — метаязык?
ГВ>>И притом шаблоны C++ — тоже метаязык? VK>А вот шаблоны C++ являются метаязыком времени компиляции. Но только в том смысле, что на них пишут метапрограммы времени компиляции. Если бы этого не происходило, то они не были бы метаязыком.
Что-то ничего не понимаю. Шаблоны C++ являются частью C++. Следовательно они — часть объектного языка. Следовательно, метаязыком не могут быть, поскольку ты сам утверждаешь, что:
VK>1. Создание библиотеки не изменяет и не создает язык, так как библиотечный код и код ее использования обычно придерживается правил объектного языка.
VK>2. Программа на ЯВУ только в том случае является метапрограммой если ее предназначение создание и/или манипуляция программ на объектном языке.
То есть, либо нужно признать, что шаблоны C++ не являются метаязыком, либо же, что создание любой библиотеки (оспариваемый тобой тезис) — тоже метапрограммирование.
Поясню: если шаблоны являются метаязыком, тогда метаязык может быть частью объектного языка. Тогда, в общем-то, неважно, какой именно частью он является, поскольку сам объектный язык — не меняется. И можно обобщать до вида: "любая библиотека есть метапрограмма". Либо же библиотека не является метапрограммой, поскольку написана на объектном языке, и тогда шаблоны, будучи частью C++, не являются метапрограммой. Как и макросы Lisp, Nemerle и т.п., поскольку написаны они всё на тех же Lisp, Nemerle и т.п.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ну ладно. Как просветлишься — заходи.
Да я-то — уже. Вот на первых курсах когда учился, помнится тоже нигилистически всю философию записывал в категорию "страдания фигней". А потом как-то начал понимать, что без нее невозможно считать себя человеком разумным. Оказывается, это не просто деление ноля на ноль, а вполне полезная и необходимая вещь. Не все знания человечества удается уложить в рамки "наборов методов и моделей". Глупо пренебрегать остальными знаниями. Я все же рекомендую помедитировать на досуге над тем, что столь неприятное тебе определение "парадигмы программирования" из википедии — правильное. Я вижу, как вы на пару с вдимасом ухитряетесь читать в вики только знакомые буквы. Чуть что-то выходит за рамки ваших представлений — сразу игнорируете. Дубы видишь, сосны видишь, а лес — не видишь. Не переживай — лесу пофигу, увидел ты его или нет
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Vermicious Knid, Вы писали:
V>>Кстати, тема наличия МП в Пролог не раскрыта. С удовольствием послушаю, какие там встроены ср-ва в сам язык. VK>В первую очередь с точки зрения любой вменяемой Пролог-системы код это данные.
Насколько я помню, там факты и правила, цели.
VK>Эти данные можно создавать, изменять, производить их декомпозицию. В общем rtfm. Здесь кстати приводились небольшие примеры(1
Угу, насчет фактов — не спорю, но вот с правилами и целями в тех примерах... Я когда-то на Z-80 баловался тем, что писал короткие программы, которые впереди себя писали код в памяти и исполняли его, тот писал новый код в свою очередь и т.д. Степень удобства приведенных примеров как раз соответствует тому убийственному времяпрепровождению. К тому же завязано на диалект (specialize_non_destructive и пр.). Таким же образом и brainfuck вполне себе МП-ориентированный язык, там исходник программы вполне легко восстанавливается из "внутреннего" представления .
VK>А почему бы и нет? Я кстати не говорил о точности терминов, я говорил о четкости определений. Это немножко разные вещи. Определение метапрограммирования(как чего угодно) я представляю себе очень четко, чего и желаю всем окружающим.
Я, например, неоднократно наблюдал описанный тобой подход в реализациях вещей, изначально присущих динамической типизации, в попытках сделать аналогичное в статически типизированном виде. Например, мета-генерирование всяких паттернов для языков типа Java/C#. Но что характерно, на динамических языках (даже на VBA с поздним связыванием) надобность во многих паттернах пропадает, то бишь не нужны ни интерфейсы, ни абстрактные фабрики, если мы можем обеспечить работоспособность программы, пользуясь только поздним связыванием. Один и тот же алгоритм прекрасно работает для различных объектов, никак не связанных м/у собой никаким наследованием или общими интерфейсами, достаточно наличие подходящих сигнатур методов и св-в. Более того, описанная ситуация — это пока единственная из массово обнаруженных/увиденных мною способов применения МП (!!!), другие применения я наблюдал лишь в "играбельно-познавательном" виде. Так может, налицо банальное применение инструмента не по месту? Даже в RFD от IT рантаймкодогенерация применяется от того, что ср-ва стандартной рефлексии ни к черту по быстродействию.
Вот задачка, где МП могло бы помочь, но я не представляю, насколько большой это даст эффект. У меня есть система генерации лексеров и парсеров. Сначала я баловался на С++, теперь попробовал на C#. Никаких динамических вещей и никакой рефлексии я толком не использую и кодогенерацией тоже не пользуюсь, однако посмотри, это МП? :
static NTerm S = new NTerm(); // fake start symbolstatic SelectDef DecDigit = "0123456789";
static Lexema N = DecDigit + ~(DecDigit);
static Grammar grammar = new Grammar (
typeof(Program), // hosted static type for all our rules
S, // start symbol
S <= S + '+' + S, // rules ...
S <= S + '-' + S,
S <= '(' + S + ')',
S <= N);
(на С++ описание еще короче и приближенее к идеалу).
И далее в том же духе...
Всего-то переопределил несколько операторов. В С++, например, нет ни одной более-менее большой программы, где бы не создавались свои объекты и не описывались ОПЕРАЦИИ над ними в сокращенном виде — в виде операторов. По мне — это одно и тоже. Однако, следуя твоей логике, если мы используем операции в виде: obj1.Add(obj2), то это ООП, а если краткости и удобства ради тоже самое записали, как obj1+obj2, то видите ли сразу же вступили на новую ступень, и соприкоснулись с МП. А по мне — детали синтаксиса.
Я понимаю, что "интуитивно" ты весьма "четко" чуствуешь, где начинается МП. Но мне бы тоже хотелось развить в себе подобное чуство.
Заметь, примеры как раз из "приграничных" областей, а где, собственно, сама граница?
Здравствуйте, Sinclair, Вы писали:
S>Да я-то — уже. Вот на первых курсах когда учился, помнится тоже нигилистически всю философию записывал в категорию "страдания фигней". А потом как-то начал понимать, что без нее невозможно считать себя человеком разумным. Оказывается, это не просто деление ноля на ноль, а вполне полезная и необходимая вещь.
Как раз философами были сформулированы некорректные приёмы: апелляция к личности, апелляция к коллективу, апелляция к массовости, подмена тезиса, софизмы и прочее. Так что, философия — достойная наука.
S>Не все знания человечества удается уложить в рамки "наборов методов и моделей". Глупо пренебрегать остальными знаниями.
Цена знаний, которые нельзя изложить в виде методов, моделей, приёмов и описания каких-то объективных (не субъективных!) явлений, мягко говоря, невелика.
S>Я все же рекомендую помедитировать на досуге над тем, что столь неприятное тебе определение "парадигмы программирования" из википедии — правильное.
Ага... вот так прям, курсивом, правильное? Это, наверное, какая-то необычная правильность.
S>Я вижу, как вы на пару с вдимасом ухитряетесь читать в вики только знакомые буквы. Чуть что-то выходит за рамки ваших представлений — сразу игнорируете.
И ещё о субъективности. Не RSDN-еры первые, кто пытается нивелировать суждение оппонента, назвав его "заведомо субъективным". Это всё уже давно известно, проходит по графе "эскапизм". Ну и сугубо логическое противоречие в такой позиции есть. Расскажу, если интересно будет.
S>Дубы видишь, сосны видишь, а лес — не видишь. Не переживай — лесу пофигу, увидел ты его или нет
PS.: Ты уверен в правильности метафоры про лес? Я тут, давеча, не случайно сахар и сахарницу упомянул.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
Оффтоп: а вот электромагнитное излучение какую природу имеет — корпускулярную или волновую?
Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Оффтоп: а вот электромагнитное излучение какую природу имеет — корпускулярную или волновую? S>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
Некорректная аналогия. Соответственно, некорректен и вывод.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
VK>2. Программа на ЯВУ только в том случае является метапрограммой если ее предназначение создание и/или манипуляция программ на объектном языке.
А если я по данным создаю табличный автомат, который, разумеется, эквивалентен некоей программе... Но вот мне вполне подходит автомат или даже несколько оных взаимодействующих. Программа из данных строящая минимизированный граф переходов — это тоже МП? А где объектный язык, над которым идут МП-манипуляции? Внутреннее представление графа состояний и логики формирования выходных сигналов — это он, объектный язык?
VK>>>При этом сам DSL конечно может не иметь с метапрограммированием ничего общего(мета-языком в данном случае является средство непосредственного создания DSL мета-программы).
VK>Нет, будучи частным случаем DSL. Простой пример. Мы пишем DSL для поиска марсиан. Компилятор/транслятор этого DSL и есть метапрограмма.
Кажется, я понял, любой компилятор — метапрограмма...
Ан стоп — не любой!!! А только тот, который МЫ написали. Если компилятор писали не мы, то это просто компилятор. Если же мы сами взяли шашку в руки, не дожидаясь помощи со стороны, и махнули ею — то вот вам МП в самом четком виде...
Слушай, ей богу, не с того края...
ГВ>>...ага, значит, язык Yacc — тоже метаязык? И ANTLR-грамматики — тоже метаязыки? И нотация [E]BNF (чуть-чуть обобщим) — тоже метаязык? VK>Нет. И Yacc, и ANTLR, и нотация EBNF это примеры классических объектных языков. Метаязык — это любой язык программирования, на котором можно написать метапрограмму. Метапрограммами в данном случае являются генераторы парсеров.
Любой интерпретатор/компилятор в подобном определении и приведенных примерах — МП программа. Дожили, блин.
Знаешь как это правильно называется? Вот все то, о чем ты говоришь, вместе с твоим МП до кучи? Это "инструментальные средства". Да, те самые. Бывают прикладные программы, а бывают инструментальные. И "выразительность" того же С++ — суть качество инструмента, которое заключается в богатстве ср-в инструмента, типа супер-универсальный чемоданчик опытного телемастера. И вот мне пока плохо удается из общего класса инструментальных ср-в выделить именно мета-программирование. Такое ощущение, что значение термина зависит от того, кто применяет/разрабатывает эти инструментальные ср-ва. Разве так бывает?
ГВ>>И притом шаблоны C++ — тоже метаязык? VK>А вот шаблоны C++ являются метаязыком времени компиляции. Но только в том смысле, что на них пишут метапрограммы времени компиляции. Если бы этого не происходило, то они не были бы метаязыком.
По определению код на шаблонах — это описание кодогенерации для компилятора. Даже если это шаблон элементарной ф-ии умножения на 2. Попробуй провести границу по части использования шаблонов, где у нас МЕТА-использование, а где вовсе не мета.
VK>Я бы скорее предпочел ее закрыть. Тем более, что раскрытие этой темы абсолютно бесполезное занятие.
Разумеется сорри, за назойливость и болтливость. Но вы тут который день подряд задаете интересные уму задачки. При попытке осмыслить все, что я услышал здесь за последние дни, я натыкаюсь только на несоответствия. И я вовсе не стебусь. Еще со школы психовал, когда чего-то вдруг не сразу понимал. Сейчас не психую, ибо допускаю, что вряд ли и пойму, по крайней мере в подобных трактовках. То, что мы с Геной якобы спорим — прикрытие ( ), на самом деле нещадно эксплуатируем собеседников, в надежде, что те дадут еще хотя бы крупицу новой информации... Мало ли, вдруг осталась буквально нажать каплю и наши "чакры" вдруг откроются...
VK>К тому же есть источники, которые раскрывают тему значительно лучше чем я. Ищите и обрящите.
Да как бы источники трудности не вызывают. Все что описано уже лет так дцать успешно используется. Просто, пришло время каких-то новых терминологий, с потолка взятых классификаций, свежих дуновений и прочей пошлости (типа упомянутого, классификация по признаку: "кто написал компилятор?"). Охота все это гладко так наложить на собственные знания/представления без разрывов первого рода, а то, понимаешь ли, как потом такими знаниями пользоваться, если без досконального понимания? IT не та область знаний, где требуется хоть что-либо принимать на веру.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Как раз философами были сформулированы некорректные приёмы: апелляция к личности, апелляция к коллективу, апелляция к массовости, подмена тезиса, софизмы и прочее. Так что, философия — достойная наука.
Очень может быть. Вообще-то эти приемы относятся скорее к риторике, чем к собственно философии. Но я не в курсе, кто именно впервые их сформулировал. Знаю лишь, что пользуются ими демагоги.
S>>Не все знания человечества удается уложить в рамки "наборов методов и моделей". Глупо пренебрегать остальными знаниями. ГВ>Цена знаний, которые нельзя изложить в виде методов, моделей, приёмов и описания каких-то объективных (не субъективных!) явлений, мягко говоря, невелика.
Да я понял эту позицию. Не надо ее повторять в каждом сообщении. Я просто с ней абсолютно не согласен. Но поскольку понятие "цена знаний" имеет четко выраженную субъективную сущность, то спорить о нем бесполезно. Так что останемся при своих: я со своей выской оценкой слабоформализованных знаний, вы — со своей низкой. Не надо только навязывать всем свою оценку.
ГВ>Ага... вот так прям, курсивом, правильное? Это, наверное, какая-то необычная правильность.
Курсив — это выделение. Интонация.
ГВ>И ещё о субъективности. Не RSDN-еры первые, кто пытается нивелировать суждение оппонента, назвав его "заведомо субъективным".
НИВЕЛИРОВАТЬ, рую, руешь; анный; сов. и несов., что.
1. Определить (лять) специальными приборами высоту точек земной поверхности относительно нек-рой выбранной точки или над уровнем моря (спец.).
2. перен. Уравнивая, сгладить (аживать), уничтожить (жать) различия между кем-чемн. (книжн.). Н. особенности.
| сущ. нивелирование, я, ср. и нивелировка, и, ж.
| прил. нивелировочный, ая, ое (к 1 знач.).
Можно уточнить, между чем именно RSDN-еры пытаются "Уравнивая, сгладить, уничтожить различия"?
ГВ>Это всё уже давно известно, проходит по графе "эскапизм".
ЭСКАПИЗМ (ескейпизм) (от англ. escape бежать, спастись), стремление личности уйти от действительности в мир иллюзий, фантазии в ситуации кризиса, бессилия, отчуждения.
Странно. Это каким же это образом мы стремимся уйти в мир иллюзий? ГВ>Ну и сугубо логическое противоречие в такой позиции есть. Расскажу, если интересно будет.
Ну, расскажи.
S>>Дубы видишь, сосны видишь, а лес — не видишь. Не переживай — лесу пофигу, увидел ты его или нет ГВ>PS.: Ты уверен в правильности метафоры про лес? Я тут, давеча, не случайно сахар и сахарницу упомянул.
Вполне уверен.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, vdimas, Вы писали:
V>Любой интерпретатор/компилятор в подобном определении и приведенных примерах — МП программа. Дожили, блин.
Собственно, это — классические примеры мета-программ.
V>Знаешь как это правильно называется? Вот все то, о чем ты говоришь, вместе с твоим МП до кучи? Это "инструментальные средства". Да, те самые.
Молоток — тоже "инструментальное средство". Но это не мешает ему быть "орудием труда" и "средством забивания гвоздей".
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Геннадий Васильев, Вы писали: S>Оффтоп: а вот электромагнитное излучение какую природу имеет — корпускулярную или волновую?
В конечном итоге волновую. Думали, что корпускулярную, но пригляделись.... Ан нет! Все то же старое знакомое волновое излучение. Корпускулярность не прокатила
Потом пришло новое поколение, обнаружило совсем короткие волны, и малюсенькие кванты, пошла гулять новая теория... до определенного знака после запятой... А потом пригляделись — ан нет, все равно волновое.
Так раза 3 было, теперь уже никто не рыпается.
S>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
А парадигмы друг другу противоречат? Не торопись отвечать, почитай свои посты в этом топе
Здравствуйте, vdimas, Вы писали:
V>В конечном итоге волновую. Думали, что корпускулярную, но пригляделись.... Ан нет! Все то же старое знакомое волновое излучение. Корпускулярность не прокатила
Дуальную, дружище, дуальную. Есть черты и того и другого. V>Так раза 3 было, теперь уже никто не рыпается.
Да неважно, сколько раз было. Теперь просто все поняли, что "волновой" и "корпускулярный" друг другу не противоречат.
S>>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
V>А парадигмы друг другу противоречат? Не торопись отвечать, почитай свои посты в этом топе
Видишь ли в чем дело, если перечитать определение из википедии, которое вам с Геннадием так не нравится, то становится понятно, что противоречия между парадигмами объективного характера не имеют. Ну вот берем, к примеру, ООП. Там есть объекты, которые совершенно недвусмысленно изменяют свое состояние под действием посылаемых сообщений. Казалось бы, налицо явное противоречие с ФП, где никакого состояния нет и быть не может. Однако стоит ввести функцию step, которая отображает описание графа объектов в момент t1 в описание графа объектов в момент t2, как тут же оказывается, что все замечательно — чистое ФП безо всяких побочных эффектов. При этом программа не изменилась — изменился наш взгляд на неё.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
V>>Любой интерпретатор/компилятор в подобном определении и приведенных примерах — МП программа. Дожили, блин. Т>Собственно, это — классические примеры мета-программ.
Ну дык, это и говорим, что использование любого компилятора — это применение МП.
Да я его всегда применяю, получается, особенно раньше — на Фортране и ассемблере.
V>>Знаешь как это правильно называется? Вот все то, о чем ты говоришь, вместе с твоим МП до кучи? Это "инструментальные средства". Да, те самые. Т>Молоток — тоже "инструментальное средство". Но это не мешает ему быть "орудием труда" и "средством забивания гвоздей".
Действительно, "средство для забивания гвоздей" все же звучит куда как определеннее, чем "средство для гвоздей".
Снипет в VS2005 — это МП?
А ведь как подходит под определение, загляденье просто
А рефакторинг???... Неужели не МП? Ни для юзера ни для разаботчика? Ну ты поглянь, действительно, не МП. В обоих случаях это и не ср-во и не видение. Для первого — инструмент, очень далекий от семантики задачи, для второго — целевая программа, но при этом вовсе не инструмент. Достаточно наложить определение не подумав и легко ошибиться...
Здравствуйте, Sinclair, Вы писали:
V>>Так раза 3 было, теперь уже никто не рыпается. S>Да неважно, сколько раз было. Теперь просто все поняли, что "волновой" и "корпускулярный" друг другу не противоречат.
Да, а я думал это законы сохранения энергии/импульса друг другу не противоречат (или более общие из ТО)
И с дуальностью не все так просто. Природу сил, действующих на сверхмалых расстояниях так и не поняли, гравитацию — тоже. Предполагают, что это матирии не из нашего электромагнитного эфира-проводника, но что именно — не знают до сих пор. Как приближенную (!!!) модель использует сочетание и волновой и корпускулярной.
S>>>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
V>>А парадигмы друг другу противоречат? Не торопись отвечать, почитай свои посты в этом топе S>Видишь ли в чем дело, если перечитать определение из википедии, которое вам с Геннадием так не нравится, то становится понятно, что противоречия между парадигмами объективного характера не имеют. Ну вот берем, к примеру, ООП. Там есть объекты, которые совершенно недвусмысленно изменяют свое состояние под действием посылаемых сообщений. Казалось бы, налицо явное противоречие с ФП, где никакого состояния нет и быть не может. Однако стоит ввести функцию step, которая отображает описание графа объектов в момент t1 в описание графа объектов в момент t2, как тут же оказывается, что все замечательно — чистое ФП безо всяких побочных эффектов. При этом программа не изменилась — изменился наш взгляд на неё.
Ха, красивая сказка. Стоит посмотреть на эту ф-ию, которая будет, к тому же, в чисто функциональном стиле.
На самом деле парадигмы противоречат друг другу из своего определения, даже из всех своих определений тут озвучиваемых. Если ты используешь СОЧЕТАНИЕ, например, двух парадигм, то вот у тебя уже третья. Ни первая, не вторая, а именно третья, ибо ты взял часть от туда, часть от сюда, но забыл, что парадигма только тогда работает со всем своим накопленным аппаратом практик, когда мы не только методологию парадигмы используем, но так же соблюдаем все ограничения (!!!).
Здравствуйте, vdimas, Вы писали:
V>И с дуальностью не все так просто. Природу сил, действующих на сверхмалых расстояниях так и не поняли, гравитацию — тоже.
Гм. Предлагаю этот высоконаучный оффтопик прямо не сходя с места свернуть. А то у меня возникнет искушение спросить "а что, природу ЭМ-взаимодействия понять, в отличие от этих двух сил удалось?".
V>Предполагают, что это матирии не из нашего электромагнитного эфира-проводника, но что именно — не знают до сих пор. Как приближенную (!!!) модель использует сочетание и волновой и корпускулярной.
Ключ к успеху — понять, что речь идет не о моделях, а о точках зрения.
V>Ха, красивая сказка.
Эта красивая сказка имеет строгое математическое обоснование. V>Стоит посмотреть на эту ф-ию, которая будет, к тому же, в чисто функциональном стиле.
А чего на нее смотреть? Это все равно как требовать выписать формулки для всех компонентов разложения Фурье у ряда из 1024 элементов. Можно и выписать. Но зачем?
V>На самом деле парадигмы противоречат друг другу из своего определения, даже из всех своих определений тут озвучиваемых.
Нет, не противоречат. V>Если ты используешь СОЧЕТАНИЕ, например, двух парадигм, то вот у тебя уже третья.
Парадигму нельзя "использовать". V>Ни первая, не вторая, а именно третья, ибо ты взял часть от туда, часть от сюда, но забыл, что парадигма только тогда работает со всем своим накопленным аппаратом практик, когда мы не только методологию парадигмы используем, но так же соблюдаем все ограничения (!!!).
А можно спросить, что значит "парадигма работает"?
С учетом того, что наиболее близким неформальным синонимом термина "парадигма" является "точка зрения", мне непонятно, каким образом парадигма "перестанет работать".
Если бы парадигма была эквивалентна сумме методик и моделей, то еще можно было бы об этом рассуждать. Но это не так, и именно в непонимании этого кроется основная ваша ошибка.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, vdimas, Вы писали:
V>Ну дык, это и говорим, что использование любого компилятора — это применение МП. V>Да я его всегда применяю, получается, особенно раньше — на Фортране и ассемблере.
Ага, а наша секретарша применяет ООП, потому что использует Word и Косынку, каковые суть (ОО) программы.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Например, задача построения транслятора обычно делится на несколько подзадач: анализ и разбор входного текста, построение промежуточного кода, построение объектного кода. ... Иде здесь парадигма? Чистая математика с экономикой! А если какая-то "парадигма" и есть, то какая именно?
А парсер формирует дерево, или возвращает его как значение? А состояние это объект или функция? Чтобы спроектировать парсер, тебе нужно выбрать, макароны goto и глобальные переменные, процедуры и структуры, "все — объект" или функциональную композицию.
ГВ>Фокус в том, что "новая парадигма" — это просто набор слов без шаблонов/методик/принципов. А при познании последних "новая парадигма" снова — просто набор слов.
Является ли лес лесом, или набором рядом стоящих деревьев? А без деревьев это просто слово. Правда, конкретный набор деревьев не важен одни можно заменить на другие, а он все равно останется лесом. Ну так что тут главное, деревья? Или (неконкретное, неформализуемое) понятие леса?
Если ты соберешь произвольный набор методик, принципов и примеров, ты новую парадигму не получишь. И что еще самое удивительное, почти любой принцип можно нарушить и любой метод заменить, но новой парадигмы при этом не появится. За составляющими парадигмы скрывается идея, которую и полезно знать (для повышения качества мышления ). Смысл в том, что составляющие следуют из идеи, а не наоборот. Методики лишь реализуют использование парадигмы, принципы ставят рамки, примеры демонстрируют её применение, но отнюдь не формируют её. Поняв идею, тебе уже не обязательно помнить принципы, ты даже будешь понимать, что иногда их можно и нужно нарушать. Тогда как можно знать принципы, и быть совершенно не в курсе, почему они именно в таком комплекте и зачем они.
ГВ>Мне кажется, ты переоцениваешь значимость агрегативных понятий для синтеза решений. Пока они не конкретизированы методами и прочими сугубо конкретными вещами их ценность близка к нулю.
Не понял, причём тут синтез решений. Я когда о синтезе решений говорил, я описывал качество мышления, и что оно не получается выучиванием большего числа готовых решений.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, vdimas, Вы писали:
V>>И с дуальностью не все так просто. Природу сил, действующих на сверхмалых расстояниях так и не поняли, гравитацию — тоже. S>Гм. Предлагаю этот высоконаучный оффтопик прямо не сходя с места свернуть. А то у меня возникнет искушение спросить "а что, природу ЭМ-взаимодействия понять, в отличие от этих двух сил удалось?".
Удалось зафиксировать и разобрать по полочкам.
V>>Ха, красивая сказка. S>Эта красивая сказка имеет строгое математическое обоснование. V>>Стоит посмотреть на эту ф-ию, которая будет, к тому же, в чисто функциональном стиле. S>А чего на нее смотреть? Это все равно как требовать выписать формулки для всех компонентов разложения Фурье у ряда из 1024 элементов. Можно и выписать. Но зачем?
Хороший вопрос. И в нужном месте стоит. Я как раз в топик вломился примерно с тем же вопросом в начале.
V>>На самом деле парадигмы противоречат друг другу из своего определения, даже из всех своих определений тут озвучиваемых. S>Нет, не противоречат. V>>Если ты используешь СОЧЕТАНИЕ, например, двух парадигм, то вот у тебя уже третья. S>Парадигму нельзя "использовать".
Следовать, Использовать, Придерживаться... Или я опять не правильно ПОНЯЛ?
V>>Ни первая, не вторая, а именно третья, ибо ты взял часть от туда, часть от сюда, но забыл, что парадигма только тогда работает со всем своим накопленным аппаратом практик, когда мы не только методологию парадигмы используем, но так же соблюдаем все ограничения (!!!). S>А можно спросить, что значит "парадигма работает"?
То бишь приносит ожидаемые бенефиты, ради которых на нее родимую молятся. Для ФП — доказуемость корректности, например.
S>С учетом того, что наиболее близким неформальным синонимом термина "парадигма" является "точка зрения", мне непонятно, каким образом парадигма "перестанет работать".
Тогда go опять в вашу википедию, хотя бы. Я про точки зрения размышлял здесь
, там упор на то, что этих точек вовсе не бесконечное множество. Ведь парадигма — это "образец", накопленные практики с т.з. IT, и "способы видения" и "точки зрения" весьма дискретны.
Ты вдумайся, ту или иную точку зрения ты выбираешь ДЛЯ того, чтобы воспользоваться неким аппаратом/практиками (в принципе, ты как раз ВЫБИРАЕШЬ одну из практик), а не наоборот, типа принял произвольную точку зрения, и пытаешься непонятные ср-вами ее реализовать. Если последнее, то ты — изобретатель этих парадигм. Если получишь положительный результат на этом поприще — мой тебе будет респект.
S>Если бы парадигма была эквивалентна сумме методик и моделей, то еще можно было бы об этом рассуждать. Но это не так, и именно в непонимании этого кроется основная ваша ошибка.
ЁПРСТ. Приплыли. Ты забыл еще упомянуть обязательные ограничения, помимо методик и моделей (или "практик" — больше импонирует как обобщающий термин). Без которых парадигма — не парадигма, а просто некий "свой путь". Произвольный выбранный путь решения НЕ является парадигмой в общем случае, до тех пор пока не выкристаллизуется, не накопит практики (методики, условия применимости, к ним же ограничения, оценочный аппарат, для которого указанные ограничения — суть условия существования и т.д.). И только обрастя всем этим, заслужив право быть "образцом" для подражания, очередная точка зрения может потянуть на "парадигму".
Из-за этой пресловутой "точки зрения" вся неразбериха и возникла, и ты пытаешься ее продолжить. Действительно, устоявшаяся парадигма тянет на определенную точку зрения на проблему. Но, как бы не стоит забывать, что само словосочетание "точка зрения" используется в переносном смысле (не обратил внимание? ты же не бегаешь из угла в угол в поисках приемлимой точки видения). Раскрой переносный смысл на истинный и приблизишься к смыслу термина.
Здравствуйте, Трурль, Вы писали:
V>>Ну дык, это и говорим, что использование любого компилятора — это применение МП. V>>Да я его всегда применяю, получается, особенно раньше — на Фортране и ассемблере.
Т>Ага, а наша секретарша применяет ООП, потому что использует Word и Косынку, каковые суть (ОО) программы.
Начинаешь просекать
Она еще МП использует, в Ворде макросы есть. Вот запишет она рекордером последовательность действий, и хана — по уши в МП. А что? Профессиональное владение программой, с целью генерирования новых программ...
Здравствуйте, Геннадий Васильев, Вы писали:
S>>Оффтоп: а вот электромагнитное излучение какую природу имеет — корпускулярную или волновую? S>>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит.
ГВ>Некорректная аналогия. Соответственно, некорректен и вывод.
А где ты увидил вывод на базе анлогии? Ты за логикой высказываний следишь вообще?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
V>Несомненно интересный пост по ссылке, но мало относящийся к поставленным вопросам о парадигмах и способе их преподавания...
За время этой беседы у меня появилось устойчивое ощущение, что оппоненты не шарят в поросе. Отсюда предлагаю им все же изучить имеющиеся работы, а потом продолжить разговор если будет желание.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет.
Думал забанить тебя за косвенное осорбление (которое я считаю большим нарушением нежели приямое, так как оно еще и подло), но передумал...
Прочтя твою подпись еще раз:
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
я понял потоенный смысл ссылки. Ты говоришь о том что наш Синклер — это вселенная. С этим трудно поспорить хотя я тоже не уверен на счет бесконечности вселенной.
Так что банить тебя не буду. Позорься дальше.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>>Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет. S>В ответ на столь весомую ссылкую...
Да что там отвечать? Слив засчитан. Разговор закрыт.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VD>Музики, вам еще не надоело позориться то? Ну, ведь вы уже совсем с основами спорить начинате.
VD>Прочтите пару статей и все вопросы сами собой отпадут.
А мы плюшками балуемся, то бишь прохаживаемся по вариантам "четких определений"...
Здравствуйте, VladD2, Вы писали:
V>>Несомненно интересный пост по ссылке, но мало относящийся к поставленным вопросам о парадигмах и способе их преподавания...
VD>За время этой беседы у меня появилось устойчивое ощущение, что оппоненты не шарят в поросе. Отсюда предлагаю им все же изучить имеющиеся работы, а потом продолжить разговор если будет желание.
Подозреваю, что уровень владения материалом одинаков, если не наоборот, да и приличный опыт по "метапрограммированию" имеется, годов эдак с 92-х (просидел на Форте долго, в нем immediate слова — это слова времени компиляции, перехватывающие поток компилирования... в общем, ты намек понял , первые DSL были на нем ). Однако в моем представлении это все была точно такая же тулза, как самописный софтовый программатор ПЗУ и еще тонны расчетных, моделирующих и просто полезных прибабасиков на 8-ми языках примерно + еще несколько асмов на нескольких железках. Подход называется "сделай сам все под себя", "организуй свой рабочий процесс наиболоее эффективно", и столь шумно муссируемое МП — это лишь одна из мер в ряду, далеко не самая выдающаяся, хотя так же неотделимая от грамотной организации собственного рабочего процесса. Да, чем более опытен программист, тем больше у него доля "инструментального" в каждом проекте. Шуму почему столько? Почему на другие аспекты мало обращают внимания? Почему выпячивают один из инструментальных приемов и ничего о других? Хотя они дают реальный выигрыш (ведь о нем речь, а не о развлечениях?) только при совместном воздействии...
Тебе же не зря на Unix-way указали. Хоть я его и не особо исповедаю последние несоклько лет (винда балует), но понимание общности с обсуждаемыми вещами (накрытие, поглощение вопроса) позволяет смотреть малость шире.
Здравствуйте, VladD2, Вы писали:
VD>Музики, вам еще не надоело позориться то? Ну, ведь вы уже совсем с основами спорить начинате.
Если получится оспорить и основы, значит, это кривые основы. Что тут удивительного?
VD>Прочтите пару статей и все вопросы сами собой отпадут.
Что конкретно посоветуешь?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
ГВ>>Ммм... э... ну, у меня в подписи всё сказано. Считай ссылкой на авторитет. VD>Думал забанить тебя за косвенное осорбление (которое я считаю большим нарушением нежели приямое, так как оно еще и подло), но передумал...
Совсем не оправдания ради, но истины для. Всё-таки, следует отличать личные оскорбления и характеристики высказываний.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Вполне закономерный результат. Все узнали много нового, и, надеюсь, обсуждаемый термин наши "передовики" будут использовать осторожнее и по назначению.
Подозреваю, что таких терминов уже не один... И это хорошо есть и хорошо весьма!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, VladD2, Вы писали:
S>>>Оффтоп: а вот электромагнитное излучение какую природу имеет — корпускулярную или волновую? S>>>Вот, знаете ли, и черты метапрограммирования, функционального программирования, и т.п. можно найти почти что где угодно. И ничему это не противоречит. ГВ>>Некорректная аналогия. Соответственно, некорректен и вывод. VD>А где ты увидил вывод на базе анлогии? Ты за логикой высказываний следишь вообще?
А, верно. Это же оффтоп был. Ну тогда — проехали.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Кодёнок, Вы писали:
ГВ>>Например, задача построения транслятора обычно делится на несколько подзадач: анализ и разбор входного текста, построение промежуточного кода, построение объектного кода. ... Иде здесь парадигма? Чистая математика с экономикой! А если какая-то "парадигма" и есть, то какая именно?
Кё>А парсер формирует дерево, или возвращает его как значение? А состояние это объект или функция? Чтобы спроектировать парсер, тебе нужно выбрать, макароны goto и глобальные переменные, процедуры и структуры, "все — объект" или функциональную композицию.
Это уже вопросы другого уровня. В данном случае важно то, что задача требует каждый раз воплощения одной и той же структуры решения. На определённых этапах можно и макаронный код писать. Не смертельно. Это как раз то, о чём где-то было написано, не помню где, что мол, программисты часто переоценивают значимость своих трюков, которые на поверку оказываются весьма низкоуровневыми. Точно также дело обстоит и в случае выбора того, о чём ты говоришь.
ГВ>>Фокус в том, что "новая парадигма" — это просто набор слов без шаблонов/методик/принципов. А при познании последних "новая парадигма" снова — просто набор слов. Кё>Является ли лес лесом, или набором рядом стоящих деревьев? А без деревьев это просто слово. Правда, конкретный набор деревьев не важен одни можно заменить на другие, а он все равно останется лесом. Ну так что тут главное, деревья? Или (неконкретное, неформализуемое) понятие леса?
А что без деревьев (любых) — это всё ещё лес? Я полагаю, что мы сейчас говорим о лесе, как о названии "совокупности деревьев, растущих из одного места".
Кё>Если ты соберешь произвольный набор методик, принципов и примеров, ты новую парадигму не получишь.
Что-то вы со своими лесами и деревьями совсем запутались. Где я говорил произвольном, взятом с потолка наборе методик? Глупо рассказывать о лексическом анализе, не пояснив для начала понятий "алгоритм", "тип данных", "массив", "структура данных" и т.п. Признаться, я даже не думал, что кому-то покажется возможным отрицать необходимость порядка и системы в изложении. Так что, не надо мне подобного приписывать.
Кё>И что еще самое удивительное, почти любой принцип можно нарушить и любой метод заменить, но новой парадигмы при этом не появится. За составляющими парадигмы скрывается идея, которую и полезно знать (для повышения качества мышления ). Смысл в том, что составляющие следуют из идеи, а не наоборот. Методики лишь реализуют использование парадигмы, принципы ставят рамки, примеры демонстрируют её применение, но отнюдь не формируют её.
Вот как раз для того, чтобы упорядочить мышление, понятия и термины в любой программе обучения вводятся постепенно. То есть, изложение обязательно систематизируется. Иначе будет пшик и затуманенный мозг — поскольку каждый додумает непонятное по-своему и будет прав.
То же самое относится к методикам и терминам. Нельзя сказать: "Вот это у нас объект — ну, вы понимаете?" Все закивают головами, но ни шиша не поймут.
Кё>Поняв идею, тебе уже не обязательно помнить принципы, ты даже будешь понимать, что иногда их можно и нужно нарушать. Тогда как можно знать принципы, и быть совершенно не в курсе, почему они именно в таком комплекте и зачем они.
Правильно. Поняв значимость LSP про остальные принципы ООП можно узнать, вскользь пролистав интернет. Только вот LSP, вообще-то, не только к ООП относится — он может быть употреблён и в других контекстах. Хотя, бесспорно, для иллюстрации его применения ООП подходит и даже весьма.
ГВ>>Мне кажется, ты переоцениваешь значимость агрегативных понятий для синтеза решений. Пока они не конкретизированы методами и прочими сугубо конкретными вещами их ценность близка к нулю. Кё>Не понял, причём тут синтез решений. Я когда о синтезе решений говорил, я описывал качество мышления, и что оно не получается выучиванием большего числа готовых решений.
Хорошо, хорошо. Пусть так. Однако, напихать в голову кучу несвязанных методик или кучу несвязанных "парадигм" — однохренственно, всё равно каша получится. Таким образом, важно заложить не столько набор методик сам по себе, сколько их систему — взаимосвязь, выводимость, принципы построения одних на базе других и т.п. Понимаешь ли, в чём дело. Все эти "парадигмы", псевдотеории, высокие менеджерские "good practices" и прочая болтология связаны на самом низком методическом и практическом уровне. Потерять его — и привет, всё остальное перестаёт работать, поскольку лишается основы, на которой стоит.
Будет на выходе вымуштрованная домохозяйка, которой рассказали, что площадь треугольника равна половине произведения высоты на длину стороны, но не объяснили, почему при гипотенузе 10 высота, опущенная на неё, не может быть больше 5. Зато эта домохозяйка будет с апломбом рассуждать о своём "образовании"...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
ГВ>>Как раз философами были сформулированы некорректные приёмы: апелляция к личности, апелляция к коллективу, апелляция к массовости, подмена тезиса, софизмы и прочее. Так что, философия — достойная наука. S>Очень может быть. Вообще-то эти приемы относятся скорее к риторике, чем к собственно философии. Но я не в курсе, кто именно впервые их сформулировал. Знаю лишь, что пользуются ими демагоги.
Они ещё могут быть признаком ошибки в рассуждениях. Порой такая ошибка является не столько признаком демагогии, сколько признаком заблуждения автора рассуждения. Отличие демагога от добросовестно заблуждающегося в том, что демагог настаивает на некорректно построеном рассуждении, а заблуждающийся меняет рассуждение.
S>>>Не все знания человечества удается уложить в рамки "наборов методов и моделей". Глупо пренебрегать остальными знаниями. ГВ>>Цена знаний, которые нельзя изложить в виде методов, моделей, приёмов и описания каких-то объективных (не субъективных!) явлений, мягко говоря, невелика. S>Да я понял эту позицию. Не надо ее повторять в каждом сообщении. Я просто с ней абсолютно не согласен. Но поскольку понятие "цена знаний" имеет четко выраженную субъективную сущность, то спорить о нем бесполезно. Так что останемся при своих: я со своей выской оценкой слабоформализованных знаний, вы — со своей низкой. Не надо только навязывать всем свою оценку.
Я и не могу ничего навязать. Каждый волен верить или не верить в то, что ему больше нравится. Правда, ровно до той степени, до которой он не пытается привести свою веру или убеждённость в чём-то в качестве доказательства или "аргумента". Вот тут уже, извините, подвиньтесь.
Однако, я могу обосновать свою позицию. Не всегда эти основания надёжны, ошибки дело такое, неизбежное до какой-то степени. Но что я слышу в ответ? "Ты не прав, потому что ты не прав", "Дурака включил!", "Все давно в этом убеждены", "Нужно помнить о неформализуемых вещах". Это вот квинтэссенция ваших "контраргументов". Поверь, мне совсем несложно догадаться, что мои попытки обоснования своих собственных рассуждений (кстати, если ты заметил, я вполне отказываюсь от декларируемых положений, будучи явно уличён в ошибке) будут восприниматься немалой частью оппонентов как попытка "навязать" им свою позицию. Я не виноват, что на поверку выходит, что их собственная позиция настолько слаба, что разваливается, как только начинаешь объяснять, что 2x2=4 и это не зависит от времени суток, и от того, что продавалось накануне. Честно, это не моя вина, это чьи-то глубокие заблуждения.
Ну а помочь кому-то расплести свои заблуждения — это ли не добродетель!
ГВ>>Ага... вот так прям, курсивом, правильное? Это, наверное, какая-то необычная правильность. S>Курсив — это выделение. Интонация.
А с моей стороны, разумеется, шутка. Я вполне понимаю даже тех, кто считает, что это определение правильное. И даже понимаю, почему они так считают. Только подобное "понимание правильности" не может быть использовано как аргумент в споре. Мало ли, кто и что считает правильным? Вопрос всегда в том, почему нужно считать правильным что-то. Причны, коллеги, причины! Если они только в голове — то это не причины, а глюки.
ГВ>>И ещё о субъективности. Не RSDN-еры первые, кто пытается нивелировать суждение оппонента, назвав его "заведомо субъективным".
[skip правильную цитату] S>Можно уточнить, между чем именно RSDN-еры пытаются "Уравнивая, сгладить, уничтожить различия"?
Конечно, можно. В данном случае "нивелировать", значит свести, в частности, мои суждения, к общему хору субъективистов.
ГВ>>Это всё уже давно известно, проходит по графе "эскапизм". S>
ЭСКАПИЗМ (ескейпизм) (от англ. escape бежать, спастись), стремление личности уйти от действительности в мир иллюзий, фантазии в ситуации кризиса, бессилия, отчуждения.
S>Странно. Это каким же это образом мы стремимся уйти в мир иллюзий?
А что, вещи, которые существуют только в голове, это не мир иллюзий?
ГВ>>Ну и сугубо логическое противоречие в такой позиции есть. Расскажу, если интересно будет. S>Ну, расскажи.
Всё очень просто.
Те, кто пытается обозначить любое суждение как субъективное и, следовательно, ничего не значащее, сами того не сознавая, пытаются изрекать объективную истину, т.е., заведомо противоречат сами себе. Ну, или сходу устраняют значимость своих собственных суждений. Если любое суждение можно свести к субъективному, то тогда и высказывание о "субъективности оппонента" тоже субъективно и не имеет какого-либо доказательного значения.
Вот так, если вкратце.
S>>>Дубы видишь, сосны видишь, а лес — не видишь. Не переживай — лесу пофигу, увидел ты его или нет ГВ>>PS.: Ты уверен в правильности метафоры про лес? Я тут, давеча, не случайно сахар и сахарницу упомянул. S>Вполне уверен.
А зря. Дело в том, что я прекрасно вижу лес по имени "парадигма", но вот только конкретной ёлке совершенно безралично, дубовым или берёзовым назван людьми тот лес, в котором она выросла.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
vdimas очень хорошо высказался по поводу содержания спора.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Фрагмент:
ГВ>...то тогда и высказывание о "субъективности оппонента" тоже субъективно...
Следует читать как:
...то тогда и высказывание о "заведомой субъективности оппонента" тоже субъективно...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали: V>Следовать, Использовать, Придерживаться... Или я опять не правильно ПОНЯЛ?
Следовать и придерживаться — можно. V>То бишь приносит ожидаемые бенефиты, ради которых на нее родимую молятся. Для ФП — доказуемость корректности, например.
Опять бред какой-то. Никто не молится ни на какие парадигмы! Бенефитов тоже нет. Доказательства корректности не зависят от применяемой парадигмы программирования. Пойми, что парадигма программирования — это не какой-то конкретный метод или модель. Это способ восприятия программ! Даже ФП, которое ты почему-то отождествляешь с некоей моделью функционального программирования 1:1, на самом деле не сводится к этой единственной модели. Иначе бы мы не имели зоопарка совершенно различных функциональных языков.
S>>С учетом того, что наиболее близким неформальным синонимом термина "парадигма" является "точка зрения", мне непонятно, каким образом парадигма "перестанет работать". V>Тогда go опять в вашу википедию, хотя бы.
Уже. V>Я про точки зрения размышлял здесь
, там упор на то, что этих точек вовсе не бесконечное множество. Ведь парадигма — это "образец", накопленные практики с т.з. IT, и "способы видения" и "точки зрения" весьма дискретны.
И что? Парадигма потому и не называется отдельной точкой зрения, именно потому, что этих точек — бесконечное множество. Парадигма скорее определяет направление, в котором мы смотрим, и то очень неформально.
V>Ты вдумайся, ту или иную точку зрения ты выбираешь ДЛЯ того, чтобы воспользоваться неким аппаратом/практиками (в принципе, ты как раз ВЫБИРАЕШЬ одну из практик), а не наоборот, типа принял произвольную точку зрения, и пытаешься непонятные ср-вами ее реализовать.
Что значит "реализовать точку зрения"? Я выбираю точку зрения для того, чтобы лучше понять задачу. Я могу перейти к другой точке зрения. От этого ни задача задачей быть не перестанет, ни решение — решением. Парадигма — это именно мировоззрение. Точно так же, как можно сказать, что стакан наполовину полон, а можно — что наполовину пуст.
аша ошибка.
V>ЁПРСТ. Приплыли. Ты забыл еще упомянуть обязательные ограничения, помимо методик и моделей (или "практик" — больше импонирует как обобщающий термин).
Ничего я не забыл. И ограничения не обязательны, и требования не обязательны. Парадигма не является формальным понятием! Нельзя в точности провести границу между парадигмами. V>Без которых парадигма — не парадигма, а просто некий "свой путь". Произвольный выбранный путь решения НЕ является парадигмой в общем случае, до тех пор пока не выкристаллизуется, не накопит практики (методики, условия применимости, к ним же ограничения, оценочный аппарат, для которого указанные ограничения — суть условия существования и т.д.). И только обрастя всем этим, заслужив право быть "образцом" для подражания, очередная точка зрения может потянуть на "парадигму".
Парадигма — не образец. Кто это тебе сказал? И не путь решения.
П.п. предполагает (и определяет) взгляд программиста на работу программы.
Все. Остальное — поясняющие примеры. V>Из-за этой пресловутой "точки зрения" вся неразбериха и возникла, и ты пытаешься ее продолжить.
Нету никакой неразберихи. Есть просто уровень абстракции, на который вы с Геннадием не можете пока взобраться. V>Действительно, устоявшаяся парадигма тянет на определенную точку зрения на проблему. Но, как бы не стоит забывать, что само словосочетание "точка зрения" используется в переносном смысле (не обратил внимание? ты же не бегаешь из угла в угол в поисках приемлимой точки видения). Раскрой переносный смысл на истинный и приблизишься к смыслу термина.
У меня-то как раз со смыслом термина все в порядке. Это ты все время пытаешься придать ему какой-то не присущий ему смысл. То религиозный (на парадигму, оказывается, "молятся"), то практический. И поэтому тебе кажется, что определение неправильное.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
V>>Следовать, Использовать, Придерживаться... Или я опять не правильно ПОНЯЛ? S>Следовать и придерживаться — можно.
Угу, то есть, парадигма — это то же самое, что и нравственный принцип. Ему тоже можно следовать. Бесконечно.
V>>То бишь приносит ожидаемые бенефиты, ради которых на нее родимую молятся. Для ФП — доказуемость корректности, например. S>Опять бред какой-то. Никто не молится ни на какие парадигмы! Бенефитов тоже нет. Доказательства корректности не зависят от применяемой парадигмы программирования. Пойми, что парадигма программирования — это не какой-то конкретный метод или модель. Это способ восприятия программ!
Так... А технический вуз, следовательно, должен стать филиалом племени Яки?
Новые видящие говорят, что, когда нас учили разговаривать с собой,
нас научили также средствам оболванивания себя для того, чтобы удерживать
точку сборки неподвижно на одном месте.
Хенаро шумно захлопал в ладоши и издал пронзительный свист,
имитирующий свист футбольного матча. "Давайте заставим двигаться точку
сборки! — закричал он. Давай, давай, вперед, вперед!"
К. Кастанеда, "Внутренний Огонь"
Цитата отсюда.
S>Даже ФП, которое ты почему-то отождествляешь с некоей моделью функционального программирования 1:1, на самом деле не сводится к этой единственной модели. Иначе бы мы не имели зоопарка совершенно различных функциональных языков.
Не сводится? А тогда почему регулярно звучат апелляции к ФП, как к ключу от чего-то?
S>>>С учетом того, что наиболее близким неформальным синонимом термина "парадигма" является "точка зрения", мне непонятно, каким образом парадигма "перестанет работать". V>>Тогда go опять в вашу википедию, хотя бы. S>Уже. V>>Я про точки зрения размышлял здесь
, там упор на то, что этих точек вовсе не бесконечное множество. Ведь парадигма — это "образец", накопленные практики с т.з. IT, и "способы видения" и "точки зрения" весьма дискретны. S>И что? Парадигма потому и не называется отдельной точкой зрения, именно потому, что этих точек — бесконечное множество. Парадигма скорее определяет направление, в котором мы смотрим, и то очень неформально.
Приехали. Точка сборки рулит.
V>>Ты вдумайся, ту или иную точку зрения ты выбираешь ДЛЯ того, чтобы воспользоваться неким аппаратом/практиками (в принципе, ты как раз ВЫБИРАЕШЬ одну из практик), а не наоборот, типа принял произвольную точку зрения, и пытаешься непонятные ср-вами ее реализовать. S>Что значит "реализовать точку зрения"? Я выбираю точку зрения для того, чтобы лучше понять задачу. Я могу перейти к другой точке зрения. От этого ни задача задачей быть не перестанет, ни решение — решением. Парадигма — это именно мировоззрение. Точно так же, как можно сказать, что стакан наполовину полон, а можно — что наполовину пуст.
Так, а смысл тогда в преподавании парадигмы? Мировоззрение же, как известно, формируют, а не преподают. Обрати внимание на причинно-следственную связь: преподают знания, но формируется — понимание. То есть, внешними действиями провоцируют те или иные внутренние изменения. Наличие последних проверяют, задавая ученику некие задачи для самостоятельной работы. Впрочем, верифицироваьт можно только усвоение моделей, появляется ли здесь понимание и если да, то чего именно — вопрос без ответа.
А вот как проверить наличие парадигмы в башке — не понятно. Особенно, если не понятна сама сущность парадигмы. Как узнать, глядит человек на задачу так или эдак? Она вообще ему может казаться абстрактными квадратиками, ниточками, кружочками или соловьиными трелями.
S>аша ошибка.
V>>ЁПРСТ. Приплыли. Ты забыл еще упомянуть обязательные ограничения, помимо методик и моделей (или "практик" — больше импонирует как обобщающий термин). S>Ничего я не забыл. И ограничения не обязательны, и требования не обязательны. Парадигма не является формальным понятием! Нельзя в точности провести границу между парадигмами.
Тогда на кой про парадигмы вообще вспоминать? Наукообразия для? На здоровье, пусть парадигма — это неформализуемое понятие. Никто не возражает. Только тогда бессмысленно утверждать о "разных парадигмах", "преподавании парадигм" и прочем. Если эти вещи не формализуемы, то как они могут отличаться друг от друга?
Впрочем, такие термины замечательно подходят для запудривания голов менеджерам.
V>>Без которых парадигма — не парадигма, а просто некий "свой путь". Произвольный выбранный путь решения НЕ является парадигмой в общем случае, до тех пор пока не выкристаллизуется, не накопит практики (методики, условия применимости, к ним же ограничения, оценочный аппарат, для которого указанные ограничения — суть условия существования и т.д.). И только обрастя всем этим, заслужив право быть "образцом" для подражания, очередная точка зрения может потянуть на "парадигму". S>Парадигма — не образец. Кто это тебе сказал? И не путь решения.
Упс. Это как раз одно из основных значений этого слова — "образец". Википедия потому и попала под критику, что даёт субъектное, а не объектное определение.
S>
П.п. предполагает (и определяет) взгляд программиста на работу программы.
S>Все. Остальное — поясняющие примеры.
Поясняющие что? Парадигму? Но если она не формализуема и не определима, то как мы узнаем о корректности примеров?
V>>Из-за этой пресловутой "точки зрения" вся неразбериха и возникла, и ты пытаешься ее продолжить. S>Нету никакой неразберихи. Есть просто уровень абстракции, на который вы с Геннадием не можете пока взобраться.
Фу ты, ну ты, пальцы гнуты. Дружище, давай без обид, но просто на будущее. Вываливая тезисы о том, кто на каком "уровне абстракции" находится не следует забывать, что абстрактометра ещё не изобрели. А значит, с такими "сильными" высказываниями лучше быть поосторожнее. Ну и апеллировать к личности, сам понимаешь, заведомо некорректно. И не разумно к тому же.
Ещё раз, давай без обид. Некоторым другим я бы совсем иначе ответил.
V>>Действительно, устоявшаяся парадигма тянет на определенную точку зрения на проблему. Но, как бы не стоит забывать, что само словосочетание "точка зрения" используется в переносном смысле (не обратил внимание? ты же не бегаешь из угла в угол в поисках приемлимой точки видения). Раскрой переносный смысл на истинный и приблизишься к смыслу термина. S>У меня-то как раз со смыслом термина все в порядке. Это ты все время пытаешься придать ему какой-то не присущий ему смысл. То религиозный (на парадигму, оказывается, "молятся"), то практический. И поэтому тебе кажется, что определение неправильное.
Ага. То есть смысла в этом понятии вобще нет? Вернее есть, но какой-то бессмысленный. Изумительно!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Sinclair, Вы писали:
V>>Действительно, устоявшаяся парадигма тянет на определенную точку зрения на проблему. Но, как бы не стоит забывать, что само словосочетание "точка зрения" используется в переносном смысле (не обратил внимание? ты же не бегаешь из угла в угол в поисках приемлимой точки видения). Раскрой переносный смысл на истинный и приблизишься к смыслу термина. S>У меня-то как раз со смыслом термина все в порядке. Это ты все время пытаешься придать ему какой-то не присущий ему смысл. То религиозный (на парадигму, оказывается, "молятся"), то практический. И поэтому тебе кажется, что определение неправильное.
Значит, парадигма подходит под: "ни уму, ни сердцу".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, vdimas, Вы писали:
V>Кстати, ты правильно сформулировал — именно терминологический спор. Любое серьезное обсуждение может происходить только при установленных и однозначно понимаемых терминах. Любая наука начинается с терминов. А у нас тут есть один передовик, который впереди планеты всей, запросто аппелирует к терминам, типа в качестве усиления собственной позиции, и тут выясняется, что ясности в самих терминах нет...
До этой банальной мысли — что любой спор оканчивается спором о терминах — все уже дошли много лет назад и с тех пор она уже набила оскомину
Никакое понятие нельзя однозначно определить, потому что мир целостен и ничто в нем не отдельно от остального. Эта мысль присутствует везде, от буддийской религии (нет объектов, есть существование) до банальной "не бывает замкнутых систем". Однозначное определение еще возможно в искусственном маленьком логическом мире, но если обратить внимание на его основы (аксиомы), то и они оказывается, определяются всего лишь из общего здравого смысла и жизненного опыта.
Ничего четкого нет. Если вы в самом деле думаете, что "Любое серьезное обсуждение может происходить только при установленных и однозначно понимаемых терминах", то у вас никогда не случится серьезного обсуждения, вам не на что будет опереться в процессе определения терминов Если хотите, попробуйте привести пример в опровержение Вы будете использовать слова, чтобы определить слова, но каждому из этих слов потребуется свое определение и т.д. до бесконечности. Чтобы определить одно слово, вам придется использовать много других. И почти для каждого из них, кроме предлогов и междометий, еще больше других. Как вы думаете, почему будды молчат?
Пора бы всем уже пойти дальше, за пределы этого (слов). Это возможно, и доказывается тем, что мы друг друга [обычно] понимаем и людям даже совместно удается планировать и делать разные дела.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Это уже вопросы другого уровня. В данном случае важно то, что задача требует каждый раз воплощения одной и той же структуры решения. На определённых этапах можно и макаронный код писать. Не смертельно. Это как раз то, о чём где-то было написано, не помню где, что мол, программисты часто переоценивают значимость своих трюков, которые на поверку оказываются весьма низкоуровневыми. Точно также дело обстоит и в случае выбора того, о чём ты говоришь.
Ты это о чем? Ты спрашивал, где парадигма — я показал тебе парадигму. Ты сомневался, что в ней (кроме её принципов) что-то есть, я показал, что есть. Что ты хотел сказать?
ГВ>А что без деревьев (любых) — это всё ещё лес? Я полагаю, что мы сейчас говорим о лесе, как о названии "совокупности деревьев, растущих из одного места". ГВ>Что-то вы со своими лесами и деревьями совсем запутались. Где я говорил произвольном, взятом с потолка наборе методик? Глупо рассказывать о
Ну сколько можно...
То, что лес — это не пустое слово, обозначающее набор деревьев, а новая сущность — понятно?
То, что парадигма — это не просто название набору принципов, а целостная идея — понятно?
Кё>>Поняв идею, тебе уже не обязательно помнить принципы, ты даже будешь понимать, что иногда их можно и нужно нарушать. Тогда как можно знать принципы, и быть совершенно не в курсе, почему они именно в таком комплекте и зачем они.
ГВ>Правильно. Поняв значимость LSP про остальные принципы ООП можно узнать, вскользь пролистав интернет. Только вот LSP, вообще-то, не только к ООП относится — он может быть употреблён и в других контекстах. Хотя, бесспорно, для иллюстрации его применения ООП подходит и даже весьма.
Неправильно эти слова я использовал, чтобы объяснить ДРУГОЕ! Что за понятием "парадигма" кое-что есть! Что мне с того, что ты согласился с каким-то конкретным примером? Ты ведь в первом посту наезжал на понятие парадигмы, вот теперь скажи, это выдумка, которой нет, или это не так?
Если это не так, то благодаря чему тот, кто понял парадигму, может вывести принципы заново, даже если их забыл? Что связывает принципы? Благодаря чему нельзя взять их произвольный набор и получить парадигму?
Здравствуйте, Кодёнок, Вы писали:
ГВ>>Это уже вопросы другого уровня. В данном случае важно то, что задача требует каждый раз воплощения одной и той же структуры решения. На определённых этапах можно и макаронный код писать. Не смертельно. Это как раз то, о чём где-то было написано, не помню где, что мол, программисты часто переоценивают значимость своих трюков, которые на поверку оказываются весьма низкоуровневыми. Точно также дело обстоит и в случае выбора того, о чём ты говоришь. Кё>Ты это о чем? Ты спрашивал, где парадигма — я показал тебе парадигму. Ты сомневался, что в ней (кроме её принципов) что-то есть, я показал, что есть. Что ты хотел сказать?
Я приравнял "парадигму" в данном случае к низкоуровневым трюкам. По отношению к исходной задаче (транслятор) не важно, используется та или иная парадигма для решения. Общая структура решения не поменяется и от "парадигмоориентированости" она не зависит.
Кё>То, что лес — это не пустое слово, обозначающее набор деревьев, а новая сущность — понятно?
Угу.
Кё>То, что парадигма — это не просто название набору принципов, а целостная идея — понятно?
Какая именно идея? Если она выражается, например, как "писать программу пользуясь только функциями без состояний", то это уже — метод, а не "парадигма".
Повторяю вопрос: что за идея? Как она вербализуется? Или она передаётся посвящёнными из уст в уста?
Кё>>>Поняв идею, тебе уже не обязательно помнить принципы, ты даже будешь понимать, что иногда их можно и нужно нарушать. Тогда как можно знать принципы, и быть совершенно не в курсе, почему они именно в таком комплекте и зачем они. ГВ>>Правильно. Поняв значимость LSP про остальные принципы ООП можно узнать, вскользь пролистав интернет. Только вот LSP, вообще-то, не только к ООП относится — он может быть употреблён и в других контекстах. Хотя, бесспорно, для иллюстрации его применения ООП подходит и даже весьма. Кё>Неправильно эти слова я использовал, чтобы объяснить ДРУГОЕ!
ЧТО????
Кё>Что за понятием "парадигма" кое-что есть!
А...
Это-то мне как раз известно. Да и вон, vdimas об этом писал. Но только, мы с тобой, похоже, по разному понимаем само существование.
Кё>Что мне с того, что ты согласился с каким-то конкретным примером?
А зачем ты тогда его приводил, если тебе индифферентно моё согласие?
Кё>Ты ведь в первом посту наезжал на понятие парадигмы, вот теперь скажи, это выдумка, которой нет, или это не так?
Что — выдумка? Парадигма? Нет, не выдумка. Это обозначение совокупности много чего или посмотри в словаре значение, начинается, если не ошибаюсь, со слова "образец."
Кё>Если это не так, то благодаря чему тот, кто понял парадигму, может вывести принципы заново, даже если их забыл?
Откуда я знаю? Я могу вывести какие-то принципы и не представляя о парадигмах. Достаточно знания о том, по отношению к чему я эти принципы вывожу. Это называется ещё индуктивным методом. И мне без разницы, кто и как будет группировать то, что я понапридумывал.
Кё>Что связывает принципы?
Целостность мира, мой друг, связывает принципы. И взаимозависимость всего сущего от всего сущего.
Ну, на самом деле, принципы связываются фундаментальными законами. Поэтому, в общем-то, можно пароход отлить из металла, только плавать он не будет, так что, для кораблей лучше следовать принципу внутренней пустоты.
Кё>Благодаря чему нельзя взять их произвольный набор и получить парадигму?
Так. Стоп. Если нельзя взять произвольный набор, значит, парадигма имеет чёткие границы? А значит, она чётко выразима, нет?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали: ГВ>Угу, то есть, парадигма — это то же самое, что и нравственный принцип. Ему тоже можно следовать. Бесконечно.
Ну, наконец-то ты понял. Уфф. Не прошло и 200 постингов. V>>>То бишь приносит ожидаемые бенефиты, ради которых на нее родимую молятся. Для ФП — доказуемость корректности, например. S>>Опять бред какой-то. Никто не молится ни на какие парадигмы! Бенефитов тоже нет. Доказательства корректности не зависят от применяемой парадигмы программирования. Пойми, что парадигма программирования — это не какой-то конкретный метод или модель. Это способ восприятия программ!
ГВ>Так... А технический вуз, следовательно, должен стать филиалом племени Яки?
Нет, он должен превратиться в техникум, где просто заучивается набор практик. На 101-кнопочных 32х разрядных станках с ЧПУ.
ГВ>Не сводится? А тогда почему регулярно звучат апелляции к ФП, как к ключу от чего-то?
К какому ключу? Ты точно того человека спрашиваешь?
Короче, это похоже на "проблему сантехника": идеальный сантехник, не знакомый ни с чем, кроме разводного ключа, во всем видит только разводные ключи. Если он не сумел увидеть в чем-то разводной ключ, это что-то объявляется "прыжками без земли под ногами", "знаниями сомнительной ценности" и т.п.
ГВ>Приехали. Точка сборки рулит.
Ну, в чем-то да. Хотя Кастанеду я не люблю за излишнюю, на мой взгляд, серъезность и придание повседневным, в общем-то, вещам, какого-то мистического смысла.
ГВ>Так, а смысл тогда в преподавании парадигмы?
ГВ>Мировоззрение же, как известно, формируют, а не преподают. Обрати внимание на причинно-следственную связь: преподают знания, но формируется — понимание. То есть, внешними действиями провоцируют те или иные внутренние изменения. Наличие последних проверяют, задавая ученику некие задачи для самостоятельной работы. Впрочем, верифицироваьт можно только усвоение моделей, появляется ли здесь понимание и если да, то чего именно — вопрос без ответа.
ГВ>А вот как проверить наличие парадигмы в башке — не понятно. Особенно, если не понятна сама сущность парадигмы. Как узнать, глядит человек на задачу так или эдак? Она вообще ему может казаться абстрактными квадратиками, ниточками, кружочками или соловьиными трелями.
А тебя не смущает, что в музыке, к примеру, преподают стили и течения? И ведь как-то узнают, глядит ученик на задачу так или эдак. Или ты предлагаешь нафиг все эти курсы разогнать, а учить только конкретным приемам гитарной игры?
ГВ>Тогда на кой про парадигмы вообще вспоминать? Наукообразия для?
Для науки. Самое время вспомнить, что далеко не все науки относятся к категории "точных". И программирование к такой науке уж точно не относится. Информатика, как часть математики — относится, но программирование — это не только информатика. ГВ>На здоровье, пусть парадигма — это неформализуемое понятие. Никто не возражает. Только тогда бессмысленно утверждать о "разных парадигмах", "преподавании парадигм" и прочем. Если эти вещи не формализуемы, то как они могут отличаться друг от друга?
Элементарно. Человек, в отличие от конечного автомата, способен манипулировать недоопределенными образами. И ничего, справляется. Ты же вот не затрудняешься отличить ООП-язык от не-ООП языка? А ведь точного формального определения ООП ты не знаешь. S>>Парадигма — не образец. Кто это тебе сказал? И не путь решения. ГВ>Упс. Это как раз одно из основных значений этого слова — "образец".
Откуда дровишки? Я что-то не встречал такого значения в определениях термина "парадигма". ГВ>Википедия потому и попала под критику, что даёт субъектное, а не объектное определение.
Так нету более другого определения! Почему ты отказываешься в это верить? ГВ>Поясняющие что? Парадигму? Но если она не формализуема и не определима, то как мы узнаем о корректности примеров?
Она не вполне формализуема. Нам не надо "узнавать" о корректности примеров. За отсутствием сколь бы то ни было точного определения, мы обходимся постулированием некоторых примеров. То есть прямо так тычем пальцем: "вот ООП, вот это тоже — ООП, вот это — почти ООП, а вот здесь не совсем ООП, но вот в этом и этом месте на ООП похоже. Вот на это можно смотреть, как на ООП, но на его вырожденный, частный случай. А вот здесь нифига ООП нету. Понятно теперь, что такое ООП?"
ГВ>Ага. То есть смысла в этом понятии вобще нет? Вернее есть, но какой-то бессмысленный.
Уточни значение, которое ты придаешь термину "смысл".
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
vdimas,
V>Она еще МП использует, в Ворде макросы есть. Вот запишет она рекордером последовательность действий, и хана — по уши в МП. А что? Профессиональное владение программой, с целью генерирования новых программ...
Пусть она этим рекордером определит дерево глав в документе, сформирует содержание и вставит начиная с первой страницы — тогда можно считать, что ножку в МП она намочила (до "по уши" ещё далековато).
Когда изменение чиселок в конфиге становится программированием?
Когда введение параметров в конфиг становится ОП?
Когда генерация инфы с помощью машинки становится МП?
Лично мне эти вопросы сильно напоминают классику Эзоповых апорий:
Когда множество песчинок становятся кучей?
Есть ли определённый устраивающий всех доказуемый ответ на последний вопрос? То же и с программированием.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Геннадий Васильев, Вы писали: ГВ>>Угу, то есть, парадигма — это то же самое, что и нравственный принцип. Ему тоже можно следовать. Бесконечно. S>Ну, наконец-то ты понял. Уфф. Не прошло и 200 постингов.
Ну отлично. Значит, я всё-таки подобрал термин, который удовлетворил оппонирующую сторону. Ставлю себе нерукотворный памятник. И эти люди обвиняют меня в недостаточном уровне абстракции!
ГВ>>Так... А технический вуз, следовательно, должен стать филиалом племени Яки? S>Нет, он должен превратиться в техникум, где просто заучивается набор практик. На 101-кнопочных 32х разрядных станках с ЧПУ.
Синклер, мир вовсе не ограничен чёрным и белым цветом. И заучивать практики можно очень по-разному. Главное, чтобы такое заучивание позволило связать практики в единую систему. Да, и ещё научило расставлять слова не как попало.
ГВ>>Не сводится? А тогда почему регулярно звучат апелляции к ФП, как к ключу от чего-то? S>К какому ключу? Ты точно того человека спрашиваешь?
Может — не того.
S>Короче, это похоже на "проблему сантехника": идеальный сантехник, не знакомый ни с чем, кроме разводного ключа, во всем видит только разводные ключи. Если он не сумел увидеть в чем-то разводной ключ, это что-то объявляется "прыжками без земли под ногами", "знаниями сомнительной ценности" и т.п.
А я разве говорил о каком-то одном конкретном приёме, который должен заменять все остальные?
ГВ>>Приехали. Точка сборки рулит. S>Ну, в чем-то да. Хотя Кастанеду я не люблю за излишнюю, на мой взгляд, серъезность и придание повседневным, в общем-то, вещам, какого-то мистического смысла.
Декан = бенефактор. Ну что, тоже вариант. Или бенефактором будет ректор?
ГВ>>А вот как проверить наличие парадигмы в башке — не понятно. Особенно, если не понятна сама сущность парадигмы. Как узнать, глядит человек на задачу так или эдак? Она вообще ему может казаться абстрактными квадратиками, ниточками, кружочками или соловьиными трелями. S>А тебя не смущает, что в музыке, к примеру, преподают стили и течения? И ведь как-то узнают, глядит ученик на задачу так или эдак. Или ты предлагаешь нафиг все эти курсы разогнать, а учить только конкретным приемам гитарной игры?
Э... а эти стили и течения разве не приёмами игры на музыкальных инструментах отличаются (в частности, разумеется)? Так что, конкретная методическая база тут налицо. И верификация тут очень простая. Есть такое художественное понятие — образ. Вот способность ученика создать тот или иной образ вполне можно проверить. Ну и на слух вполне можно определить как владение техническими приёмами, так и эмоциональное состояние и прочее. В общем, не удивляет меня это всё. И потом, у учителей музыки свои тараканы, обсуждать ещё и их здесь я не хочу.
Так о чём это мы? А... я понял. В мозгах заказчика нужно создать образ сделанной программы... Хм,.. Знакомо, знакомо...
Синклер, тебе самому не смешно приводить такие аналогии?
ГВ>>Тогда на кой про парадигмы вообще вспоминать? Наукообразия для? S>Для науки. Самое время вспомнить, что далеко не все науки относятся к категории "точных". И программирование к такой науке уж точно не относится. Информатика, как часть математики — относится, но программирование — это не только информатика.
Ну насмешил. А науки, которые не являются "точными", они строятся на неопределённом терминологическом базисе и плевать хотели на то, что в устах каждого докладчика одно и то же слово означает разные вещи? То есть, соответствующие учёные не занимаются устаканиванием этого самого терминологического базиса? Тогда это не науки, а псевдонауки. Ну или приведи, хотя бы один пример такой науки.
ГВ>>На здоровье, пусть парадигма — это неформализуемое понятие. Никто не возражает. Только тогда бессмысленно утверждать о "разных парадигмах", "преподавании парадигм" и прочем. Если эти вещи не формализуемы, то как они могут отличаться друг от друга? S>Элементарно. Человек, в отличие от конечного автомата, способен манипулировать недоопределенными образами. И ничего, справляется.
Угу. На кухне. Под пиво. В хорошей компании. В работе приходится всё доопределять, иначе не знаешь, где что лопнет.
S>Ты же вот не затрудняешься отличить ООП-язык от не-ООП языка? А ведь точного формального определения ООП ты не знаешь.
В ООП-языке явно вводится понятие класса или его аналог. Нет такого слова в языке — значит, и язык не-ООП. Кстати, правильно будет не "ООП-язык", а "ОО-язык". На худой конец — "язык, поддерживающий ООП".
S>>>Парадигма — не образец. Кто это тебе сказал? И не путь решения. ГВ>>Упс. Это как раз одно из основных значений этого слова — "образец". S>Откуда дровишки? Я что-то не встречал такого значения в определениях термина "парадигма". ГВ>>Википедия потому и попала под критику, что даёт субъектное, а не объектное определение. S>Так нету более другого определения! Почему ты отказываешься в это верить?
Ну ты бы хоть дискуссию прочёл, что ли... Короче, вот здесь
ПАРАДИГМА (греч. paradeigma — пример, образец), 1) образец, тип, модель (например, общественных отношений). 2) В философии, социологии — исходная концептуальная схема, меняющаяся со временем и характерная для определённого этапа в развитии науки модель постановки проблем и их решения. 3) В риторике — пример, взятый из истории для доказательства, сравнения. 4) В грамматике — система форм изменяющегося слова, конструкции, например имени, глагола.
Продолжаем спорить о моей вере?
ГВ>>Поясняющие что? Парадигму? Но если она не формализуема и не определима, то как мы узнаем о корректности примеров? S>Она не вполне формализуема. Нам не надо "узнавать" о корректности примеров. За отсутствием сколь бы то ни было точного определения, мы обходимся постулированием некоторых примеров. То есть прямо так тычем пальцем: "вот ООП, вот это тоже — ООП, вот это — почти ООП, а вот здесь не совсем ООП, но вот в этом и этом месте на ООП похоже. Вот на это можно смотреть, как на ООП, но на его вырожденный, частный случай. А вот здесь нифига ООП нету. Понятно теперь, что такое ООП?"
Да ну! Всё намного проще. Мы говорим о том, что "Это — ООП", когда в языке есть явно class или object, реализовано понятие "метода" и, иногда — "наследования". Если программа на этом языке написана с участием этих ключевых слов — это ОО-программа.
Но! Бывают разные ОО-программы. Здесь уже начинаются оценочные выражения. Хорошие ("чистое ООП!"); с неудачной декомпозицией ("ну... почти ООП..."); написанные закоренелыми сишниками ("Да это вообще галимый Си, а не C++!"). Что такое "вырожденный случай ООП"? Ммм... можно догадаться, наверное, но я что-то, не догоняю... Наверное, это программа, использующая объектные библиотеки, но которая сама по себе не реализует объектную декомпозицию с использованием соответствующих механизмов языка. Ну, или в программе не использовано, например, наследование или скрытие данных.
ГВ>>Ага. То есть смысла в этом понятии вобще нет? Вернее есть, но какой-то бессмысленный. S>Уточни значение, которое ты придаешь термину "смысл".
В данном случае — обозначение сущностей, не зависящих от наблюдателя. Не буду пока дальше обобщать. То есть, термин имеет смысл, если он обозначает некую не зависящую от наблюдателя вещь. Если этой вещи нет, то и смысла в термине — тоже нет. "На кой мне хрен ваш город золотой?" (c)
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Кодёнок, Вы писали:
V>>Кстати, ты правильно сформулировал — именно терминологический спор. Любое серьезное обсуждение может происходить только при установленных и однозначно понимаемых терминах. Любая наука начинается с терминов. А у нас тут есть один передовик, который впереди планеты всей, запросто аппелирует к терминам, типа в качестве усиления собственной позиции, и тут выясняется, что ясности в самих терминах нет... Кё>До этой банальной мысли — что любой спор оканчивается спором о терминах — все уже дошли много лет назад и с тех пор она уже набила оскомину
Но люди продолжают использовать термины не по их прямому назначению... Вообще, странная, какое-то эскапистское поведение получается. Мол, если споры оканчиваются спорами о терминах, то мы и термины согласовывать не будем. И колбасу покупать не будем, чтобы не заморачиваться её хранением. И вообще, "оставим мирские дела и все уедем в Тибет"... Лишь бы лётчики раньше нас не уехали.
Короче, тебе не кажется такая модель отношений с миром, как минимум, ошибочной? Это уже не изучение мира, и даже не жизнь в мире. Это уже гниение какое-то!
Кё>Однозначное определение еще возможно в искусственном маленьком логическом мире, но если обратить внимание на его основы (аксиомы), то и они оказывается, определяются всего лишь из общего здравого смысла и жизненного опыта.
А программирование с программистами и есть тот самый искусственный маленький мир. И он очень нуждается в ясно определённых терминах.
Кё>Ничего четкого нет.
Да... Сила слова! Ты мне скажи, есть тот стул, на котором ты сидишь, или нет его ни разу?
Кё>Если вы в самом деле думаете, что "Любое серьезное обсуждение может происходить только при установленных и однозначно понимаемых терминах", то у вас никогда не случится серьезного обсуждения, вам не на что будет опереться в процессе определения терминов Если хотите, попробуйте привести пример в опровержение
В конце этого сообщения я даю пример целого сообщества, вполне уживающегося со своей терминологией. И даже объясняю вкратце, почему оно так.
Кё>Вы будете использовать слова, чтобы определить слова, но каждому из этих слов потребуется свое определение и т.д. до бесконечности. Чтобы определить одно слово, вам придется использовать много других. И почти для каждого из них, кроме предлогов и междометий, еще больше других.
Вот и "ошибка сорита". Используются не просто слова, а устоявшиеся термины. Оные термины означают то, что одинаково понимается участниками дискуссии. Ну а если такого понимания нет, то начинается спор о терминах, в процессе которого, если участники желают достичь согласия, все узнают много нового и интересного. Но есть один момент... Поглядишь в самом конце этого сообщения.
[...]
Кё>Это возможно, и доказывается тем, что мы друг друга [обычно] понимаем и людям даже совместно удается планировать и делать разные дела.
Твоей иллюстрацией доказывается не переход за пределы слов, а то, что термины можно согласовать. И с такого согласования любое дело и начинают. А вот потом систему терминов можно сократить хоть до арго. В качестве примера — арго моряков. "Банка", "чистый якорь". И салагам раньше или позже но непременно объяснят значение этих слов. Иначе, нафига такие матросы? Так что, согласование терминов — налицо.
А термин легко согласовать и определить, если им обозначается нечто конкретное. Некая вещь или действие. А вот если им будет обозначен "взгляд на компас" или вообще "сумма взглядов из-под секстанта", то потонет корабль с такой командой... вместе с терминологией. И это есть хорошо и хорошо весьма!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Какая именно идея? Если она выражается, например, как "писать программу пользуясь только функциями без состояний", то это уже — метод, а не "парадигма".
Метод — это часть парадигмы. Когда идею приходится воплощать, то она тут же сами собой появляются соответствующие методы, принципы, типичные решения. Идея — она сложная, словами не выражается. Любое выражение — упрощение. В данном случае, ты упростил — и получил принцип (на метод это по-моему еще не тянет).
Например, когда многопоточности нет, набор принципов в ООП который ей соответствует — отсутствует. Когда есть, то появляется. Идея одна, но на разных реализациях разные принципы и методы. Нельзя взять конкретный набор и сказать — это есть 100% ООП, больше в нём ничего нет.
ГВ>Повторяю вопрос: что за идея? Как она вербализуется? Или она передаётся посвящёнными из уст в уста?
Не вербализуется... Передаются примеры, принципы, при изучении которых она постигается.
Кё>>Если это не так, то благодаря чему тот, кто понял парадигму, может вывести принципы заново, даже если их забыл? ГВ>Откуда я знаю? Я могу вывести какие-то принципы и не представляя о парадигмах. Достаточно знания о том, по отношению к чему я эти принципы вывожу.
Я жирным выделил. Что это, по-твоему?
Кё>>Что связывает принципы? ГВ>Целостность мира, мой друг, связывает принципы. И взаимозависимость всего сущего от всего сущего.
Принципы парадигм программирования. В одной есть принцип — состояний быть не дожно. В другой — состояние и способы его изменения должны быть инкапсулированы в объекте. Очевидно, эти принципы противоречивы, а значит, несвязаны. Целостность мира тут — демагогия.
ГВ>Ну, на самом деле, принципы связываются фундаментальными законами. Поэтому, в общем-то, можно пароход отлить из металла, только плавать он не будет, так что, для кораблей лучше следовать принципу внутренней пустоты.
Ну так наконец, из чего же следует, что принципам "внутренней пустоты " и "не должен опрокидываться ветром" кораблю обязательно нужно следовать, а принципам "подниматься в воздух" и "оставлять следы на бумаге" — нет?
Кё>>Благодаря чему нельзя взять их произвольный набор и получить парадигму? ГВ>Так. Стоп. Если нельзя взять произвольный набор, значит, парадигма имеет чёткие границы?
Это если думать, что парадигма составлена из принипов как колода из карт, тогда "значит". А она не состоит, принципы следуют из неё, они появляются при её воплощении. Если ты возьмешься воплощать идею корабля, то автоматически появятся принципы, держаться на воде, уметь перевозить полезный груз и т.д. Каждый из этих принципов описывает какой-то частный момент идеи, или просто сам по себе логически следует из законов мира. При этом, если корабль для перевозки кирпича, то набор принципов будет один, если для скоростного катания одного человека — другим, и т.д., но сама идея корабля остается одна! И в парадигме программирования заключается такая идея.
Но если взять случайный набор любых принципов, они не составят новую идею. Хотя бы потому, что принципы бывают противоречивыми и прямо противоположными.
Здравствуйте, Кодёнок, Вы писали:
ГВ>>Какая именно идея? Если она выражается, например, как "писать программу пользуясь только функциями без состояний", то это уже — метод, а не "парадигма". Кё>Метод — это часть парадигмы.
Ага, правильно.
Кё>Когда идею приходится воплощать, то она тут же сами собой появляются соответствующие методы, принципы, типичные решения. Идея — она сложная, словами не выражается. Любое выражение — упрощение. В данном случае, ты упростил — и получил принцип (на метод это по-моему еще не тянет).
Ну принцип, так принцип. Действительно, метод — это нечто более конкретное, чем принцип. Хоть и не всегда. Но не суть.
Кё>Например, когда многопоточности нет, набор принципов в ООП который ей соответствует — отсутствует. Когда есть, то появляется.
Не забывай: в данных конкретных условиях не используются методы, применимые для реализации многопоточных программ. Сами по себе принципы создания таких программ прекрасно формулируются и сохраняются в записанном виде независимо от того, применяют их или нет.
Кё>Идея одна, но на разных реализациях разные принципы и методы. Нельзя взять конкретный набор и сказать — это есть 100% ООП, больше в нём ничего нет.
Согласен, что идея, это вообще трудноопределимая вещь. Но есть более определённое её воплощение: проект. Хотя о проекте зачастую говорят: "в этом проекте воплотились идеи нашего коллектива о..." Да и кто тебе сказал, что ООП — это идея? Это, вообще-то, набор методов, моделей, концепций, коль скоро это "программирование".
Кстати, идея может быть воплощена в принципе, модели, методе... Не видишь противоречия со своими рассуждениями?
ГВ>>Повторяю вопрос: что за идея? Как она вербализуется? Или она передаётся посвящёнными из уст в уста? Кё>Не вербализуется... Передаются примеры, принципы, при изучении которых она постигается.
Наконец-то! Ну так что тогда надо в вузе студентам давать? Идею (которая не вербализуется!) или то, что можно вербализовать?
Кё>>>Если это не так, то благодаря чему тот, кто понял парадигму, может вывести принципы заново, даже если их забыл? ГВ>>Откуда я знаю? Я могу вывести какие-то принципы и не представляя о парадигмах. Достаточно знания о том, по отношению к чему я эти принципы вывожу. Кё>Я жирным выделил. Что это, по-твоему?
Я вывожу принципы по отношению к программе, которую я пишу. И некоторые использую, а некоторые — нет. А ты о чём подумал? Что я принципы по отношению к "ООП" формулирую? Щаззз!
Кё>>>Что связывает принципы? ГВ>>Целостность мира, мой друг, связывает принципы. И взаимозависимость всего сущего от всего сущего.
Кё>Принципы парадигм программирования. В одной есть принцип — состояний быть не дожно. В другой — состояние и способы его изменения должны быть инкапсулированы в объекте. Очевидно, эти принципы противоречивы, а значит, несвязаны.
Погоди. Взаимосвязанность принципов не означает, что они не могут воплощать противоречивые требования. В обоих обозначенных тобой принципах есть понятие состояния. Один принцип постулирует отказ от использования метафоры состояния, а другой — наоборот, постулирует использование. То есть, эти принципы определяют, будем ли мы использовтаь в программе метафоры состояний. Таким образом, принципы сии можно объединить по критерию явно задаваемого отношения к использованию "состояний".
Однако, эти принципы запросто можно нарушить. Объекты без состояний бывают? Да. Функции с состояниями? Тоже — да. (static — переменные). Именно благодаря целостности мира, вернее — благодаря тому, что воплощение этих принципов производится одним и тем же компьютером, мы и можем так поступить.
Кё>Целостность мира тут — демагогия.
Нет. Как раз целостность мира и позволяет нам смешать в одной программе использование обоих принципов. И именно благодаря ей фундаментальные законы являются таковыми.
ГВ>>Ну, на самом деле, принципы связываются фундаментальными законами. Поэтому, в общем-то, можно пароход отлить из металла, только плавать он не будет, так что, для кораблей лучше следовать принципу внутренней пустоты. Кё>Ну так наконец, из чего же следует, что принципам "внутренней пустоты " и "не должен опрокидываться ветром" кораблю обязательно нужно следовать, а принципам "подниматься в воздух" и "оставлять следы на бумаге" — нет?
Только из того, что мы хотим, чтобы корабль плавал, а не тонул, летал или рисовал. А коль скоро мы хотим, чтобы корабль не тонул, нам нужно учитывать закон Архимеда. Всё проще пареной репы.
Кё>>>Благодаря чему нельзя взять их произвольный набор и получить парадигму? ГВ>>Так. Стоп. Если нельзя взять произвольный набор, значит, парадигма имеет чёткие границы? Кё>Это если думать, что парадигма составлена из принипов как колода из карт, тогда "значит". А она не состоит, принципы следуют из неё, они появляются при её воплощении.
Значит, существует какая-то логическая связь, объединяющая методы, принципы и прочее, что отнесено нами к одной "парадигме". Правильно? Вопрос — какая? "Идея" здесь не подходит ввиду её принципиальной невыразимости. Либо это уже не идея, а просто модель, которая вполне вербализуема.
Кё>Если ты возьмешься воплощать идею корабля, то автоматически появятся принципы, держаться на воде, уметь перевозить полезный груз и т.д. Каждый из этих принципов описывает какой-то частный момент идеи, или просто сам по себе логически следует из законов мира.
Чего-чего? Частный момент невербализуемой идеи? Это что ещё такое?
Кё>При этом, если корабль для перевозки кирпича, то набор принципов будет один, если для скоростного катания одного человека — другим, и т.д., но сама идея корабля остается одна!
Ты забываешь о роли исходных требований и ограничений. Они появляются раньше осознания и формулировки принципов реализации. Корабль для перевозки кирпича (специализированный) строится только потому, что мы не можем построить "абстрактный всеперевозящий корабль". Это просто технически неосуществимо или весьма дорого. Отсюда следует модификация методов реализации "идеи корабля" и весь ворох технических решений. Адаптируем конструкцию, меняем коэффициенты формул и т.п. Базовые требования остаются теми же самыми — не тонуть, не переворачиваться, не разваливаться под собственным весом. Требования, а не принципы! Хотя их иногда называют "принципами". Принципы реализации выстраиваются на базе требований.
Кё>И в парадигме программирования заключается такая идея.
А если лошадь позади телеги не ставить? Что в чём заключается? Не забываем — идея не вербализуема!
Кё>Но если взять случайный набор любых принципов, они не составят новую идею. Хотя бы потому, что принципы бывают противоречивыми и прямо противоположными.
Если мы не можем вербализовать саму идею, то сей фрагмент — абсурд. Невербализуемая идея в голове наблюдателя может появиться из-за чего угодно, хоть из-за капли дождя.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
Кё>>Ничего четкого нет. ГВ>Да... Сила слова! Ты мне скажи, есть тот стул, на котором ты сидишь, или нет его ни разу?
Речь там шла о терминах, а не об объектах.
Пример: давай определимся с четким понятием, что мы будем понимать под словом "стул"? С четырьмя ногами — стул? С тремя — стул? А с одной? А если без ножек, но к стене прибит? А если дырка в сиденье? А если дырку постепенно увеличивать вплоть до исчезновения сиденья, когда это перестанет быть стулом? А пыль на стуле — это часть стула или нет? А краска на нём? Дай мне четкое определение термина, если сможешь.
Я вижу ты уже серьезно взялся за демагогию. И не первый раз комментируешь одно предложение, вырванное из контекста.
Кё>>Это возможно, и доказывается тем, что мы друг друга [обычно] понимаем и людям даже совместно удается планировать и делать разные дела. ГВ>Твоей иллюстрацией доказывается не переход за пределы слов, а то, что термины можно согласовать.
ГВ>И с такого согласования любое дело и начинают.
Это ж насколько надо оторваться от реальности, чтобы такое заявить? Прямо любое? Ну или хотя бы половину дел в мире? Ты когда вечеринку устраиваешь, ты начинаешь с согласования термина "вечеринка"? Когда чай покупаешь, объясняешь продавщице, что имеешь ввиду под словом "чай"? Даже не половину и не процент. С приведения терминов начинают только монологи, но это совместным делом не является.
ГВ>А термин легко согласовать и определить, если им обозначается нечто конкретное. Некая вещь или действие. А вот если им будет обозначен "взгляд на компас" или вообще "сумма взглядов из-под секстанта", то потонет корабль с такой командой... вместе с терминологией. И это есть хорошо и хорошо весьма!
Только конкретное? А что такое "Выполнение приказа"? "Бритость"? "Начищенность сапог"? "Чистота каюты"? Не на всех вещах в этой жизни можно посидеть
Надо не термины согласовывать, а осознавать, что у собеседника отыт отличается от твоего. Даже если сидите на стульях одной модели, вы не знаете всех их аспектов, не можете знать, что у собеседника одна ножка может быть короче другой или обшивка другого цвета, или что он на него когда-то красу пролил. А это в определенный момент может в беседе о стульях стать важно (один думает что это хороший стул, а другой что плохой, а на самом деле у одного просто затыка на одной ножке слетела и он качается). Если так делать, то когда обнаружишь, что термины разошлись, не станешь с умным видом заявлять "ба, да мы опять пришли к спору о терминах!" а разрулишь и продолжишь.
С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет.
Здравствуйте, Кодёнок, Вы писали:
Кё>Пример: давай определимся с четким понятием, что мы будем понимать под словом "стул"? С четырьмя ногами — стул? С тремя — стул? А с одной? А если без ножек, но к стене прибит? А если дырка в сиденье? А если дырку постепенно увеличивать вплоть до исчезновения сиденья, когда это перестанет быть стулом? А пыль на стуле — это часть стула или нет? А краска на нём? Дай мне четкое определение термина, если сможешь.
Стул — это устройство, предназначенное для сидения на нём и снабжённое опорой для спины. Может быть и без сидения и без ножек вообще. Может быть циклопических размеров.
Кё>>>Это возможно, и доказывается тем, что мы друг друга [обычно] понимаем и людям даже совместно удается планировать и делать разные дела. ГВ>>Твоей иллюстрацией доказывается не переход за пределы слов, а то, что термины можно согласовать. ГВ>>И с такого согласования любое дело и начинают. Кё>Это ж насколько надо оторваться от реальности, чтобы такое заявить? Прямо любое? Ну или хотя бы половину дел в мире? Ты когда вечеринку устраиваешь, ты начинаешь с согласования термина "вечеринка"? Когда чай покупаешь, объясняешь продавщице, что имеешь ввиду под словом "чай"? Даже не половину и не процент. С приведения терминов начинают только монологи, но это совместным делом не является.
Ну, буду комментировать целым абзацем.
Итак, когда я иду в магазин, я знаю, что продавщице задо-о-олго до моего появления объяснили, что такое чай. И мне это объяснили задо-о-олго до того, как я стал ходить по магазинам. Предварительное согласование — налицо.
Когда я устраиваю вечеринку, я заранее задаюсь вопросом — все ли мои гости поймут что "вечеринка", это не "пьянка до поросячьего визга". Кстати, если я назову вечеринку по новомодному (party), то первым вопрос приглашаемого будет: "куда-куда?" Так что, согласование терминов опять налицо.
Опять же, если я задумаю, скажем писать с кем-то софт, то я выберу коллегу из тех, у кого термин "софт" не вызовет удивления. Остальных просто не включу в кандидаты. То есть, предварительное согласование терминов — опять налицо.
ГВ>>А термин легко согласовать и определить, если им обозначается нечто конкретное. Некая вещь или действие. А вот если им будет обозначен "взгляд на компас" или вообще "сумма взглядов из-под секстанта", то потонет корабль с такой командой... вместе с терминологией. И это есть хорошо и хорошо весьма!
Кё>Только конкретное? А что такое "Выполнение приказа"? "Бритость"? "Начищенность сапог"? "Чистота каюты"? Не на всех вещах в этой жизни можно посидеть
Не вопрос.
"Выполнение приказа" — конкретное предписание выполнять приказы, озвученные начальником. Т.е., регламентация вполне конкретных действий.
"Бритость" — во-первых, канцелярит, а во-вторых — опять-таки, скорее всего, вполне конкретное предписание. Трактуется как "на лице не должно быть бороды и усов". Некоторые трактуют как "или усов".
"Начищенность сапог" — ничего не значит вне контекста требований начальства. "Обеспечить начищенность сапог" — суть предписание, принести гуталин и почистить сапоги.
"Чистота каюты" — опять-таки, вполне конкретная характеристика. В каюте должно быть чисто: пол не замызган, вещи не раскиданы.
Что тут не понятного? Я же написал, что термины обозначают вещи или действия.
Кё>Надо не термины согласовывать, а осознавать, что у собеседника отыт отличается от твоего. Даже если сидите на стульях одной модели, вы не знаете всех их аспектов, не можете знать, что у собеседника одна ножка может быть короче другой или обшивка другого цвета, или что он на него когда-то красу пролил. А это в определенный момент может в беседе о стульях стать важно (один думает что это хороший стул, а другой что плохой, а на самом деле у одного просто затыка на одной ножке слетела и он качается). Если так делать, то когда обнаружишь, что термины разошлись, не станешь с умным видом заявлять "ба, да мы опять пришли к спору о терминах!" а разрулишь и продолжишь.
Мы не говорим о качестве стульев. Мы говорим об определимости терминов. И факт того, что опыт собеседника отличается от твоего как раз и служит указанием выполнить согласование терминов. Я вот сейчас скажу, что: "m8 не отрабатывает по сигналам MainRequester". Понял ты меня? А это вполне конкретные вещи в рамках вполне конкретной программы. Однако термины наши — не согласованы. Сможем мы понять друг друга? Хрен.
Кё>С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет.
Ага. А как ты собеседника отыскиваешь? Пальцем в небо тычешь? Ты для него сначала скидываешь часть своего терминологического базиса: "требуется программист на Java". Кто не знает значения терминов "программист" и "Java" к тебе просто не попадут.
Так что, насчёт согласования терминов ты погорячился.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Нет такой вещи, как «парадигма программирования». Поскольку «набор взглядов» относится к характеристике субъекта, а не объекта.
В данном очерке термин "нормальная наука" означает исследование, прочно опирающееся на одно или несколько прошлых научных достижений — достижений, которые в течение некоторого времени признаются определенным научным сообществом как основа для его дальнейшей практической деятельности. В наши дни такие достижения излагаются, хотя и редко в их первоначальной форме, учебниками — элементарными или повышенного типа. Эти учебники разъясняют сущность принятой теории, иллюстрируют многие или все ее удачные применения и сравнивают эти применения с типичными наблюдениями и экспериментами. До того как подобные учебники стали общераспространенными, что произошло в начале ХIХ столетия (а для вновь формирующихся наук даже позднее), аналогичную функцию выполняли знаменитые классические труды ученых: "Физика" Аристотеля, "Альмагест" Птолемея, "Начала" и "Оптика" Ньютона, "Электричество" Франклина, "Химия" Лавуазье, "Геология" Лайеля и многие другие. Долгое время они неявно определяли правомерность проблем и методов исследования каждой области науки для последующих поколений ученых. Это было возможно благодаря двум существенным особенностям этих трудов. Их создание было в достаточной мере беспрецедентным, чтобы привлечь на длительное время группу сторонников из конкурирующих направлений научных исследований. В то же время они были достаточно открытыми, чтобы новые поколения ученых могли в их рамках найти для себя нерешенные проблемы любого вида.
Достижения, обладающие двумя этими характеристиками, я буду называть далее "парадигмами", термином, тесно связанным с понятием "нормальной науки". Вводя этот термин, я имел в виду, что некоторые общепринятые примеры фактической практики научных исследований — примеры, которые включают закон, теорию, их практическое применение и необходимое оборудование, — все в совокупности дают нам модели, из которых возникают конкретные традиции научного исследования. Таковы традиции, которые историки науки описывают под рубриками "астрономия Птолемея (или Коперника)", "аристотелевская (или ньютоновская) динамика", "корпускулярная (или волновая) оптика" и так далее. Изучение парадигм, в том числе парадигм гораздо более специализированных, чем названные мною здесь в целях иллюстрации, является тем, что главным образом и подготавливает студента к членству в том или ином научном сообществе. Поскольку он присоединяется таким образом к людям, которые изучали основы их научной области на тех же самых конкретных моделях, его последующая практика в научном исследовании не часто будет обнаруживать резкое расхождение с фундаментальными принципами. Ученые, научная деятельность которых строится на основе одинаковых парадигм, опираются на одни и те же правила и стандарты научной практики. Эта общность установок и видимая согласованность, которую они обеспечивают, представляют собой предпосылки для нормальной науки, то есть для генезиса и преемственности в традиции того или иного направления исследования.
— Т.Кун
Концепция -- система взглядов на те или иные явления; способ рассмотрения какого-либо явления.
Парадигма -- система взглядов, господствующих в научном обществе в течение определенного исторического периода. В господствующем положении ее основное отличие от концепции.
Бывают ли подобные господствующие системы взглядов в программистском сообществе?
См.здесь
Все поскипал, точка зрения понятна, спорить неохота, тем более что даже Википедия с тобой не согласна.
V>>Из-за этой пресловутой "точки зрения" вся неразбериха и возникла, и ты пытаешься ее продолжить. S>Нету никакой неразберихи. Есть просто уровень абстракции, на который вы с Геннадием не можете пока взобраться.
А вот с "уровнем абстракции" тоже поосторожней плиз, ты ввернул термин не по месту. Некий уровень абстракции не подразумевает неопределенности, он подразумевает отсутствие неких деталей (осей пространства состояний) и все. Не с уровнем абстракции проблемы, а с точностью формулировки, ну или хотя бы трактовки, наконец (!!!). Вот у тебя трактовка не совпадает с общепринятой, но тем не менее ты находишь аргументы в ползу своей трактовки. О чем это говорит, надеюсь, и так понятно?
S>У меня-то как раз со смыслом термина все в порядке. Это ты все время пытаешься придать ему какой-то не присущий ему смысл. То религиозный (на парадигму, оказывается, "молятся"), то практический. И поэтому тебе кажется, что определение неправильное.
Когда термин был почти устаканен ворвался Синклер и опять вернул все в начало, т.е. в полную неопределенность. Так значит парадигм все-таки нет? Раз их невозможно ни сформулировать, ни границ провести, ни даже некие теории или практики с ними сопоставить?
Полезно тебе проследить историю возникновения термина, и особенно его первое упоминание в IT. А так же вообще понять, что означает термин ПАРАДИГМА в других, не IT областях.
Здравствуйте, Sinclair, Вы писали:
S>Короче, это похоже на "проблему сантехника": идеальный сантехник, не знакомый ни с чем, кроме разводного ключа, во всем видит только разводные ключи. Если он не сумел увидеть в чем-то разводной ключ, это что-то объявляется "прыжками без земли под ногами", "знаниями сомнительной ценности" и т.п.
Ты уверен, что эта налогия работает на тебя? Тем более, что оппоненты настаивали на изучении как можно большего числа базовых понятий взамен производно-прикладных.
Да и вообще, если пошел спор за термины, было бы разумнее не отвлекаться на аналогии.
ГВ>>Приехали. Точка сборки рулит. S>Ну, в чем-то да. Хотя Кастанеду я не люблю за излишнюю, на мой взгляд, серъезность и придание повседневным, в общем-то, вещам, какого-то мистического смысла.
+10, но не за Кастаньеду, а за причину
S>А тебя не смущает, что в музыке, к примеру, преподают стили и течения? И ведь как-то узнают, глядит ученик на задачу так или эдак. Или ты предлагаешь нафиг все эти курсы разогнать, а учить только конкретным приемам гитарной игры?
Учили мы эти музыки и по сольфеджио пятерки были. Так вот, течения очень даже конкретно преподают, если хочешь — формально. Вполне определенная совоккупность признаков. Точно так же легко различить смешанные течения и произведения — опять же, по совокупностям смешанных признаков.
ГВ>>Тогда на кой про парадигмы вообще вспоминать? Наукообразия для? S>Для науки. Самое время вспомнить, что далеко не все науки относятся к категории "точных". И программирование к такой науке уж точно не относится. Информатика, как часть математики — относится, но программирование — это не только информатика.
Мне всегда казалось, что программирование — неточная наука только на этапе сбора требований. Но это как и в любой другой инженерии. Тот факт, что для решения задачи могут быть применены разные пути не делает науку неточной. В математике тоже частенько попадаются разные пути решения одних и тех же задач.
S>Элементарно. Человек, в отличие от конечного автомата, способен манипулировать недоопределенными образами. И ничего, справляется.
Да ради бога. Пусть будет так до тех пор, пока люди не общаются друг с другом и не передают друг другу знания. Ты не задумывался, для чего вообще был изобретен "формальный стиль" изложения? Несмотря на то, что формальный стиль очень отличается от мммм.... физического способа функционирования нашего мозга.
S>Уточни значение, которое ты придаешь термину "смысл".
Здравствуйте, Кодёнок, Вы писали:
Кё>>Никакое понятие нельзя однозначно определить
Кё>В английском на этот счет есть каламбур, it depends on you definition what "is" is
В английском "is" имеет слишком много значений, но есть более точные слова/фразы — синонимы.
Здравствуйте, VladD2, Вы писали:
PD>>ИМХО парадигма программирования так же относится к реальному программированию, как форум "Философия программирования" — к тематическим форумам
VD>Понимание и оценка в основном завист от личности.
Здравствуйте, Sinclair, Вы писали:
S>Итак, можно подвести итоги данного топика. Совершенно очевидно, что мы стали свидетелями зарождения новой парадигмы — безпарадигматического (aparadigmatic) программирования.
Я думал, мы стали свидетелями глупой формулировки терминов. И у кого-то плохо с чуством юмора. "Парадигмы нет" — это был стеб. И последующая реакция показала — что весьма удачный, раз настолько задело за живое. В десятках постов после этой фразы оппоненты тебе объяснили тебе свой взгляд более подробно, и ты там, кажется, малость плаваешь, в своих попытках "формулирования".
S>Этот образ мышления отрицает наличие какого-либо прикладного значения как у самого понятия "парадигма программирования", так и у конкретных парадигм. Влияние образа мыслей исследователя на проблему в этой парадигме начисто отрицается, считается что в решении задач играют роль только конкретные методики, а также строгие математические модели.
S>Основным парадоксом данной парадигмы, конечно же, является невозможность ее признания ее же приверженцами.
S>Да я-то — уже. Вот на первых курсах когда учился, помнится тоже нигилистически всю философию записывал в категорию "страдания фигней". А потом как-то начал понимать, что без нее невозможно считать себя человеком разумным. Оказывается, это не просто деление ноля на ноль, а вполне полезная и необходимая вещь. Не все знания человечества удается уложить в рамки "наборов методов и моделей". Глупо пренебрегать остальными знаниями. Я все же рекомендую помедитировать на досуге над тем, что столь неприятное тебе определение "парадигмы программирования" из википедии — правильное. Я вижу, как вы на пару с вдимасом ухитряетесь читать в вики только знакомые буквы. Чуть что-то выходит за рамки ваших представлений — сразу игнорируете. Дубы видишь, сосны видишь, а лес — не видишь. Не переживай — лесу пофигу, увидел ты его или нет
Хотел ответить насчет кривого представления понятия "философия", но Гена опередил.
Здравствуйте, Sinclair, Вы писали:
S>Но поскольку понятие "цена знаний" имеет четко выраженную субъективную сущность, то спорить о нем бесполезно. Так что останемся при своих: я со своей выской оценкой слабоформализованных знаний, вы — со своей низкой. Не надо только навязывать всем свою оценку.
Слушай, ты вообще в курсе откуда пошел этот топ? Ты уверен, что этот абзац по адресу? Я полностью с тобой согласен, но учитывая причины спора — это как бы аргумент в нашу пользу. Все началось с того, что кто-то пытался беззаговорочно аппелировать к тому, что недостаточно формализовано. И когда указали на это — первое время пытался спорить, затем закончил примерно так: "вы нифига не смыслите в высоких материях". Твоя точка зрения, хотя я с ней не совсем согласен, опять же нам на руку.
Здравствуйте, Геннадий Васильев, Вы писали:
Кё>>Дай мне четкое определение термина, если сможешь. ГВ>Стул — это устройство, предназначенное для сидения на нём и снабжённое опорой для спины. Может быть и без сидения и без ножек вообще. Может быть циклопических размеров.
Диван тоже предназначен для сидения и снабжен опорой для спины. Договоримся считать его стулом, или подкорректируешь определение?
ГВ>Мы не говорим о качестве стульев. Мы говорим об определимости терминов.
Уже об определимости? А я думал, об однозначной определимости.
Разве я сказал "никакое понятие нельзя определить?". Не говорил. Моя позиция, для тех, кто не понял:
Любое серьезное обсуждение будет много раз приходить к ситуации рассогласования терминов. Это нормально, это обычно. Глупо пытаться один раз навсегда определить с понятиями, и только потом начинать.
У двух людей не может быть одинакового понимания вещи, до какой бы степени детализации они не спустились.
Предложение начать беседу с определения терминов вообще нереализуемо на практике, потому что
С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет.
Разве такую банальность нужно пояснять? Ты когда топик создавал, знал, что речь об определении стула зайдёт? Я — нет.
--------------------
За этой чертой ничего серьезного, просто стеб над логическими ошибками.
ГВ>И факт того, что опыт собеседника отличается от твоего как раз и служит указанием выполнить согласование терминов.
Опыт одного всегда отличается от опыта другого, в отношении любой самой малой вещи. Если это служит указанием выполнить согласование терминов, то теперь всю жизнь непрерывно термины согласовывать? Логика где?
Кё>>С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет. ГВ>Ага. А как ты собеседника отыскиваешь? Пальцем в небо тычешь? Ты для него сначала скидываешь часть своего терминологического базиса: "требуется программист на Java".
То есть просто употребление слова "Java" ты считаешь процессом определения этого термина? Воистину, все зависит от нашего определения слова "определение" Интересно, vdimas тоже именно это имел ввиду, когда предложил тут термины согласовать? Тогда я просто пишу: СТУЛ и ты тоже напишешь это слово, и будем считать, согласовали? Логика где?
ГВ>Кто не знает значения терминов "программист" и "Java" к тебе просто не попадут.
А если к тебе по объяслению придет музыкант, умеющий програмировать синтезатор "Java", то это значит, ты виноват, определение неверное дал?
Решил добавить.
V>>>>То бишь приносит ожидаемые бенефиты, ради которых на нее родимую молятся. Для ФП — доказуемость корректности, например. S>>>Опять бред какой-то. Никто не молится ни на какие парадигмы! Бенефитов тоже нет. Доказательства корректности не зависят от применяемой парадигмы программирования. Пойми, что парадигма программирования — это не какой-то конкретный метод или модель. Это способ восприятия программ!
ГВ>>Так... А технический вуз, следовательно, должен стать филиалом племени Яки? S>Нет, он должен превратиться в техникум, где просто заучивается набор практик. На 101-кнопочных 32х разрядных станках с ЧПУ.
Посмотри последнюю часть. Там я про свои реальные наблюдения говорю. Понимаешь, какая штука. В штатовских ВУЗах айтишникам дают куда как больше практики, и я уверен, им много преподают этих "парадигм" (ибо без них нереально с умным видом читать тонны этой практики, нужно же иметь хоть какое-то подобие классификации для сохранения лица). Так вот, как результат получаем низкую универсальность спецов (узколобость), неспособность мыслить широко и трудности в освоении новых парадигм. Вполне закономерный реультат, если тратить студенчесское время не по существу.
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Совсем не оправдания ради, но истины для. Всё-таки, следует отличать личные оскорбления и характеристики высказываний.
Лучше бы извинился бы перед Синклером.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, vdimas, Вы писали:
V>Особенно хороша первая вырезка. Примерно к тому же я пришел за время всех этих споров. Привет Синклеру.
И в очередной раз доказал, что стоя на близких позициях к взглядам оппонентов умудряшся спорить с ними и поддерживать прямопротивополженный взгляд (видимо из чувтсва протеста и солидарности).
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
PD>>ИМХО парадигма программирования так же относится к реальному программированию, как форум "Философия программирования" — к тематическим форумам VD>Понимание и оценка в основном завист от личности.
Как говаривал Ошо: если эта фотография и есть ваша жена, то можно сказать, что она очень маленькая и плоская.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
V>>Особенно хороша первая вырезка. Примерно к тому же я пришел за время всех этих споров. Привет Синклеру.
VD>И в очередной раз доказал, что стоя на близких позициях к взглядам оппонентов умудряшся спорить с ними и поддерживать прямопротивополженный взгляд (видимо из чувтсва протеста и солидарности).
Э-э-э нет, не обобщай, плиз. Я передал привет Синклеру из-за его позиции в этой ветки, где он именно настаивает на "переводе" понятия парадигма как нечто заведомо эфимерного и субъективного. смотри что он пишет:
Речь идет о том, что нет никакого объективного и независящего от субъекта способа сгруппировать методы так, чтобы они разделились на парадигмы.
И все в этом духе вплоть до того, что:
"Взгляд" в данном случае является объективной констатацией субъективного и неформального характера термина "парадигма". Потому как группировать методы программирования в соответствии с парадигмой будет все же субъект. Используя свои взгляды.
А согласен я с этим из предыдущего поста:
Достижения, обладающие двумя этими характеристиками, я буду называть далее "парадигмами", термином, тесно связанным с понятием "нормальной науки". Вводя этот термин, я имел в виду, что некоторые общепринятые примеры фактической практики научных исследований — примеры, которые включают закон, теорию, их практическое применение и необходимое оборудование, — все в совокупности дают нам модели, из которых возникают конкретные традиции научного исследования.
и далее по тексту...
Ну разве не приятное глазу определение? И где это Генин взгляд прямо противоположный?
Ты прямо как будто не мне этим постом отвечал, а не понятно кому. Я-то еще при светлой памяти
Или ты имеешь ввиду тот стеб, что "парадигмы не существует", дык он вроде уточнил не раз, а потом мы вроде бы спорили только о точной формулировке самого этого термина. И наш "всплеск" обменов мнениями с Синклером показал, что каждый понимает этот термин в меру своей распущенности. Ничего удивительного в данном случае, ибо само слово "парадигма" в русском не то чтобы уж очень употребительное, потому и трактуется некоторыми личностями по-своему.
Здравствуйте, Кодёнок, Вы писали:
Кё>>>Дай мне четкое определение термина, если сможешь. ГВ>>Стул — это устройство, предназначенное для сидения на нём и снабжённое опорой для спины. Может быть и без сидения и без ножек вообще. Может быть циклопических размеров.
Кё>Диван тоже предназначен для сидения и снабжен опорой для спины. Договоримся считать его стулом, или подкорректируешь определение?
Стул предназначен для одного человека (я надеюсь, мы не будем вспоминать о медицинском значении термина "стул"?) и не допускает лежания на оном.
Хотя, возможно, что некий конкретный диван будет коротким...
И возвращаясь к парадигме топика, в гипотетическом институте мебелестроения будут всё-таки преподавать методы работы с древесиной, объяснять её свойства и разбавлять это всё сопроматом.
ГВ>>Мы не говорим о качестве стульев. Мы говорим об определимости терминов. Кё>Уже об определимости? А я думал, об однозначной определимости. Кё>Я поспорил с чем? Вот с этим
А вот не надо цепляться к отдельно взятым словам! vdimas имеет ввиду, что все дискутирующие, как минимум, трактуют термин одинаково. Иными словами, они схоже реагируют на термин. Например, вспоминают о гравитации, мере силы и сэре Ньютоне при упоминании термина "ньютон". А в качестве метафоры такого длинного предложения выражение "однозначное понимание" вполне подходит. В метафорах ничего плохого нет, лишь бы они были к месту.
Кё>Разве я сказал "никакое понятие нельзя определить?". Не говорил. Моя позиция, для тех, кто не понял: Кё>Любое серьезное обсуждение будет много раз приходить к ситуации рассогласования терминов. Это нормально, это обычно. Глупо пытаться один раз навсегда определить с понятиями, и только потом начинать. Кё>У двух людей не может быть одинакового понимания вещи, до какой бы степени детализации они не спустились.
Совершенно одинакового — не может быть. Поскольку мы не знаем, что такое "понимание". Но вполне возможна ситуация, когда участники трактуют один и тот же термин достаточно непротиворечиво для того, чтобы действовать совместно. Скажем, моряки, услышав "кнехт" вспоминают не о лошадях и копьях, а о швартовке и канатах. Вероятно.
Всё же, давай, немного смягчим постановку задачи? Надеюсь, ты согласен.
Обсуждение возможно при отсутствии конфликтов в трактовке терминов, на базе которых строится дискуссия. В данном случае конфликт даже констатировать дополнительно не нужно. Не будь его, не было бы и дискуссии. Следовательно, нужно доопределять термин. Будет его трактовка однозначной "вообще" или нет — вопрос, поскольку для начала нужно определиться с набором значений и группой "вообще".
Но вполне разумно ввести критерии, по которым можно отбросить заведомо некорректные определения. Любые! Один из первых — оценка субъектной направленности определения. В общем-то, недопустимость "субъектной ориентации" дополнительно подтверждается рассуждением, опубликованным здесь
Те, кто пытается обозначить любое суждение как субъективное и, следовательно, ничего не значащее, сами того не сознавая, пытаются изрекать объективную истину, т.е., заведомо противоречат сами себе. Ну, или сходу устраняют значимость своих собственных суждений. Если любое суждение можно свести к субъективному, то тогда и высказывание о "субъективности оппонента" тоже субъективно и не имеет какого-либо доказательного значения.
Если посмотреть на вещи чуть более широко, то получится, что любая оценка содержания субъекта (перечитывать до полного понимания!) автоматически сводит на "нет" значимость подобной оценки, потому что сразу ставит вопрос о наличии такой же сущности в субъекте, изрекающем эту апелляцию. Потому, кстати, глупы апелляции к "добру" и "злу". Каждый понимает их по-своему, следовательно, без субъектов нет ни зла, ни добра. А если постулируется, что они есть независимо, то, значит, осталось найти хотя бы одного, для кого всеобщее добро окажется злом. О так вот...
Упоминавшийся в этой дискуссии тезис Чёрча-Тьюринга обозначает роль субъекта, но не его характеристики. То есть, он не пытается описать саму "интуицию", а лишь предполагет некую связь межд интуитивным представлением о вычислимости и фактической вычислимостью. (шукать отсюда
). С какого бодуна возникло то или иное интуитивное представление, тезису глубоко фиолетово. Если интуиция конкретного субъекта в некотором случае молчит, то молчит и тезис Чёрча-Тьюринга.
Кё>Предложение начать беседу с определения терминов вообще нереализуемо на практике, потому что Кё>С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет.
Ага, сначала ввяжемся, а потом разберёмся? Зайди в ближайший универсам, и... см. ниже!
Кё>Разве такую банальность нужно пояснять? Ты когда топик создавал, знал, что речь об определении стула зайдёт? Я — нет.
Банальности бывают разные. Здесь и сейчас я наблюдаю твоё заблуждение по поводу невозможности согласовать термины.
А вместо темы стула лучше тему сисек раскрыть.
Кё>-------------------- Кё>За этой чертой ничего серьезного, просто стеб над логическими ошибками.
Ну-ка, ну-ка!
ГВ>>И факт того, что опыт собеседника отличается от твоего как раз и служит указанием выполнить согласование терминов. Кё>Опыт одного всегда отличается от опыта другого, в отношении любой самой малой вещи. Если это служит указанием выполнить согласование терминов, то теперь всю жизнь непрерывно термины согласовывать? Логика где?
Давай поиграем в игру? Ты — продавец в универсаме. Я — покупатель. Я прихожу к тебе и говорю, что я хочу чернику в йогурте. Что ты ответишь?
Кё>>>С определения терминов никто не начинает хотя бы потому, что пока к делу или разговору не приступил, не знаешь, какие термины будут использованы, а какие нет. ГВ>>Ага. А как ты собеседника отыскиваешь? Пальцем в небо тычешь? Ты для него сначала скидываешь часть своего терминологического базиса: "требуется программист на Java". Кё>То есть просто употребление слова "Java" ты считаешь процессом определения этого термина? Воистину, все зависит от нашего определения слова "определение" Интересно, vdimas тоже именно это имел ввиду, когда предложил тут термины согласовать? Тогда я просто пишу: СТУЛ и ты тоже напишешь это слово, и будем считать, согласовали? Логика где?
Употребление слова "Java" не есть процесс его определения. Сие употребление — результат уже состоявшегося процесса определения термина. То есть, кто-то, где-то, когда-то придал этому термину вполне конретное объективное значение: язык программирования Java. А мы сейчас этим термином (то бишь, результатом процесса) пользуемся. И пишем слова: "Java-программист" если нам требуется... Java-программист!
ГВ>>Кто не знает значения терминов "программист" и "Java" к тебе просто не попадут. Кё>А если к тебе по объяслению придет музыкант, умеющий програмировать синтезатор "Java", то это значит, ты виноват, определение неверное дал?
Угу. Я не предполагал (эк, балбес!), что термины моего объявления могут совпасть с терминами аналогичных объявлений для музыкантов (неуч хренов!). Офигею немного, но потом припишу в объявлении: "Cинтезаторы 'Java' не имеются ввиду!". Коль пошла такая пьянка, то что делать? В конце концов, чего только не бывает? И когда я буду искать программиста на Lisp, то посмотрю: нет ли случайно такого синтезатора или, скажем, грузовика или танка. Кстати, при поиске метапрограммиста ещё припишу: "психологам просьба не беспокоиться".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
V>Посмотри последнюю часть. Там я про свои реальные наблюдения говорю. Понимаешь, какая штука. В штатовских ВУЗах айтишникам дают куда как больше практики, и я уверен, им много преподают этих "парадигм" (ибо без них нереально с умным видом читать тонны этой практики, нужно же иметь хоть какое-то подобие классификации для сохранения лица). Так вот, как результат получаем низкую универсальность спецов (узколобость), неспособность мыслить широко и трудности в освоении новых парадигм. Вполне закономерный реультат, если тратить студенчесское время не по существу.
Обрати внимание: именно в случае гиперспециализации и её последствий "парадигмы" и становятся чем-то очень значительным.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Спасибо! Отмечу несколько слов, очень важных в контексте дискуссии.
Т>
В данном очерке термин "нормальная наука" означает исследование, прочно опирающееся на одно или несколько прошлых научных достижений — достижений, которые в течение некоторого времени признаются определенным научным сообществом как основа для его дальнейшей практической деятельности. [...] Это было возможно благодаря двум существенным особенностям этих трудов. Их создание было в достаточной мере беспрецедентным, чтобы привлечь на длительное время группу сторонников из конкурирующих направлений научных исследований. В то же время они были достаточно открытыми, чтобы новые поколения ученых могли в их рамках найти для себя нерешенные проблемы любого вида.
Т>Достижения, обладающие двумя этими характеристиками, я буду называть далее "парадигмами", термином, тесно связанным с понятием "нормальной науки". Вводя этот термин, я имел в виду, что некоторые общепринятые примеры фактической практики научных исследований — примеры, которые включают закон, теорию, их практическое применение и необходимое оборудование, — все в совокупности дают нам модели, из которых возникают конкретные традиции научного исследования. Таковы традиции, которые историки науки описывают под рубриками "астрономия Птолемея (или Коперника)", "аристотелевская (или ньютоновская) динамика", "корпускулярная (или волновая) оптика" и так далее. Изучение парадигм, в том числе парадигм гораздо более специализированных, чем названные мною здесь в целях иллюстрации, является тем, что главным образом и подготавливает студента к членству в том или ином научном сообществе. Поскольку он присоединяется таким образом к людям, которые изучали основы их научной области на тех же самых конкретных моделях, его последующая практика в научном исследовании не часто будет обнаруживать резкое расхождение с фундаментальными принципами. Ученые, научная деятельность которых строится на основе одинаковых парадигм, опираются на одни и те же правила и стандарты научной практики. Эта общность установок и видимая согласованность, которую они обеспечивают, представляют собой предпосылки для нормальной науки, то есть для генезиса и преемственности в традиции того или иного направления исследования.
Т>- Т.Кун
Просто и ясно подаётся основа для введения термина. Термином обозначается не что-то, присущее субъекту, а совокупность вполне объективных вещей.
Можно допустить и некоторую вольность в употреблении термина "парадигма", если не забывать о схеме его определения.
Например, можно сказать о "парадигме STL", при условии, что под этим подразумеваются несколько характеристик вместе: а) STL, как образец для чего-то, б) методы программирования, присущие STL, в) концепции STL.
Можно говорить и о парадигме топика. Можно выделить ещё кучу парадигм.
Т>Или вот отсюда Т>
Концепция -- система взглядов на те или иные явления; способ рассмотрения какого-либо явления.
Т>Парадигма -- система взглядов, господствующих в научном обществе в течение определенного исторического периода. В господствующем положении ее основное отличие от концепции.
А тут снова бестолковщина начинается.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Коденок, без обид, а ты уверен, что правильно переводишь слово "парадигма"? Мне, например, прекрасно понятно, о чем ты тут толкуешь, но оно имеет другое именование. Похоже, ты пытаешься объяснить как устроено у человека "образное мышление", "интуитивное восприятие". (Достаточно логически продолжить произвольный твой абзац, чтобы прийти к такому заключению). Фиг его знает, как "образное мышление" устроено у разных людей, я не уверен, что одна и та же информация провоцирует одни и те же образы у меня и любого из моих коллег. Более того, невзирая на ассоциацию принципа действия образного мышления с "нечеткостью", самому этому понятию можно дать вполне четкое определение. Но оно будет вовсе не синонимом "парадигме".
---------
На самом деле ты затрагиваешь интересные вопросы, жаль что они к теме сайта никак не относятся.
Тем не менее, предлагаю помедитировать на тему того, что ты здесь пишешь. Что для тебя означает, например, когда при изучении некоего нового материала ты говоришь сам себе: "вот теперь я понял"? Точка "понимания" — это что? И как следствие — что является необходимым (и достаточном?) условием для возникновения "понимания"?