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