![]() | |||
Мнение
И это все о нас, или Кое-что о компьютерном шовинизме
Хачатур Арушанов
Сегодня мне хочется поговорить не о "них", с их "проблемами" по поводу продажи 42-миллионной копии какого-нибудь эпохального "софт"-продукта, "заботами" о том, как лучше переименовать свою программу, дабы ее, наконец, начали раскупать. Нет, господа, речь пойдет о нас, любимых.
Верней, о вас. Да-да, именно о вас, дорогой читатель. Назовите, хотя бы про себя, но честно, какую операционную систему вы любите? А как вы относитесь к тем, кто пользуется... ну, вы знаете о чем речь. А какой язык программирования предпочитаете? Этот?! Великолепно, а вот некоторые используют... Что? Как вы их назвали? Ну ладно, слава богу, у нас с вами общие привязанности. А как вы реализуете вот эту задачу? Нет, я бы предложил... Да дайте же мне договорить!.. Мало ли что вы считаете... Да ну вас, в самом деле, идите лучше программируйте.
Увы, и это все о нас. Впрочем, и у "них", вообще говоря, те же проблемы, и они что-то любят, а что-то на дух не переносят. Однако называть последними словами коллегу, который утверждает, что Windows 95 лучше OS/2, оскорблять оппонента, убежденного, что С лучше Pascal, со слезой в глазах следить за понижением курса акций любимой "их" фирмы, не зная даже какого эти акции цвета, – это о нас.
Нужны еще примеры? Пожалуйста, сколько угодно. Если знаете, что такое FIDO или RELCOM, проглядите телеконференции, если не знаете -посетите конференцию программистов или сходите на компьютерную выставку. Если же вы работаете в фирме, в штате которой имеется хотя бы пара программистов, вам даже и идти никуда не надо.
Почему так мало людей ходит на спортивные соревнования? А зачем? Поболеть за любимую команду? Так все и так уже болеют: один за UNIX, Borland и Pascal, второй – за Microsoft, NT и Access…
Шутки шутками, но разборки между специалистами-шовинистами, разделяющими мир не на белых и черных, а на "оконных" и "пополамных", выглядят ничуть не лучше спора о том, какого цвета кровь у носатого соседа. И также приводят к настоящему "классовому" делению: есть забитые BASIC-программисты ("васьки"), бесстрашные С-программисты ("сионисты") и гордые C++ – программисты ("приплюснутые"), есть "серьезные" базы данных (Oracle, SQLWindows. ..), а есть и "несерьезные" (xBase, Paradox...).
Просматривая телеконференции, общаясь на выставках, работая бок о бок с программистами, я официально заявляю, что это не высосанная из пальца проблема, а очень острый и нуждающийся в срочном решении вопрос. Но разрешим ли он? Да. Каким образом? Пожалуйста, вот один из вариантов его снятия. Представитель довольно известной "софтверной" фирмы на мой вопрос "Каким образом пополняются у них ряды программистов?" ответил, что "лучше брать не опытных программистов, а новичков, которых, в отличие от первых, можно научить своим методам работы". (Замечу: неверным методам.)
Итак, первый вариант. Решая конкретную задачу, все работают с одними и теми же инструментами и следят за палочкой дирижера, в качестве которого выступают выстраданные потом и кровью спецификации и методы решения схожих задач. Правда, неизвестно, что будет при смене задачи.
Второй вариант. "Административный подход", принятый во многих организациях: Вот вам молоток – молотите1 Нужно прибить гвоздь? – Молотите. Нужно выкопать яму? – Молотите. Нужно разбить цветник? – Молотите. И все одним и тем же молотком.
Третий вариант, "отщепенец". Волк-одиночка (реже "два сапога пара"), нашедший иной раз в самом деле оригинальное решение очень частной задачи и считающий, что весь остальной мир должен подстроиться под него, поскольку его алгоритм работает на 10% быстрее. Правда, за время реализации алгоритма в виде кода, понятного только автору, остальной мир перешел на машины, которые быстрее предыдущих на 250%...
Четвертый вариант, "эгоцентристский". Самый распространенный -"наш" – вариант. Группа, обычно небольшая, разнокалиберная, каждый знает все или многое о чем-то одном. (Не путать с "хирургической бригадой" Майерса!) В результате для конкретной задачи получается вполне приемлемый программный продукт, который даже можно продавать. Но только в качестве самостоятельного продукта, который никоим образом не может быть состыкован с другими, делающими нечто в технологической цепочке "до" и "после". Точнее, состыковать-то было бы можно, если другие программы будут, например, вызваны из этой, "а такая возможность имеется", и т.д. Но поскольку все программы в желаемой технологической цепочке являются "эгоцентристскими", то, оказывается, что ничто не стыкуется ни с чем.
Уверен, читатель может предложить еще дюжину вариантов, но ввиду ограниченности выделенной мне площади сразу перейдем к эпилогу.
К сожалению, ни один из перечисленных, наиболее массовых вариантов решений "классовых" вопросов не снимает.
Про то, что нынешний этап создания приложений "под заказчика" (или для определенных групп потенциальных покупателей) требует модульного подхода, говорилось неоднократно. Если бы программные продукты, разрабатываемые программистами из любых "каст", могли стыковаться каким-либо образом, отличным от копирования части исходного текста и использования той или иной языкозависимой библиотеки, мало кого стал бы мучить вопрос, на каком языке и чьей фирмы реализована данная программа.
Разделение по операционным системам, конечно, какое-то время еще будет. Правда, по заявлениям фирм-разработчиков, проблема решится сама собой, поскольку скоро "все конкурентки просто отомрут". (Раз все фирмы заявляют одно и то же, наверное, мы будем работать просто без операционных систем.)
Огромное большинство программ, создаваемых российскими "софтверщиками", группами программистов и одиночками, не имеют никакой возможности жить "социальной" жизнью. Полное отсутствие какого-нибудь канала обмена данными или управлением программой (как бы их ни называли -API, DDE, OLE, pipe, SOM...) приводит к расширению "враждебных рядов", вынужденных обмениваться исходными текстами, править "любимые" библиотеки и ругать злобных недругов, так как "их" тексты и библиотеки не подходят к "нашим".
Если вы, уважаемый читатель, не являясь программистом, подумали: "Ух, эти нехорошие программисты! Не могут включить какой-нибудь АРМ", то знайте, что в этом, возможно, есть и ваша вина, поскольку многие разработчики отказываются давать доступ к "внутренностям" программ, так как это приносит им материальные потери из-за моментального появления "самоделок" и пиратских версий, которыми вы "случайно" можете воспользоваться.