Я вот всегда думал, что такие серьезные проекты как Python, Perl, Ruby и прочие, пишутся людьми  «семи пядей во лбу». А оказывается, что и у них бывает проскакивает всякого рода быдло-код.

Наткнулся сегодня на такую статейку на рубиинсайдере http://www.rubyinside.com/ruby-1-9-3-faster-loading-times-require-4927.html. Суть (насколько это я понял): при использовании функции «require», которая подключает новый файл в программу, имя этого файла заносится в некий массив (кэшируется). При повторном включении, этот массив проверяется и если файл уже включен — функция ничего не делает. В общем случае для того чтобы узнать присутствует ли тот или иной элемент в массиве, что необходимо предпринять? Правильно! ПЕРЕБРАТЬ ВЕСЬ МАССИВ (тем или  иным способом)! Все книжки о таких языках как Perl, PHP, Ruby начинаются с описания структур данных, во всех этих книжках все нахваливают такие структуры как хэш, ассоциативный массив или словарь и настоятельно рекомендуют их использовать из-за высокой скорости работы.  А тут вот такое дело… Одно хорошо — руби избавился от такой «детской», на мой взгляд, болезни.

 

Читайте еще:

Рубрики: Разработка