Красная шапочка

Red Hat, the programmers fairy tale.

ВНИМАНИЕ: дальше - спойлер

Там есть логическая (фактическая?) ошбка. После того, как $wolf -> Eat($grandmother); $red_hat постоянно Talk к $wolf’у. Но откуда $red_hat знает, что это $wolf? Ведь не даром же после unset($grandmother); создается алиас $grandmother = $wolf; - это так $wolf маскируется под $grandmother, однако почему-то эта маскировка остается незадействованной…

2 Responses to “Красная шапочка”


  • >$red_hat постоянно Talk к $wolf’у.
    Уверен? Она обращалась к интерфейсу бабушки, а волк захавав оную за’class-cast’ился под неё. Но не глупая $red_hat assert’ами лажу вычислила, ибо Desgin by Contract есть мощная техника вычислять run-time исключения. Кстати DbC класнючая однако вещь, особенно для языков с duck-typing’ом, ведь волк тогда мог бы просто скопировать traits бабушки и сразу закосить под неё в run-time без лишнего перекомпилирования. Одна трабла, все эти assert’ы процессор кушают если компилер/транслятор “кусок не потопляемого”…

    P.S. во нас проглючило 8))

    • Думаешь, метод Eat содержит условный class-cast?
      Почему условный? Да потому, что безусловный - это опасно. Скушает волк помидор и все - овощ. :)

      Кстати, здесь все происходит в рантайме. Как можно перекомпиливать сказку только чтобы закестить волка в бабушку? Это явный недостаток реализации уже. :)

Leave a Reply