Здравствуйте, Кирилл Лебедев, Вы писали:
ГВ>>Собственно говоря, чем страдают статьи по программированию от ТРИЗовцев (и не только от них, но о других авторах чуть ниже), так это абстрагированием от целей рассматриваемых процессов.
КЛ>Цель как раз ясна — создавать устойчивые к изменениям архитектуры.
Я бы обозначил так: ещё одна цель. Ещё одна в целом ряду целей, для достижения которых разрабатывались ЯП: обучение, символьная обработка, доказательство теорем, системное программирование и т.п.
ГВ>>Глобальную задачу — научить компьютер общаться с человеком на естественном языке, — человечество так пока ещё и не решило.
КЛ>На самом деле, это такой миф про естественный язык. Никаких естественных языков, которые "естественнее" всех остальных, в природе не существует.
Ну, я, к сожалению, не лингвист, так что квалифицированно поддержать тему о естественных языках не смогу. Выскажу только несколько соображений:
КЛ>Существуют языки, заточенные под решение определенных классов задач. Так для счета мы используем язык арифметики. Три тысячи лет назад люди для обозначения чисел и операций над ними тоже использовали естественный язык. Каждое число обозначалось отдельным словом. Получалось неэкономно. Попробуйте-ка вычислить: "Триста восемьдесят семь плюс пятьсот девяносто восемь" без использования арабских цифр, позиционной системы счисления и правила сложения в столбик!
Думаю, что само числительное "триста" (или какой-либо его прямой семантический аналог) не появилось бы без предварительного появления системы счисления как таковой. То есть тут налицо впитывание разговорным языком специальной "математической" нотации. Впрочем, повторюсь, что я — не лингвист.
КЛ>"Естественный" язык (а правильнее его называть — разговорный) очень плох для решения таких задач. Поэтому-то древние и изобрели цифры и позиционную систему счисления. Т.е. был изобретен язык, который приспособлен для счета.
Опять таки, думаю, что дело здесь было в необходимости что-то посчитать. Отсюда и появилась система обозначений чисел и операций над ними.
КЛ>Точно так же и с другими областями человеческой деятельности. Попробуйте-ка написать программу уровня Microsoft Word на естестественном языке. Полагаю, еще та задачка. Не случайно, авторы ряда фундаментальных книг по алгоритмам и структурам данных как только дело доходит до описания алгоритмов, предпочитают псевдокод. А некоторые продвинутые товарищи изобретают даже собственные языки программирования — специально для записи алгоритмов.
Вот в этом абзаце что-то логическую связь улавливаю плохо. Да, Word, наверное, трудновато сформулировать на разговорном языке. Но его вполне можно выразить на ассемблерных мнемониках. И кроме того, некорректно упоминать Word в контексте обсуждения мутаций языков програмирования: он появился тогда, когда "культура" обозначений в языках программирования уже достаточно устоялась. А в то время, когда изобретались первые обозначения "mov", "add" и прочие подобные, задачи WYSIWYG-редактора ещё не стояло.
Что касается алгоритмов, то они тоже, в принципе, далековаты от естественных языков — это сугубо формальное понятие (если на время забыть о забавной игре слов — "неформальном описании алгоритма"). Отсюда и вполне естественное появление специальных формальных языков для выражения алгоритмов.
Мне кажется, что интерес в даном случае представляют соображения, по которым, например команде пересылки данных было присвоено какое-то мнемоническое обозначение, а не остановились на каком-нибудь восьмиричном: "1352". И вот что любопытно. Переход от восьмиричного кода к мнемоникам является "надсистемным" (а параллельно — "освежающим") только тогда, когда мы ограничиваем, не побоюсь этого слова, само мышление имеющейся системой символов (весь этот ворох восьмиричных кодировок). А если предположить, что мотивом такого перехода является именно желание выразить программу на языке, близком к естественному, то и переход окажется вполне закономерным, а символ "1352" — так себе, промежуточный этап.
Другой инетерсный интересный аспект. Переход к мнемоникам (т.е., первый шаг на пути приближения компьютерных языков к человеческим) — это почти раскупорка ящика Пандоры! Человек первый раз позволил себе подтянуть компьютерный язык к естественному со всем многообразием конструктивных возможностей последнего.
Когда, например, один монтёр говорит другому: "Ну ни х... себе, как его пожгло! Будем перекидывать концы." другому ясно, что первый сказал о том, что переключатель №9, марки ТВ-1-15-М покрылся нагаром из-за плохих контаков, что, вероятно, означает, что выключатель давно не меняли и прямо сейчас придётся менять разводку и выполнить ещё целую кучу вполне определённых действий. Вот он, ключ к паттернам, шаблонам и прочей программистской ерунде — все эти "техники" уже давным давно используются в обычной устной речи. Таким образом, дальнейшие эволюционные прыжки языков программирования становятся вполне объяснимыми — почва для них была уже давно подготовлена тысячелетиями эволюции систем символов. А нынешнее быстрое развитие языков и технологий программирования обусловлено тем, что программисты и компьютерные учёные попросту переводят этот опыт (в квинтэссенции которого они живут!) в формализованные конструкции языков програмирования. Порой, как мне кажется, даже не осознавая этого влияния. То есть, оказывается, что и изобретать-то ничего не нужно (эк, загнул!), всё и так уже есть, надо только посмотреть повнимательнее. То есть — прислушаться.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, ., Вы писали:
.>Ну почему — есть и такая штука, обобщённое AST на "все случаи жизни" — это XML.
Угрёбище редкостное этот самый XML.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
ГВ>То есть, оказывается, что и изобретать-то ничего не нужно (эк, загнул!), всё и так уже есть, надо только посмотреть повнимательнее. То есть — прислушаться.
Вот, кстати, объяснение, почему программистам полезно общаться с искусством: чтобы перенимать опыт выразительности символического отражения действительности. Таким образом сходятся рассуждения об "искусстве", "эстетике", "культуре" и "технологии" программирования. Вуаля!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Turtle.BAZON.Group wrote:
>> > Ну потому как зоопарк возник, нет обобщенного AST, > .>Ну почему — есть и такая штука, обобщённое AST на "все случаи жизни" — > это XML. > Ага. Только тоже имеет те же проблемы с семантикой.
О какой ты семантике говоришь при обсуждении Abstract Syntax Tree?..
> .>Ты хочешь общую теорию всего? Это невозможно сделать. Потому и смысла > нет. Для языка программирования синтаксис играет > .>относительно незначительную роль. > Склонен к обобщениям. Сделать то как раз возможно.
Как ты себе это представляешь?
> Вот только смысла нет, потому как никому не надо.
Ну раз любишь обобщать, значит тебе это надо. Вот и делай.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Геннадий Васильев wrote:
> .>Ну почему — есть и такая штука, обобщённое AST на "все случаи жизни" — > это XML. > > Угрёбище редкостное этот самый XML.
Зато работает.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ., Вы писали:
>> Угрёбище редкостное этот самый XML. .>Зато работает.
Крокодилы — тоже летают.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Геннадий, в своем сообщении Вы повторяете мысли, изложенные в нашей статье, только другими словами. Сравните сами.
Вы пишите: ГВ>"Проблема не в том, что именно было прикрыто. Вопрос: зачем? Ответ: чтобы приблизить "машинный" язык к человеческому. Поэтому и произошёл переход от тумблеров к мнемоникам".
Мы пишем: "Заметим: мнемоники, как бы сказали теперь, «инкапсулировали» (закрыли) «нули и единицы» от программиста. Стали «интерфейсом» между программистом и «нулями».
Вы пишите: ГВ>"Не совсем так. Это вытеснение некоторого функционала за пределы приложений. Задачи вполне естественны: развязать процессы разработки самого компьютера и приложений".
Мы пишем: "Изобретение операционной системы — это изобретение интерфейса между машиной и приложениями. Операционная система инкапсулирует в себе соотв. функции".
В чем разница? Вы написали то же самое, но при этом зачем-то попеняли.
. При этом, делается попытка противопоставить позаимствованные у нас мысли тому, что написано в статье.
Содержит сомнительную мысль по поводу естестественных языков. (Почему сомнительную? См. здесь
Кроме того, как у разработчика, у Вас наверняка есть свои примеры, когда применение данной закономерности на практике не срабатывает. Не думаю, что свой вывод Вы делали только со слов Геннадия.
Так что для того, чтобы действительно разобраться в том, почему на практике все "печальнее и запутаннее", нужно рассмотреть конкретные примеры. К сожалению, специфика любой исследовательской работы заключается в том, что исследователь оперирует фактами, а не мнениями. Мнения, не подкрепленные фактами, к сожалению (или, к счастью?) не играют никакой роли.
AVK>Я статью не критикую, я намекаю на то, что идея в этой статье стара как мир.
Новизна статьи заключается не в описании закономерности, а в демонстрации примеров, как данная закономерность может быть применена на практике.
. При этом, делается попытка противопоставить позаимствованные у нас мысли тому, что написано в статье. КЛ>Содержит сомнительную мысль по поводу естестественных языков. (Почему сомнительную? См. здесь
.) КЛ>
Не надо обсуждать здесь весь пост целиком. Ты просил примеров? В том посте примеры есть. Остальные притензии, плиз, к автору.
КЛ>Никаких примеров в посте не приводится.
А я думаю что приводятся. И автор со мной согласен, что характерно.
КЛ>Кроме того, как у разработчика, у Вас наверняка есть свои примеры, когда применение данной закономерности на практике не срабатывает.
Эту закономерность на практике вот так прям сразу применить нельзя, слишком она абстрактна.
КЛ>Так что для того, чтобы действительно разобраться в том, почему на практике все "печальнее и запутаннее", нужно рассмотреть конкретные примеры.
Конкретные примеры чего? На абстрактные мысли о нарастании абстракции сложновато привести конкретные примеры, не находишь?
КЛ> К сожалению, специфика любой исследовательской работы заключается в том, что исследователь оперирует фактами, а не мнениями. Мнения, не подкрепленные фактами, к сожалению (или, к счастью?) не играют никакой роли.
Тогда ты ошибся форумом. В этом форуме большей частью оперируют мнениями.
AVK>>Я статью не критикую, я намекаю на то, что идея в этой статье стара как мир. КЛ>Новизна статьи заключается не в описании закономерности, а в демонстрации примеров, как данная закономерность может быть применена на практике.
Возможно, я не ясно выделил акценты. Я пишу о мотивациях и том, что о них необходимо упоминать, коли речь идёт об изобретениях. Иначе оценка явления становится однобокой.
КЛ>Вы пишите:
Кстати, можно на "ты", если не возражаете.
ГВ>>"Проблема не в том, что именно было прикрыто. Вопрос: зачем? Ответ: чтобы приблизить "машинный" язык к человеческому. Поэтому и произошёл переход от тумблеров к мнемоникам".
КЛ>Мы пишем: "Заметим: мнемоники, как бы сказали теперь, «инкапсулировали» (закрыли) «нули и единицы» от программиста. Стали «интерфейсом» между программистом и «нулями».
Ну, по-моему, разница между этими абзацами очевидна: в первом случае вводится некая сущность, достаточная для обоснования перехода (я не утверждаю, что это соображение непременно было единственным). Второй же случай демонстрирует только переход сам по себе. И становится непонятно: а почему, собственно? Просто ради введения дополнительного интерфейса? Просто так, чтобы отвязать программиста от нулей и единиц? чём смысл введения дополнительной сущности "мнемоника"? Программист и так прекрасно проживёт — никогда не встречали людей, которые с лёгкостью оперируют шестнадцатеричными кодами? Я встречал.
КЛ>Вы пишите: ГВ>>"Не совсем так. Это вытеснение некоторого функционала за пределы приложений. Задачи вполне естественны: развязать процессы разработки самого компьютера и приложений".
КЛ>Мы пишем: "Изобретение операционной системы — это изобретение интерфейса между машиной и приложениями. Операционная система инкапсулирует в себе соотв. функции".
КЛ>В чем разница?
Возражение ровно то же самое, что и в первом случае. Вы выдёргиваете переход из причино-следственного контекста. Создаётся впечатление некой данности, случайности или "озарения", а не вполне закономерного перехода.
По содержанию здесь возразить нечего, ОС и в самом деле инкапсулирует определённые функции управления компьютером. Но отвязавшись от "постановки задачи" в виде вытеснения общей функциональности, мы неправомерно (на мой взгляд) оцениваем появление ОС как надсистемный переход. Скорее это просто оформление устоявшейся практики — предварительно были "мониторы", "супервизоры", что-то там ещё подобное. Да в конце концов, просто подпрограммы. То есть, появлению ОС именно как "ОС" предшествовала некоторая история удачных и неудачных решений, а операционная система уже вполне логично выкристаллизовалась из этих попыток.
Кстати, я упомянул подпрограммы — вот это, наверное, можно считать изобретением, хотя... Оно было сделано чуть ли не Адой Лавлейс.
И когда раз за разом встречаешь такую потерю обоснования, то и складывается неприятное впечатление от статьи: на базе непонятно как рассмотренных явлений делаются опять-таки непонятно насколько правомерные индукции (в несколько более резкой форме — "химеричные").
Например, называть ООП попыткой "создать интерфейс между функциями ("методами") и разработчиком", а после этого ещё и чем-то, достойным рассмотрения как надсистемный переход, попросту неверно. Об истоках ООП я уже упоминал, изначально речь там шла о фиксации знаний, дальше поищите сами по ключевым словам "фрейм-слот" (кстати, термин слот до сих фигурирует в Common Lisp). А дальше был просто активный маркетинг и свою роль сыграла определённая падкость программистской общественности до мифов. Опять таки, демографическая ситуация — пришло молодое поколение тех же программистов. Впрочем, всё это не умаляет и объективных достоинств декомпозиции в стиле ООП.
У вас же это подаётся в каком-то странном виде. Грубоватая аналогия. Были стенка, гвоздьи желание повесить картину на стенку. Был опыт забивания гвоздей и подвешивания картин. Забили гвоздь в стену, повесили картину. "Опс, — говорит автор статьи, — были стенка и гвоздь, и произошёл надсистемный переход к стенке-с-гвоздём! Значит дальше, вероятно, будет переход к стенке-с-многими-гвоздями!" Ну и таких урезанных наблюдений и фантастических предположений полна статья.
У вас на сайте есть запомнившийся мне пример с двумя баржами. Помните, вероятно, о том, как дополнительной вставкой между носовыми оконечностями сильно улучшили гидродинамику связки? Здесь как раз всё понятно: ввели новую сущность, которая не имела прямых аналогов в практике: составные суда в общем, в диковинку. То бишь, в этом примере есть всё, необходимое для читателя, чтобы он оценил изобретение, как изобретение. Понимаете разницу?
КЛ>Вы написали то же самое, но при этом зачем-то попеняли.
Дело в том, что изобретательская (как и любая иная) задача сама по себе невозможна без какой-то мотивирующей потребности. Если связать потребность, имеющийся инструментарий и решение, то становится ясным — почему решение выбрано именно такое, а не какое-то иное. И кроме того — в чём же состоит суть изобретения и как можно подкорректировать своё мышление, чтобы научиться "творчески думать". А в вашей статье как раз задача либо выпадает, либо интерпретируется не полно — пусть читатель, мол, додумает сам. Вот я и додумал, прихватив с собой бритву Оккама: если можно объяснить явления одной сущностью, то нет смысла вводить другие.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
ГВ>А в вашей статье как раз задача либо выпадает, либо интерпретируется не полно...
Я имею ввиду фрагмент, процитированный вами на RSDN, где вы касаетесь истории программирования. По основному тексту статьи тоже есть возражения, о них — позже.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, ., Вы писали:
.>Turtle.BAZON.Group wrote:
>> Ага. Только тоже имеет те же проблемы с семантикой. .>О какой ты семантике говоришь при обсуждении Abstract Syntax Tree?..
А если Abstract, то почему нет обобщения?
ПС: ладно, тема зашла в тупик. Было приятно пообщаться.
Здравствуйте, Геннадий Васильев, Вы писали:
.>>Ну почему — есть и такая штука, обобщённое AST на "все случаи жизни" — это XML. ГВ>Угрёбище редкостное этот самый XML.
Ну степень редкостности, конечно, сложно оценить... Но все равно .
В своих постах я к Вам обращаюсь на Вы. Прошу и Вас так же придерживаться этого правила вежливого общения.
AVK>Не надо обсуждать здесь весь пост целиком. Ты просил примеров? В том посте примеры есть. Остальные притензии, плиз, к автору.
По прежнему не вижу там примеров, которые бы подтвержали Вашу мысль: "Только вот на практике все намного сложнее, печальнее и запутаннее".
AVK>А я думаю что приводятся. И автор со мной согласен, что характерно.
Тогда, пожалуйста, скопипейстите их в Ваш ответ.
AVK>Конкретные примеры чего? На абстрактные мысли о нарастании абстракции сложновато привести конкретные примеры, не находишь?
Вот статья. В ней разобраны три примера: пример 1, пример 2 и пример 3. Если Вам непонятно, как закономерность, описанная в конце статьи, соотносится с примерами, Вы можете обратиться к разделу "Чем "исторические примеры" похожи на три предыдущих" или спросить. Но для этого должно быть желание разобраться .
Здравствуйте, AndrewVK, Вы писали:
КЛ>>В своих постах я к Вам обращаюсь на Вы. Прошу и Вас так же придерживаться этого правила вежливого общения.
AVK>Просьба принята во внимание, однако не удовлетворена.
Ваш ответ, как и ряд предыдущих Ваших постов, нарушает 5-ое правило поведения на форумах:
"Не допускается проявление грубого или неуважительного отношения к другим участникам форума. Оскорблять и обзывать собеседника, ставить под сомнение его профессиональную квалификацию, придираться к его нику, указывать на орфографические и синтаксические ошибки и т. д. запрещается". http://www.rsdn.ru/Info/rules.xml
Если Вы и дальше не будете принимать в расчет мою просьбу о вежливом обращении, я оставляю за собой право обратиться к администрации сайта.
КЛ>Если Вы и дальше не будете принимать в расчет мою просьбу о вежливом обращении, я оставляю за собой право обратиться к администрации сайта.
самое простое в таких случаях — не отвечать. вообще или только на неустраивающие тебя письма. есть научно-плпулярная книжка по бихевиоризму "не рычите на собаку!", в которой подробюно описаны принципы формирования поведения с помощью подкреплений. в частности, система оценок писем этого форума — удачный пример использования подкреплений. к сожалению, больше нигде я такого не встречал
Здравствуйте, Кирилл Лебедев, Вы писали:
AVK>>Просьба принята во внимание, однако не удовлетворена.
КЛ>Ваш ответ, как и ряд предыдущих Ваших постов, нарушает 5-ое правило поведения на форумах:
Понятно, еще один. Значит так, поясняю еще раз — здесь есть некие общепринятые правила поведения. Одно из них — тут в основном общаются на ты и никто ради тебя одного это менять не будет. Ну то есть попросить ты имеешь право, но точно так же тебе имеют право отказать. Этот вопрос уже миллион раз здесь обсуждался. Если тебе не нравятся наши порядки, у тебя всегда есть право вобще не использовать rsdn. Все, вопрос закрыт. Дальнейшее обсуждение только на moderator@rsdn.ru
P.S. Тут народ весьма опытный в дисскуссиях, так что подобные приемчики как правило не проходят. Да и модераторы иногда не дремлют.
... << RSDN@Home 1.2.0 alpha rev. 673 on Windows Vista 6.0.6000.0>>