mikhailian.mova.org

О мнимой неправдоподобности технологических прорывов (Полная версия)

Updated 2026-06-17
Any sufficiently advanced technology is indistinguishable from magic.

© Arthur C. Clarke

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

Ну вот кто может поверить, что к началу 2000-х годов никому не известной конторой в Минске был разработан лучший в мире синаксический анализатор английского языка? Звучит неправдоподобно, да и проверить нельзя.

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

Я в то время как раз собирался изучить Ruby-on-Rails, и его ORM подсистема под названием ActiveRecord мне показалась подходящей для реализации необходимой функциональности.

Сказано-сделано. Помучав ближайшего гуру руби и рельсов , я за несколько вечеров написал нужную функциональность. Вышло меньше 1000 строк кода. Счастливый, я начал использовать свою библиотечку, делясь с коллегами радостью по поводу простоты и элегантности найденного решения.

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

Теперь исходные коды всех трёх библитек сводобно доступны. Вот моя, вот та, которую мне не подошла с самого начала ну а тут лежит монстр от стороннего производителя. Моя библиотека за последнее время подросла и занимает 1 200 строк на руби, внутренний конкурент похудел до 30 000 строк на С++, ну а в монстре около 200 000 строк на Java.