Читать «Цифровой журнал «Компьютерра» № 174» онлайн - страница 17
Коллектив авторов
И при этом нами будут руководить здоровый рассудок и естественнонаучные знания, а не мифы, выращенные на идеологической почве.
Голубятня: Университетский код
Сегодня в «Голубятне» мы помедитируем над одним очень загадочным явлением — т.н. университетским кодом, то есть программными продуктами, исходящими из недр высших учебных заведений.
Мне всегда казалось, что самое страшное, что только может выйти из рук программиста, носит гордое имя «индийского кода». Причем оценка эта, как говорят американские люди, ubiquitous, повсеместно принятая и ставшая нарицательной. Причина «популярности» программного кода, выходящего из-под пера моих почти что уже родных индусов, в том, что индусы пишут наверное 70 % всего кода в мире. Пишут для всех и вся — начиная от России и заканчивая Латинской Америкой. Что касается американских компаний, то они, похоже, давно уже поголовно перешли на индийский аутсорсинг.
Почему индусы пишут для всех? Потому что а) просят очень недорого и б) индусов-программистов очень много. То есть — ну ОЧЕНЬ: похоже, в каждой деревне есть свой брамин, свой пастух и свой персональный программист. Нация, безусловно, чрезвычайно талантливая, однако страдающая от двух недугов.
Первый недостаток индийского программирования объясняется отсутствием полноценного образования. Наверное, 90 % индийских программистов — самоучки. Полные. Плюс — наколенный стиль работы: компы у них ужасные и устаревшие лет так на 10 (банально нехватает денег на апгрейд).
Второй недостаток — и на мой взгляд, главный: запредельная расхлябанность и неорганизованность, которая лежит в основе отнюдь не индийских программистов, а всей индийской нации. Чтобы объяснить, откуда берется эта тотальная энтропия, мне пришлось бы написать монографию (кстати, запросто: над этой темой размышлял долго и обстоятельно!). Если одной фразой, то причина индийской неорганизованности — в отсутствии индукции на уровне мышления. Частное знание не сводится к общему, а принципиально остается на частном уровне.
То есть, если у вас есть сто (тысяча) разных богов, вы, будучи европейским человеком, рано или поздно задумаетесь: а может, на самом деле богов не так много? Может, все эти разные боги реализуют нечто общее в различных ипостасях? В конце концов вы придете к духовному дуализму (манихейству) или, на худой конец, к монотеизму.
Для индуса подобное мышление пагубно и оскорбительно. Богов должно быть именно что тысяча, а лучше — десятки тысяч. И каждый — неповторимый и любимый. И так — во всем, включая программирование. Когда индийский программист решает любую стоящую перед ним задачу, он даже не пытается выработать какой-то один оптимальный алгоритм и свести к нему все множество вариантов. Для индийского программиста такой подход противоестественен, поэтому он, чаще всего, будет действовать следующим образом: сначала реализует первый попавшийся под руку вариант решения задачи, затем задумается, найдет альтернативный ход и добавит его тоже, потом задумается снова, найдет еще десять разных способов решить задачу и все десять добавит в код.