15 ноября 2011 г. Философский взгляд на мир современных ИТ

Уход из жизни Стива Джобса заметно усилил все попытки осмыслить состояние, в котором оказалась сейчас индустрия программного обеспечения (ПО). Размышления, должен сказать, накапливались уже достаточно давно, но во многих свежих новостных анонсах неоднократно упоминались различные аспекты влияния Стива Джобса на мир информационных технологий (ИТ), и это усилило желание сделать выводы из собственных наблюдений. В общих чертах написанное ниже не сильно связано с деятельностью Стива Джобса, просто повсеместные дискуссии помогли собрать всё в одну кучу.

Мир неуклонно попадает во власть вредоносного программного кода. Это не только вирусы, это масса самого разнообразного ПО, которое пользователь загружает и запускает самостоятельно, не подозревая, что оно несёт вред.

Несколько условно угрозы разделяются на следующие группы:

Это очень грубое обобщение, но присмотримся к нему: вирусы сами по себе не записываются, пользователь рано или поздно сам запускает нечто, что начинает у него размножаться. Например, если беда Microsoft Windows в плохо продуманной функции autorun, которая без спроса выполняется на массе флэш-накопителей, можно только пожать плечами по поводу такой неосторожности со стороны разработчиков Microsoft. Так или иначе, если требуется избежать проблем этого типа, скажем, для решения некоторой задачи повышенной ответственности, то это всегда можно сделать — не запускайте чужих программ и не используйте Microsoft Windows.

Атаки на ssh в колоссальной своей доле основаны на неосторожности администраторов систем. Будьте осторожны, используйте цифровые ключи, и риск будет значительно снижен. Это тоже во власти пользователей. Атаки на уязвимости в браузерах — уже чуть более сложная вещь. Ценой потери некоторых возможностей проблему иногда можно решить отключением Java Script или оставлением его активности только для некоторых проверенных сайтов. Здесь, может, и нет точного, гарантированного решения, но некоторые меры принять всё-таки возможно, дисциплина со стороны пользователей принесёт свои плоды.

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

С контролем за вредоносным ПО уже не могут справится ни в Android Market, ни в мире ПО от Apple по одной простой причине — пользователи элементарно не имеют возможности проконтролировать действия, совершаемые программой. Совершенно не представляю, почему ситуация могла бы измениться к лучшему, пока люди будут продолжать использовать ПО с закрытыми исходными текстами. Единственный способ защитить себя — использовать По с доступными исходными материалами. Никто не отменял необходимости разработки профессионалами, пусть ПО будет разрабатываться с коммерческими целями, но открытые исходные тексты — единственный возможный разумный путь развития индустрии ПО. Программный продукт должен быть представлен в полностью открытом виде, доставка после сборки в бинарный код на компьютеры пользователей должна осуществляться из единого репозитория с обязательным применением цифровой подписи, только в этом случае можно снизить риски распространения вредоносного ПО. Как другими способами добиться аналогичной прозрачности, мне, увы, неизвестно.

Конечно, специалист здесь заметит пару тонких моментов: злоумышленник может поразить ПО проверки подписи или как убедиться, что доступный исходный код выполняет только полезные функции? Случаев, когда в открытых исходниках находили вредоносный код, мало, на моей памяти меньше десяти. Серьёзных обоснованных подозрений, что среди популярных открытых программ присутствует деструктивный код, практически нет. Скорее это будут элементарные ошибки разработчиков. По поводу поражения ПО проверки целостности ответ прост — загрузитесь с live CD и выполните проверку в независимой системе.

Для меня является очевидной простая мысль — способ дистрибьюции ПО, принятый в GNU/Linux, т. е. в виде единого репозитория, проходящего регулярную автоматическую пересборку, сейчас остаётся единственным надёжным и жизнеспособным способом распространения ПО в пределах обозримого будущего (предполагаем, что сервисы в Интернет не подразумевают распространения ПО). Люди, которые считают, что это не так, заслуживают, опять же, только пожатия плечами. На мой взгляд они не ценят своё время и не заботятся о качестве своей работы. Обращаю внимание, что написанное здесь никак не относится к качеству или функциональности репозиториев дистрибутивов GNU/Linux, речь только о способе распространения ПО.

