Opensource и все такое. Меня поражают многие проекты, сделанные в рамках opensource. С одной стороны, это ядро, gcc или kde. Огромные проекты, по качеству и возможностям спокойно конкурирующие с той же виндой. А с другой стороны такая печаль, как Xaraya. Для тех, кто не в курсе. Был такой уе...щный проект, как Postnuke.
Это такая веб-шняга, позволяющая дизайнеру (точнее художнику) накликать веб-сайт. Уровень такого сайта подходит лишь для сайта какого-то компьютерного клана. Людей не интересует дизайн и юзабилити. Им от него нужна лишь простая лента новостей и форум. Все. Больше ничего.
Из него родился еще более печальный проект Xaraya. Чем же они печальны? Для начала: скорость. Во-вторых, это гигантский объем кода и не до конца продуманное внутренне API. Т.е. понапихано огромное количество всякого абстрагирующего гавна, что приводит к 10-кратному увеличению кода. Это я не шучу, оно именно так и есть. Т.е. программисты, писавшие зарайю совершенно позабыли, что веб-приложение на php не имеет права на ненужные излишества, ввиде внутренного API, регистирующего какие-то внутренние event-ы. Или, например, реализации стандартной связи между базовыми модулями ввиде какого-то странного, чудовищно медленного dynamic-data механизма. Результат, вообщем, печален. Редактор при набивании сайта, отключенного от интернета, испытывает серьезные проблемы со скоростью работы. Процессор загружен до упора.
Да. И еще. Абсолютно невозможно на нем реализовать ЧПУ, т.е. нормальные пути, в которых нет знака вопроса и пятнадцати амперсандов. Например, см. мой сайт. Или lib.ru.
Что же происходит с разработчиками? Смотрим: в цикле происходит вызов функции. Смотрим дальше. Ее параметры не меняются, равно как не меняется и возвращаемое значение! Как вам? А? Это медленную операцию то в цикл запихать. Хорошее чувство юмора. Пишем баг-репорт разработчику (а это именно баг, а не feature-request). Он мне говорит: "иди на конец". И все. И так весь проект.
В догонку хочу сказать, что там нет ни одного INNER JOIN-а и категорическая невозможность иллюстрирования статей.
Вообщем, повторная реализация подобной функциональности вместо многих мегабайт кода заняла 300 килобайт и пару недель работы. (еще месяц на отлаживание).