Архивы: по дате | по разделам | по авторам

Чтобы сказку сделать былью...

Архив
автор : Сергей Козлов   31.08.1999

Удивителен ход мысли человеческой! Статья "Сказки дядюшки Линукса" ("КТ" #33 [311]) как бы оппозиционна моей предыдущей статье ("КТ" #27-28 [305-306]), но ряд выводов, сделанных в заключении, в целом соответствует моим собственным. И спорить, казалось бы, не о чем.

Удивителен ход мысли человеческой! Статья "Сказки дядюшки Линукса" ("КТ" #33 [311]) как бы оппозиционна моей предыдущей статье ("КТ" #27-28 [305-306]), но ряд выводов, сделанных в заключении, в целом соответствует моим собственным. И спорить, казалось бы, не о чем.


Сергей Козлов - выпускник МФТИ (1984 года), муж, отец, вольный программист-разработчик.


   Хотя позиция Дмитрия Беленко (автора "Сказок") конструктивна и аргументирована, но, развенчивая одни мифы, он создает другие, поэтому мне показалось полезным обратить на них внимание. Заранее предупреждаю, что не ставил своей целью огульную критику: часть изложенного - скорее комментарии и дополнения, попытка взглянуть на предмет с другой точки зрения. Сами мифы переформулированы мною произвольно, поэтому прошу отнестись к ним с долей юмора.

   Я ничего не буду говорить о BeOS. Во-первых, потому, что это отдельная песня, а во-вторых, предпочитаю говорить о том, что видел и трогал сам.

   Миф ї0. Linux Crowd
   Попытка смешать сообщество Linux в некую crowd (толпу) мне кажется неправомерной. Она напоминает утверждение "все китайцы на одно лицо" или такой термин из недавнего прошлого, как "советский народ". Сообщество очень неоднородно по составу и в нем можно выделить несколько групп. Например, таких:z программисты-творцы: самой системы Linux, графических сред (KDE, GNOME...), прикладных программ;z пользователи серверных приложений (системные администраторы);z пользователи прикладных программ;z профессионалы, пришедшие по разным причинам из "большой" UNIX;z новички в Linux, имеющие или не имеющие опыт работы с Windows;z крикливые маргиналы, нашедшие повод для тусовки;z просто любопытные.

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

   Миф ї1. Разработка методом open source поразительно неэффективна
   Тут важен масштаб. Дело в том, что внутри каждой отдельной взятой фирмы-разработчика метод open source используется практически всегда. А новизна нынешнего подхода лишь в том, что он выходит за рамки фирм. Теперь это способ получения результата, вообще недостижимого без объединения усилий. Побочный эффект этого способа состоит в том, что появляется больше вариантов - "лебяжьих", "рачьих" и "щучьих". Но из них ведь можно выбирать. И ведь это не ваше "потраченное" время, а тех, кто пытался возок тянуть.

   Из мифа ї2. Linux не имеет исключительно быстрого, маленького и устойчивого ядра
   Уронить можно что угодно. Пустим аргументацию в обратную сторону: NT и BeOS окажутся в этом отношении ничуть не лучше. Последнее время многие производители предоставляют техническую документацию разработчикам Linux и сами участвуют в разработке. Далее, программисты Linux работают не только из альтруизма. У них есть и другие причины для работы, о которых ниже.

   Из мифа ї3. "Передовым" технологиям Linux уже давно пора бриться
   Многопоточность актуальна при неэффективной многопроцессорности. CORBA вовсю используется в GNOME (ORBit) и в KDE 2 (КОМ). OOP в KDE и GNOME просто навалом. Под Linux работают с Web (Apache разве не Web?), с мультимедиа ("Титаник" не пальцем же делали), а в отношении распознавания образов... Честно говоря, пока не слышал о крупных достижениях Microsoft в этой области - в отличие от IBM.

   Миф ї4. Linux очень требовательна к аппаратному обеспечению
   UNIX всегда была "тяжелой" системой. И понятно, что требования сопоставимых по функциональности систем к железу отличаются ненамного - природу не обманешь. Просто современное массовое железо стало соответствовать этим требованиям.

   Миф ї5. Linux не работает с чем угодно
   В общем, справедливо, но слишком категорично.

   Из мифа ї6. Для Linux доступно лишь плохое, сырое и недоделанное программное обеспечение
   Хотя Linux не молода (а с учетом истории UNIX - просто старушка), задача создания desktop-системы поставлена лишь недавно. К Linux как серверной платформе ведь меньше вопросов и претензий в этой части, не правда ли?

   Миф ї7. Без KOI8-R можно обойтись
   Наверное, единственный полностью не миф.

   Мифы ї8. Linux - это бесплатно
   Бесплатным бывает только сыр в мышеловке. Linux - не бесплатное, а свободное программное обеспечение. И, в целом, оно дешевле альтернатив. Менеджеров и секретарш не нужно обучать Linux вообще - их нужно обучить запускать нужные им приложения и обучать работе с такими приложениями (см. миф ї11). А элементарные приемы работы, например в KDE, те же, что и в Windows.

   Из мифа ї9. Linux - это бесплатно частями
   Хочу предостеречь разработчиков Windows от свободного использования Visual C++ Enterprise ($1365), Borland C++ Builder Client/Server ($2090) и Visual Basic Enterprise ($1370). Можно найти дешевле, но цены из прайса, который попался под руку.

   Миф ї10. Не стоит и думать заработать на поддержке
   Миф сформулирован, но не обоснован. К сожалению, поддержкой сильно пренебрегают. Под поддержкой подразумевается наличие специализированных фирм, располагающихся не где-то за бугром, а здесь, рядом. При этом поддержка - это не только квалифицированные ответы на вопросы по телефону (классическая "горячая линия"), но и выезды к заказчику, установка и настройка системы, подбор нужных программ, доработка их до нужных на конкретном месте кондиций (чему открытость Linux только способствует). Речь идет о службе системных администраторов на выезде и об индивидуальном подходе. Подобный подход принят, например, фирмой "1C" при внедрении своих продуктов. При этом, насколько я знаю, внедрение приносит больший доход, чем продажа самих программ. А в телефонии такая форма обслуживания - нормальное явление.

   Миф ї11. Linux - это очень сложно
   Если честно, я не слышал еще ни об одной секретарше, которая бы прочитала до конца хотя бы страницу прекрасного и русскоязычного Help из Windows. Дело в том, что в нормальных фирмах секретарши не устанавливают программное обеспечение, и даже не знают IP-адреса своих компьютеров. Ларисе действительно лучше вести документооборот - как кухарка с трудом справляется с государством, так и из секретарши, как правило, никудышный системный администратор.

   Но в нормальной фирме имеется специальный человек - системный администратор. И обычно половину своего рабочего времени он тратит на решение проблем пользователей. И в этом смысле странно, что сетевой администратор допускает такую возможность, что секретарша вынуждена устанавливать операционную систему (ОС) на своем компьютере. Поскольку это его обязанность - подготовить и настроить рабочее место пользователя.

   А с настроенной системой работать можно. Что касается сложного администрирования - это так, но прикладываются определенные усилия в облегчении этого процесса - linuxconf тому пример.

   Из мифа ї12. Коммерческие ОС - добро, с которым нужно мириться
   По лицензии вы можете купить один диск с Linux и устанавливать ее, на законных основаниях, на стольких компьютерах, на скольких пожелаете - пока руки не отсохнут или диск не рассыплется. И, кроме того, есть альтернативы. Для Windows такой законной альтернативы нет.

   Полезное, что сделала RedHat, - скомпоновала пригодный к практической установке дистрибутив и разработала механизм rpm. Я не знаю, как потратила RedHat 86 миллионов долларов, но это ее право - тратить, так же, как клиентов - платить. Никто же их не заставлял.

   Из мифа ї13. Все эти "новомодные" штучки типа OOP, RAD и компонентного программирования нам очень нужны
   Сам по себе это не миф, но хотелось бы сделать несколько комментариев. Старый добрый процедурный подход никуда не делся! В рамках C++ и ООП он просто переместился на другой уровень. Изменились акценты.

   COM/DCOM не подразумевает использования C++ и, следовательно, ООП. По мнению людей из Inprise, если я правильно расслышал, основной причиной применения именно этой технологии в проектах является требование совместимости с Visual Basic и MS Office. На платформе Wintel есть не худшие технологии, в том числе предоставляемые Inprise, в частности, на основе CORBA. И, простите за повтор, Inprise пришлось изрядно потрудиться, чтобы упростить использование COM/DCOM в рамках C++, то есть ООП там только пахнет. Убейте, но VB к достижениям ООП я причислить никак не могу. И маленький, но очень существенный момент - зависимость этой технологии от платформы.

   Когда есть данные и есть объекты, работающие с данными, - это не совсем ООП. Обычно в ООП объекты содержат данные, выставляя наружу интерфейсы, и к своим данным редко кого подпускают. И для меня показательна судьба OWL, построенной на основе ООП последовательнее некуда. А используется теперь VCL - компонентная библиотека.

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

   При всем желании, тяжело абстрагироваться от "своей" задачи в том же C++ Builder. Поскольку приходится прилаживать свою задачу к имеющимся компонентам. И дело не в кнопках, которые примитивны, а в других, чуть более сложных компонентах.

   Будучи отослан к книгам Страуструпа и Буча, возвращаюсь с несколькими цитатами.

   "Качественное проектирование и отсутствие ошибок не могут быть гарантированы просто присутствием или отсутствием специфических возможностей в языке". "Хорошие программы на C имеют тенденцию походить на программы на C++". "Один язык, имеющий некоторое средство, не обязательно лучше другого языка, не имеющего его". "Не множьте объекты без необходимости". "Советами нужно пользоваться там, где они применимы. Не существует замены уму, опыту, здравому смыслу и хорошему вкусу".

   И не нужно бегать с ООП, как с писаной торбой. В наше время это уже неприлично.

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

   Миф ї14. Тужьтесь, не тужьтесь, а вам конец
   А никто и не тужится валить Microsoft. Перед тем как обсудить миф ї14 и альтруизм разработчиков Linux подробно, напомню о законе Парето. В одной из приближенных к жизни формулировок он звучит так: "20% населения выпивают 80% пива". В приложении к программам, ОС и языкам программирования переформулируем его так:
   Ф1. Для решения большинства задач пользователей достаточно тех средств, которые уже есть.
   Ф2. Большинству пользователей для работы достаточно той ОС, которая уже стоит на компьютере.
   Ф3. Большую часть программ лучше всего писать на том языке, которым лучше владеешь.

   Несколько прямых следствий:
   С1. Большинству людей достаточно иметь Word, Excel и Internet Explorer.
   С2. Программа, которая удовлетворяет почти всем требованиям, уже написана и отлажена.
   С3. Большинству пользователей не нужно даже думать о Linux.
   С4. Большую часть времени человек играет роль пользователя.

   И несколько обратных следствий.
   С5. Но всегда найдутся ситуации, когда это не так.
   С6. Программа, которая решает вашу конкретную задачу, еще не создана.
   С7. Не все программисты работают на Microsoft, и не все лучшие и передовые технологии сосредоточены там же.
   С8. Всегда найдутся люди, которых существующий порядок вещей не устраивает.

   ОС сама по себе не решает задачи пользователя, а лишь помогает или мешает достижению их целей. От системы требуется наличие инструментов для решения этих задач либо инструментов для создания таких инструментов. Выбор той или иной ОС определяется в конкретном случае не только и не столько особенностями самой системы, а свойствами конкретных пользователей, их квалификацией, знанием системы, задачами и целями, местом и временем. Нужно вспомнить, что Linux - прежде всего UNIX. А у "них" UNIX традиционно распространена в академической среде, "под ней", а не на PC, делается наука. Более того, посмотрите, откуда растут уши у Mac'ов, Silicon'ов, Sun'ов. То есть UNIX = профессионально. И традиционно вокруг нее концентрировались квалифицированные специалисты, на этой платформе разрабатывались многие передовые технологии (C++ и Internet в том числе). Поэтому появление Linux - это реализация желания профессионалов иметь привычную ОС дома. И сначала вокруг Linux организовались творцы, создающие ее "для себя", а только затем образовалось большое сообщество, для которого идеи Linux оказались близки. Сам этот факт означает простую вещь: в Linux оказалось то, чего не хватало в рамках традиционных ОС.

   Мне нравится трогательная забота о деньгах и благосостоянии работников Microsoft и лично Б.Г., но, как говорится, "давайте позаботимся о мухах, слоны позаботятся о себе сами". Агрессивная политика MS выбивает из седла многие фирмы, и при этом идеи и технологии перестают развиваться не по причине их технических недостатков, а потому что не принадлежат Microsoft (см. следствие С7). Речь идет о программистах, не работающих в Microsoft, не готовых переквалифицироваться в управдомы, а желающих профессионально заниматься любимым делом. Для них создание альтернативной ОС - это не выбор между Linux и NT и не альтруизм, а переход на другую операционную среду, где правила игры другие. Поскольку модель бизнеса другая, обычные методы работы "большого брата" не срабатывают.

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

   Еще одна особенность Windows - это закрытие и коверканье технологий (в том числе, до этого открытых) в угоду корпоративным интересам. Открытость Linux - главное достоинство, важное именно для разработчиков программ и обеспечивающее преемственность технологий. Поэтому степень повторного использования кода в Linux оказывается очень высокой.

   Дело не в стремлении к доброму, светлому, фантастическому, не в желании мечтать, а в том, что феномен Linux есть отражение действительных проблем реальной жизни. И более правильной мне кажется не постановка "кто кого", а возможность и нормальность совместного существования разных сообществ и разных платформ. В том числе Windows, Linux и других. А свобода выбора и право примкнуть к тому или иному сообществу - суверенные и неотъемлемые права каждого человека.

   Заключение
   Сейчас в Linux царит эпоха программиста. Это дает хороший шанс нашим программистам принять действенное участие в работе, пока не наступила пора зрелости - когда будут уже написаны гигабайты кода и поменять что-то будет поздно (а проблем у отечественных пользователей уже немало). Здесь есть поле деятельности для небольших фирм и отдельных программистов, создающих для себя большой мир, в котором сами будут жить и работать. А станет ли сказка былью, покажет время.

   P. S. Я ничего не имею против молодых, бородатых, пива и дохловатых компьютеров. Против них есть время, бритва, мочевой пузырь и upgrade.

© ООО "Компьютерра-Онлайн", 1997-2022
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.