Другая деталь, на которую хотел бы обратить внимание, заключается в том, что программные продукты должны быть просты. Они должны быть просты с точки зрения использования и с точки зрения поддержки созданного кода. Разработка колоссальных приложений с главным принципом "кода должно быть много!" выдаёт что угодно, но только не автора-профессионала. Не стану называть примеры, их много настолько, что, право же, нет смысла перечислять, но почему-то именно объём кода и обилие малополезных функций являются критерием уважаемости продукта и его достоинств. Пусть это будет плохо хотя бы потому, что громоздкий код неизбежно приходится переписывать каждый раз, когда требуется его адаптация к каким-нибудь новым условиям.

К вопросам разработки и использования необходимо подходить рационально. Человек, который любит, чтобы на экране всё шумело, а дистрибутив занимал непременно несколько DVD-дисков, рационально к своей работе подходить не умеет. Это рассуждение можно продолжить и в направлении управления своими данными. Управление данными — это искусство, в котором по определению невозможно достичь совершенства и абсолютного успеха. Данные должны быть компактными, с возможностью контроля целостности и с лёгким способом передачи от компьютера к компьютеру. На мой взгляд, над этим вопросом стоит работать всем — и разработчикам ПО, и конечным пользователям. Если Вы не являетесь секретной организацией, если в Вашей папке документов лежат только рефераты и курсовые, почему надо смотреть на "облачные" технологии негативно? Рациональные рассуждения говорят, что это снизит риски утраты данных и сделает управление ими проще. Да, в этом абзаце, действительно, очень хотел показать, что "облачные" технологии имеют много преимуществ, и при разумном подходе человек получает выгоду от их применения. Нередко слышу возмущение, как вообще можно доверить свои данные чужим людям? Интересно, а почему тогда никто особо не боится доверять чужим людям свои деньги, т. е. никто не боится пользоваться услугами банков? Странная непоследовательность.

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

Итак, мы теперь видим несколько главных ключевых моментов будущего индустрии ИТ:

Безопасное, т. е. полностью открытое ПО с возможностью контроля вторжения.

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

Пусть вы будете иметь власть над ИТ, а не они над Вами! ИТ — полезная вещь, открывающая колоссальные новые возможности, но не стоит их приносить в жертву сомнительным прихотям.

И под конец всё-таки припишу пару слов по поводу личности Стива Джобса. Никогда не пользовался изделиями Apple, но при этом абсолютно согласен, что Стив Джобс обладал выдающимися качествами. Изделия Apple совершенно однозначно расширили круг возможностей человека, хотя, конечно, речь идёт не о специалистах ИТ, которые все предлагаемые вещи умели в той или иной форме делать и раньше, а о простых людях, для которых главное — простота и доступность. Как сделать удобно и изящно, чтобы освободить мысли от ненужных технических деталей, — это весьма нетривиальный вопрос, так же хорошо подходящий для воплощения талантов, как и, например, научная деятельность. В некоторой мере люди расплачиваются за простоту Apple своей свободой, но для многих людей это не является принципиальным. Если у Вас нет секретов, о чём Вам беспокоиться? Ещё не очень понятно восхищение продукцией Apple профессионалами в сфере ИТ, которые всё могут делать и при помощи обычных, давно существующих средств, даже делать лучше, но это работа каких-то неведомых мне особенностей устройства психики человека, которые не объясняются рациональными рассуждениями.

Из личных качеств Стива Джобса понравилось его отношение к работе. Замечательная фраза: "Есть только один способ проделать большую работу — полюбить её". Работа — весьма специфическое снадобье, которое надо употреблять осторожно и с умом, но умение выполнять большую работу — качество, весьма необходимое для плодотворной жизни.

Всем желаю безопасных и надёжных ИТ, удачи и трезвости ума! В заключение предлагаю просмотреть список цитат Стива Джобса в Википедии, там не так мало таких, которые мне весьма понравились.