Цифровой журнал «Компьютерра» 2013 № 21 (174) (Журнал «Компьютерра») - страница 18

Почему индусы пишут для всех? Потому что а) просят очень недорого и б) индусов-программистов очень много. То есть — ну ОЧЕНЬ: похоже, в каждой деревне есть свой брамин, свой пастух и свой персональный программист. Нация, безусловно, чрезвычайно талантливая, однако страдающая от двух недугов.

Первый недостаток индийского программирования объясняется отсутствием полноценного образования. Наверное, 90 % индийских программистов — самоучки. Полные. Плюс — наколенный стиль работы: компы у них ужасные и устаревшие лет так на 10 (банально нехватает денег на апгрейд).

Второй недостаток — и на мой взгляд, главный: запредельная расхлябанность и неорганизованность, которая лежит в основе отнюдь не индийских программистов, а всей индийской нации. Чтобы объяснить, откуда берется эта тотальная энтропия, мне пришлось бы написать монографию (кстати, запросто: над этой темой размышлял долго и обстоятельно!). Если одной фразой, то причина индийской неорганизованности — в отсутствии индукции на уровне мышления. Частное знание не сводится к общему, а принципиально остается на частном уровне.

То есть, если у вас есть сто (тысяча) разных богов, вы, будучи европейским человеком, рано или поздно задумаетесь: а может, на самом деле богов не так много? Может, все эти разные боги реализуют нечто общее в различных ипостасях? В конце концов вы придете к духовному дуализму (манихейству) или, на худой конец, к монотеизму.

Для индуса подобное мышление пагубно и оскорбительно. Богов должно быть именно что тысяча, а лучше — десятки тысяч. И каждый — неповторимый и любимый. И так — во всем, включая программирование. Когда индийский программист решает любую стоящую перед ним задачу, он даже не пытается выработать какой-то один оптимальный алгоритм и свести к нему все множество вариантов. Для индийского программиста такой подход противоестественен, поэтому он, чаще всего, будет действовать следующим образом: сначала реализует первый попавшийся под руку вариант решения задачи, затем задумается, найдет альтернативный ход и добавит его тоже, потом задумается снова, найдет еще десять разных способов решить задачу и все десять добавит в код.

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

Как видите, с индийским кодом все просто. Зато с университетским наоборот — очень сложно. Мне в руки в разное время попадалось много разных программ, написанных в университетах: и медицинских, и финансовых, и для обработки аудио/видео, и широкого пользования (утилиты, текстовые редакторы, конверторы форматов и т.д.). Если вы попросите меня сейчас назвать хотя бы одну из этих программ по имени, я в беспомощности разведу руками: ни одну из них по имени я не помню!