The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Ответ для psyche"
Отправлено Аноним1, 18-Авг-08 13:26 
Пока я отвечал Вам, у меня еще больше сложилось впечатление, что Matz очень хорошо знает, что делает. Балансирует систему и не гонится за дешевой популярностью. Я не являюсь фанатиком Ruby. У меня даже очень небольшой опыт программирования на нем. Если мне покажут что-то лучшее в той области применения, на которую претендует Ruby, именно в той области, а не вообще, я это очень внимательно рассмотрю. Но пока я вижу только какие-то мелкие придирки.

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

Но самое главное, Вы сразу теряетесь, при вопросах о назначении, областях применения и важности. Когда программист не может ответить на вопрос, зачем нужно то или иное, это говорит только о том, что у него нет реального практического опыта, он просто что-то об этом слышал.

Например, как выясняется, Вы просто не знаете, что такое "чистота системы", а главное, зачем это нужно. Путаете это понятие с полнотой реализации некой теории.

Что по-Вашему имеется в виду под понятием "чистая реализация концепции ООП"?

Вы больше походите на ламера, который пытается умничать.

  • Функциональное программирование в Ruby

    Итак, Вы утверждали, что в Ruby по-Вашему неверно реализована альфа-редукция. Привели по этому поводу ссылку [ http://www.ruby-forum.com/topic/93339 ], и утверждали, что в этой ссылке говорится якобы о баге, который был профиксен. Также Вы привели пример, где по-Вашему проявляется неверная реализация альфа-редукции

    p n=[1]*3; n.each { |n| p n }; p n

    Повторяю в очередной раз.

    1. Вы не поняли, о чем говорится в том посте - там ничего не говорится о функциональном программировании.

    2. Слово "bug" использует только автор поста, да и то в вопросительной форме, Matz сказал, что это ожидаемое поведение, и что оно изменено в новой версии. Никакого бага. Ваши заявления о том, что Matz, что-то скрывает пока что являеются Вашими домыслами, Вы ничего не доказали. Почему это поведение ожидаемое, я объяснил в примерах в предыдущих сообщениях. То что Вы этого не поняли говорит только о том, что Вы не знаете имп парадигму.

    3. Читайте заявление о языке Ruby [ http://www.ruby-lang.org/en/about/ ]. "Ruby is a language of careful balance. ...language that balanced functional programming with imperative programming." - "Осторожный баланс". Никто Вам не гарантировал чистую реализацию функ парадигмы. Пользуйтесь чистыми функ языками для чистого функ программирования. Ваши претензии не по адресу. А как Вы вообще представляете себе язык, где одновременно в чистом виде были бы реализованы обе парадигмы.

    4. Докажите, что в Ruby вообще реализовано лямбда-исчисление, и где там по-Вашему должна была быть альфа-редукция и зачем она там нужна. Вы так на эти вопросы и не ответили. Я не знаю, что это такое и не обязан знать, я уже говорил. В статье из Википедии, ссылку на которую Вы приводите, это вообще называется альфа-конверсией. Вы снова "плаваете" в терминологии и не понимаете, о чем говорите. И вообще, объясняйте своими словами, нечего ссылками прикрываться. Тем более, все время выясняется, что Вы не понимаете сами, о чем там идет речь. Вы еще ссылки на печатные издания все время приводите. По-Вашему, все должны искать эти книги, чтобы только понять, о чем Вы говорите. Это говорит о том, что Вы просто умничающий ламер.

    Вы так и не ответили на вопрос. Так Вы считаете или нет, что блок в Ruby является лямбдой? Вы до сих пор так и не поняли, что из себя представляет объект-блок в Ruby.

    5. В сообщении [ http://www.opennet.ru/openforum/vsluhforumID3/43307.html#56 ] я задал Вам вопрос на засыпку. Что именно было "профиксено" в версии 1.9? А Вы меня переспрашиваете. Я-то знаю ответ на этот вопрос. Странно только, что Вы не знаете на него ответ, если утверждаете, что по-Вашему это баг, который наконец-то был профиксен в новой версии, и его по-Вашему никак не могли профиксить в старой. Откуда тогда Вы так уверены, что он по-Вашему наконец профиксен? Только потому, что стали выполняться знакомые Вам функ формулы?

    >Объясни такое поведение для Ruby 1.8.7. Почему в 1.9 оно другое? Какую парадигму использует Ruby 1.8.7? Какую парадигму использует Ruby 1.9?

    В обоих версиях используется императивная парадигма. Так и не поняли, что это такое?
    Вот Вы и объясните, если утверждаете, что это был баг, а если не можете объяснить, то не говорите о баге. Matz уже сказал, что это ожидаемое поведение. Это и есть тот самый "осторожный баланс" [ http://www.ruby-lang.org/en/about/ ].

    На самом деле, подсказок Вам дано было очень много, и в самой ссылке, которую Вы сами привели, но так и не разобрались. И в моих сообщениях. Вы эти подсказки упорно не видите. Если Вы такой невнимательный, то можно только представить, как Вы изучали функ программирование.

    >Не понял при чём здесь итератор. Наверное, ты, случайно, опечатался и имел в виду аргумент.

    Нет, не опечатался. Это была очередная подсказка. Именно итератор, а не просто параметр. В этом все и дело. Не знаете, что это такое? Вы до сих пор так и не поняли, что из себя представляет объект-блок в Ruby.

  • Множественное наследование в Ruby

    Вы сейчас снова пойдете в свой собственный Биореактор. Вам какой вопрос был в очередной раз задан?

    >>Что такое можно сделать с помощью МН, чего нельзя сделать с помощью его более изящных и эффективных альтернатив? И это вопрос не относительно Ruby, а относительно теории ООП. Что говорится в теории ООП про МН Вы явно не знаете.

    А Вы снова что говорите?

    >Вернёмся к началу дискуссии о множественном наследовании. Мои слова были буквально следующими: "Множественное наследование в Ruby не реализовано в чистом виде".

    Неправда, Вы говорили так.

    >Чистая реализация ООП? Множественное наследование в Ruby не реализовано в чистом виде.

    Неправильно. МН в Ruby вообще не реализовано.

    Здесь Вы лишь демонстрируете, что путаете понятия "чистота" и "полнота". Видимо, Вы вообще не знаете, что такое "чистота". И самое главное, какие она дает преимущества. В частности Вы просто не понимаете выражение "чистая реализация ООП".

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

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

    Задача не ставится в терминах ООП! Уже будучи поставленной она решается с помощью ООП. Или какими-то другими средствами.

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

    И зачем по-Вашему нужен старый вариант, в котором есть проблемы, если есть новый вариант, в котором проблем нет. Хотите оба варианта - используйте Python. Matz просто не стал повторять его ошибку.

    >Сейчас же ты приведи пример, который потребует меньшего количества сущностей для реализации множественного наследования в Ruby, нежели при использовании классического множественного наследования.

    Во-первых, пример в котором нельзя обойтись без МН никак не можете привести Вы. Нечего на меня перекладывать, если сами не можете. Этих примеров полно в теории ООП, изучайте. Во-вторых, не только с меньшим количеством сущностей, Вы опять уходите от главного. А главное - без тех проблем, которые есть в МН. Вы даже все еще так и не разобрались, что это за проблемы.

    Короче, изучайте ООП, прежде чем придираться. Вы просто умничающий ламер.

  • Другие навороты в Ruby

    >Значения по умолчанию не имеют отношения ни к императивному, ни к функциональному программированию.

    Снова неправильно. Они не имею отношения к функ, но имеют отношение к имп программированию. Но в Ruby нет только зн_по_ум для лямбда-функций, а если Вы сами признаете, что зн_по_ум не имеют отношения к функ прог, то насколько по-Вашему они важны? Кроме того Вы говорите о лямбда-функциях, а есть ли в Ruby лямбда-функции? Там точно есть блоки и итераторы, и у них другой синтаксис. Кроме того, Вы как всегда не читали толком причину, почему их не сделали. А причина в том, что уже не тянет LARL(1)-парсер. Хотя Вы вряд ли знаете, что это такое. Парсер нельзя до бесконечности загружать наворотами, а у Ruby и так очень богатый сиснтаксис.

    >Не пудри мне мозги словами: "API", "смесь", "ширпотрёб".

    Ни о чем.

    >Если тебе не нужны похожие возможности, то почему ты не используешь Brainfuck, который так же является Тьюринг-полным языком?

    Нелогично. Если я могу обойтись без тех фишек, которых нет в Ruby, это не значит, что мне не нужно то, что в нем есть, и что мне подойдет любой Тьюринг-полный язык.

    >Насколько важна конструкция unless в Ruby? Ни насколько. Но она позволяет сделать язык более простым и выразительным.

    То есть Вы хотите сказать, что он тоже не важен? Ну и насколько богаче и выразительнее делает язык приведенный Вами safeif.

    >Наглядно увидеть преимущества и простоту создания макросов можно в [1], или же их первое применение в третей главе.

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

    >Я говорю о макросах, а не о конкретных фичах. Ты попросил привести пример того, что eval и method_missing недостаточны, я его привёл пример ограниченности макропрограммирование в Ruby. CAPI это не макропрограммирование.

    Во-первых, после Ваших аргументов по поводу функ_прог и МН уже начинают возникать сомнения, насколько Вы хорошо разбираетесь и в этой теме.
    Во-вторых, тот пример котрый Вы привели, safeif, Вы так и не объяснили насколько он важен?
    В-третьих, макропрограммированием обычно расширяют язык в области концептуальных аспектов, в то время как safeif - это системная, техническая конструкция. В каких задачах требуются триггеры на изменение значения объекта? Как часто такие задачи возникают?

    Если safeif важен - хорошо. А если нет - есть еще какие-то аргументы в пользу недостаточности eval и method_missing. И самое главное, в каких областях применеия?

    И почему нельзя пользоваться C-API? Скриптовые языки как раз и развиваются обычно постепенным обрастанием вокруг C-API. А в Ruby именно С-API реализован очень чисто, просто и лаконично. В отличии, например от Python. А сами расширения возможностей макросов тоже как известно делаются на С. Я уже говорил сразу, что Ruby еще достаточно молодой язык, а это значит, что основное преимущество получают в нем именно профессиональные программисты, которые не ждут, когда дядя Matz что-то для них сделает, а сами могут сделать и предложить Matz'у.

  •  

    Ваше сообщение
    Имя*:
    EMail:
    Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
    Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
    Заголовок*:
    Сообщение*:
      Введите код, изображенный на картинке: КОД
     
    При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру