Второй недостаток — и на мой взгляд, главный: запредельная расхлябанность и неорганизованность, которая лежит в основе отнюдь не индийских программистов, а всей индийской нации. Чтобы объяснить, откуда берется эта тотальная энтропия, мне пришлось бы написать монографию (кстати, запросто: над этой темой размышлял долго и обстоятельно!). Если одной фразой, то причина индийской неорганизованности — в отсутствии индукции на уровне мышления. Частное знание не сводится к общему, а принципиально остается на частном уровне.
То есть, если у вас есть сто (тысяча) разных богов, вы, будучи европейским человеком, рано или поздно задумаетесь: а может, на самом деле богов не так много? Может, все эти разные боги реализуют нечто общее в различных ипостасях? В конце концов вы придете к духовному дуализму (манихейству) или, на худой конец, к монотеизму.
Для индуса подобное мышление пагубно и оскорбительно. Богов должно быть именно что тысяча, а лучше — десятки тысяч. И каждый — неповторимый и любимый. И так — во всем, включая программирование. Когда индийский программист решает любую стоящую перед ним задачу, он даже не пытается выработать какой-то один оптимальный алгоритм и свести к нему все множество вариантов. Для индийского программиста такой подход противоестественен, поэтому он, чаще всего, будет действовать следующим образом: сначала реализует первый попавшийся под руку вариант решения задачи, затем задумается, найдет альтернативный ход и добавит его тоже, потом задумается снова, найдет еще десять разных способов решить задачу и все десять добавит в код.
В результате на выходе получится чудовищная, бесформенная, неструктурированная, никак не формализованная и не организованная куча кода вперемешку с мусором. Все это будет стоить копейки и при этом даже работать. Хотя об эффективности программного решения и оптимальном использовании ресурсов лучше даже не задумываться.
Как видите, с индийским кодом все просто. Зато с университетским наоборот — очень сложно. Мне в руки в разное время попадалось много разных программ, написанных в университетах: и медицинских, и финансовых, и для обработки аудио/видео, и широкого пользования (утилиты, текстовые редакторы, конверторы форматов и т.д.). Если вы попросите меня сейчас назвать хотя бы одну из этих программ по имени, я в беспомощности разведу руками: ни одну из них по имени я не помню!
Причина амнезии отнюдь не в старческом склерозе (хочется надеяться :), а в совершенной бесцветности и незапоминаемости этих программных поделок. То, что я хорошо помню: у всех них был жуткий устаревший интерфейс, предельно неудобные алгоритмы выполнения задач (вот хорошее слово — перректальные алгоритмы) и баги, которые лезли изо всех щелей. Я уже не говорю о том, что программы, написанные в университетах, удивительно нестабильны и постоянно вылетают.
Иными словами: если существует что-то хуже индийского кода, так это код университетский. И здесь возникает серьезное недоумение: как такое возможно?! Ведь университет — это вершина образовательной пирамиды нашей цивилизации! Университет per se должен выдавать на гора самые лучшие, оптимальные решения — и потому, что в его стенах обучаются самые талантливые и перспективные студенты (будущие профессиональные программисты и инженеры IT), и потому, что здесь преподают лучшие специалисты в области кодостроения (в других областях — тоже лучшие). Во всяком случае так должно быть, и таковы представления мира о сущности университета.
Взгляните на эту картинку:
Это титульная страница портала святая святых отечественного знания — моей дорогой альма матер МГУ! Все про этот портал можно сказать уже визуально, но если кто-то не верит, сходите по линку и посмотрите исходный код. Полюбовались? Вопросы есть? Да, вы правы: ТАК писали сайты лет 20 тому назад (в середине 90-х).
Но позвольте, позвольте! Это же портал МГУ! Это же символ науки и все наши надежды на будущее! Может, проблема в том, что в МГУ учится много диких и необразованных гуманитариев, которые перекрыли талантливым программистам-гоблинам все дыхательные пути? Что ж, давайте заглянем на специализированные порталы «правильных» факультетов. Начнем с мехмата (механико-математического):
Упс, что-то не срослось! «Такой страницы нет». Линк на портале МГУ есть, а страницы нет. Наверное, у математиков нет времени на занятия таким ничтожным пустяком как оформление визитной карточки своего гениального факультета. Посмотрим, может, больше повезет с факультетом вычислительной математики и кибернетики (кому же как не им владеть высшим пилотажем HTML):
В сравнении со «страницей нет» прорыв космический. Еще бы — Drupal и даже седьмой. Правда, «из коробки». Такими, видимо избыточными, понятиями как дизайн, пропорции, цветовое решение никто не озабочивался. Видимо, тоже некогда.
В качестве развлечения предлагаю напоследок скриншот портала моего родного факультета МГУ — филологического: