Динамические аспекты Ruby

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