1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /137, 1996 г./ | Бонус | Поиск  

Тема номера

Clipper. Философские заметки

Сергей Кизюков


© 2004, Еженедельник «Компьютерра» | http://www.computerra.ru/offline
Этого материала на сайте "Компьютерры", к сожалению, нет

В стародавние времена, когда самой популярной игрой были Pirates! и Digger, не меньшей народной любовью пользовался язык программирования Clipper. Много воды с тех пор утекло, выросло целое поколение, которое об этом и не слыхивало. И тем не менее Clipper как факт продолжает существовать. За какие-то 250 долларов можно приобрести версию для DOS вместе с Clipper Tools.

Но ведь, скажут сторонники прогресса, DOS умирает на глазах. Правда, производитель Clipper, фирма Computer Associates, выпустила Windows-вариант под названием Visual Objects. И все-таки любой разговор о Clipper в современной программистской тусовке воспринимается, как неприличный. Многие считают, что это вообще не язык программирования. А что? Так, ерунда. Позвольте не согласиться с вами, господа.

За что я люблю Clipper

Сначала поговорим об эмоциях. Для меня Clipper – это, так сказать, радость. Когда-то именно xBASE-языки были наиболее популярными в нашей стране. О, эти горы книг про FoxBase и dBASE, эти интервью с Уэйном Ретлиффом, создателем пакета dBASE II (он же Vulcan), в "КомпьютерПресс", эти рассказы Брайана НельсонаоЗиттег'87! Эти странные русские названия пиратски переведенных версий – "Ребус" и "Карат"! Это вызывало интерес одной-единственной деталью: на xBASE-языках, несмотря на их примитивизм, можно было писать довольно хитрые штуки. Особенно радовало то, что операции работы с данными уже были готовы. Все силы программиста уходили на интерфейс и разные интеллектуальные "примочки" (калькуляторы, телефонные справочники и прочую дребедень). Именно тогда мы, программисты-экспериментаторы, приобрели для своей лаборатории толстый справочник по Clipper за бешеные деньги – 30 рублей. Фирма Nantucket и компилятор Summer'87 стали элементами повседневной жизни.

Надо сказать, что конец 80-х -начало 90-х гг. было временем всплеска корпоративных разработок в России. Немало государственных учреждений занималось"информатизацией" – видимо, на это были выделены огромные деньги. Начальники хотели иметь на своих 286/EGA какие-нибудь "базы данных" –  например, телефонные справочники. Масса фирм и программистов-одиночек нашли свой хлеб. Разработками на Clipper, по-моему, не торговал только ленивый. Конечно, многие из этих программ были весьма и весьма примитивными, но тем не менее заказчики получали то, что просили. В общем, это было время романтики, ночных сидений за компьютерами, поисков заказчиков и т.п.

Так вот, отвлекаясь от личных впечатлений, скажу, что у Clipper было одно важное свойство, актуальное и по сей день. А именно: он позволял быстро и довольно простыми средствами создавать корпоративные программы средней сложности (вспомните все эти АРМ "Кадры", "Финансы", "Библиотека" и прочая, прочая, прочая). Это было очевидным преимуществом. Второе очевидное преимущество Clipper – простота освоения. Любой грамотный пользователь, обладающий способностями мыслить логически, мог в течение нескольких дней разобраться с этим языком, а через две-три недели серьезных занятий научиться писать довольно сносные приложения. При этом позвольте обратить ваше внимание вот на что: именно Clipper, пожалуй, как никакой другой язык, прививал щепетильное отношение к интерфейсу. Любители "це" или "трубо-поскакаля" были интеллектуалами. Они могли потратить массу времени на то, чтобы создать хитрейшую программу – резидентную, работающую с копиями векторов прерываний и при этом совершающую какую-нибудь ужасно полезную работу (например, вычисляющую траектории полетов мяча при разных условиях среды), но при этом понять, как работать с ней, было совершенно невозможно. На создание нормального интерфейса пришлось бы потратить слишком много сил. В Clipper многие такие вещи были уже готовы или собирались из кусочков за считанные минуты. Конечно, DOS-интерфейс подарком не назовешь, но все же по тем временам это было большое достижение.

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

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

Теперь поговорим о недостатках, которые были известны еще в те времена. Прежде всего, упомянем громоздкость программ. Сейчас это звучит смешно, но в 1990 году модуль размером в 250 Кбайт считался колоссальным. Для его нормальной работы приходилось выгружать из памяти все, вплоть до Norton Commander. Сейчас, на мой взгляд, уровень программистов в этом смысле резко снизился. Динамическая библиотека размером в несколько мегабайт (!) считается нормальным явлением, а оперативная память в 16 Мбайт – стандартом (а когда-то мы работали на машинах, где жесткий диск имел объем 10 Мбайт, и при этом на нем помещалась уйма программ и игр). Так что с точки зрения DOS, конечно, лучше пользоваться продукцией Borland или Microsoft. Но для решения задачи, например, информатизации маленького отдела – ничего лучше Clipper не было, особенно если учесть тот факт, что программы на нем писались для консервативных структур вроде отделов кадров госучреждений. Быстро, эффектно и просто. Причем кое-где до сих пор пользуются подобными разработками: ведь государство подчас не способно обеспечить "бюджетные учреждения" нормальной техникой, и для многих 386-й компьютер остается несбыточной мечтой.

Далее, у Clipper не было своей среды разработки. Программы набирались в каком-нибудь редакторе (большинство программистов почему-то предпочитали MultiEdit), а потом компилировались и запускались. Ошибки отлавливали, меняли строки программы, и процесс повторялся. Типичный диалог тех времен: "Давай поменяем значение этой переменной!" – "Меняю, теперь компилируем..." – "Какой ужас! Давай все восстанавливать..." Компилятор работал медленно: даже на 286-х за это время можно было зажечь сигарету или поставить кофе. Тем не менее во всем этом что-то полезное все-таки было. Пожалуй, интеллектуальный труд нельзя нормировать. Если человек будет вынужден работать быстрее, это не значит, что он будет быстрее думать. Так что у программирования есть некие временные пределы.

Еще один недостаток Clipper состоял в том, что он слишком уж серьезно отличался от всех остальных языков, и прежде всего – "нормальных" (Си и Паскаль). В нем не было ярко выраженной строгой типизации, логические структуры вызывали недоумение, адресация в память была (по крайней мере) затруднена, а все остальное приверженцам классических Си и Паскаля казалось несущественным. Особенно всех пугали пресловутые блоки кода (честно сказать, я до сих пор не понял, какой от них прок).

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

Данный факт – я имею в виду универсальность Clipper – признавала и фирма Nantucket, которая намеревалась сделать из Clipper нечто, подобное языку Си. Но не тут-то было. Эту фирму купила компания Computer Associates. Ее политика мне понятна значительно меньше. С одной стороны, она вроде бы продолжает все прежние идеи Nantucket. С другой стороны, Clipper стал маргинальным продуктом, упоминание о котором в приличном обществе вызывает ругательства и плевки. Некоторые вообще считают, что отличие старого Clipper от нового состоит в операции инкремента/декремента в стиле Си. Это, конечно, неправда. Но очень симптоматичная....

Что дальше?

Пришло ли что-нибудь на смену языку Clipper? Учитывая упомянутые выше преимущества этого языка, с ним могут соперничать два продукта: Visual Basic и C++. Каждый из них в отдельности в сравнении с Clipper имеет как значительные выгоды, так и недостатки. Я постараюсь объяснить свою позицию, ибо уже чувствую, как независимые эксперты и представители уважаемых фирм Borland и Microsoft начинают на меня ругаться. Ведь, по их мнению, с Clipper должны соперничать их продукты: dBASE и FoxPro. Что ж, посмотрим...

История развития xBASE-ориентированных продуктов в последнее десятилетие представляется примерно следующей. Фирма AshtonTate развивала линию dBASE как такового. Потом были "третий", "третий с плюсом" и, наконец... Грандиозный провал проекта dBASE IV, -результатом которого стал пакет-монстр, трудный в освоении и малоэффективный, – привел фирму к закономерному краху. Ее купила Borland, и теперь на наших глазах все новые ее продукты данного класса производят впечатление попыток вернуться к "незамутненным основам". За что, в принципе, Borland можно только похвалить. Она удерживает стабилизировавшийся кусок рынка, снабжая его неплохими решениями. Но и только. Никаких особых перспектив у этого направления нет.

Фирма Fox Software начинала, если не ошибаюсь, с FoxBase. Поначалу этот продукт мало отличался от dBASE: он лишь значительно быстрее работал и имел ряд полезных функций, которых у dBASE не было. Поэтому те, кто работал с "Ребусом", быстро переходили на "Карат-М" (так назывались русские "пиратские" версии dBASE III+ и FoxBase соответственно). Потом появился FoxPro, вызвавший смешанные чувства (лично мне это "явление" не понравилось). Но все же этот продукт оказался достаточно мощным, и очень многие программисты на него перешли. Результат известен – компания г-на Гейтса наложила на это перспективное направление свою тяжелую длань, и по сей день FoxPro имеет шансы на рынке, а также обладает потенциальными возможностями развития Все благодаря Microsoft.

Компания Nantucket производила компилятор Clipper и лелеяла наполеоновские планы. Ее президентЛэ-ри Хеймендингер как-то в интервью журналу "КомпьютерПресс" заявил прямо и без обиняков: "Clipper – это язык, а не база данных. Работая с Clipper, вы можете подключаться к любой базе данных. Речь идет об объектно-ориентированной системе программирования. Можно сравнить ее, например, с C++". ("КомпьютерПресс", 1991, #7). Вот как они видели перспективы своего ?????ка. Результат: чтобы стать объектно-ориентированным, Clipper перестал быть самим собой. Он превратился в Visual Objects, лишившись многих черт, за которые его можно было любить. Пропали и простота освоения, и возможность работать в одиночку над серьезными проектами, а требования к ресурсам неимоверно возросли. Сейчас Visual Objects все больше напоминает недоразвитую Delphi. Естественно, никакой романтики. Как говорили комментаторы творчества Горького, "роман "Детство" посвящен вытеснению мелких мануфактур крупным машинным производством". "Вольным стрелкам" теперь нет смысла ориентироваться на Clipper. Впрочем, почти все они уже повымерли. Но все-таки проблемы внутрикорпоративных разработок остались. Есть такие задачи, для которых глупо заказывать программы на стороне. А стандартных решений для них нет – слишком штучный товар. Когда-то для них существовал Clipper. Теперь он вышел из моды, а его создателей купила Computer Associates.

Смею предположить, что Clipper имел преимущество перед другими xBASE-продуктами по той простой причине, что позволял создавать исполняемые модули. Теперь эту проблему решили и его конкуренты. И хотя в недавнем обзоре журнала "Hard & Soft" он назван лучшим средством для разработчика, все-таки имеется в виду именно крупный или средний производитель. Те, кто сталкивается с небольшими "штучными" задачами, оказались в трудной ситуации поиска подходящего средства разработки. Когда-то был популярен CodBASE, повторявший многие возможности Clipper в виде функций языка Си. Теперь все это забывается и умирает... Внутрикорпоративный пользователь переходит на Visual Basic. Но медленно и со скрипом (сложнее в освоении?). Или продолжает искать что-то еще.

Тем временем на компьютерах с DOS медленно умирает Clipper. По словам Леонида Годзиковского, директора фирмы Soft Service, этот язык умрет только вместе с DOS. Он воспользовался таким сравнением: "Есть целый ряд стран, где говорят на испанском языке – бывших колоний Испании. Аналогично есть целый стабильный кусок рынка, где существует спрос на Clipper. И это надолго".

И все же. В Clipper 5.3, на котором создаются приложения для DOS, надо компилировать программы, используя Windows. Это явный признак монструозности. Visual Objects – слишком уж большая и недоступная простым людям система (хотя и хорошая). А масса наработок в виде Clipper Tools лежит мертвым грузом. И это в стране, где основную массу компьютеров до сих пор составляют 286-е и 386-е! Впрочем, это отклонение от заявленной темы.

Тупик? Начало прекрасной новой эры? Неизвестно. Надо сказать лишь одно. Медленное затухание Clipper заставляет сделать философский вывод: эпоха программиста-одиночки проходит. Мы стоим на пороге новой парадигмы программирования, некоторые черты которой уже определились: над проектом работает много людей, каждый "штампует" свою деталь, все стандартизовано и просто.

Таким образом, программирование из искусства и увлечения становится рутинной работой, вроде укладки кирпичей . Умирание Clipper говорит только об одном: софтверная индустрия во всем мире вступает в зрелый возраст. Скоро она ничем не будет отличаться от производства кофемолок и утятниц. Она выродится в чистый бизнес, потеряет романтический ореол, станет скучной для тех, кто сегодня с жаром пишет вирусы.

Так что зря "приплюснутые" посмеиваются над приверженцами Clipper. Они еще не подозревают, что это – их будущее. Не пора ли начать постепенно "переквалифицироваться в управдомы", то есть в менеджеры софтверного бизнеса?.. Судя по всему, скоро именно там и будет кипеть настоящая, романтическая жизнь. А программирование станет похоже на конвейер. И от этого немного грустно.

 

 

 


1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /137, 1996 г./ | Бонус | Поиск  

© 2004, Издательский дом «Компьютерра» | http://www.computerra.ru
Телефон редакции: (095) 232-22-61
E-mail редакции: inform@computerra.ru