Рубрики, одноименные с этой книгой, можно встретить практически в любом компьютерном издании: «Советы тем, кто программирует на Visual Basic» или «офисные» советы на CD-ROM и во вкладке «Решения Microsoft» журнала КомпьютерПресс.
Такие советы условно делятся на три группы:
1. Уточняются рекомендации, которые в документации и в help’e прописаны «петитом».
2. Разработчики программы задним числом (после начала коммерческой продажи) сообщают о новых полезных свойствах программы и о способах нейтрализации недостатков.
3. Сообщается о результатах экспериментов над программами. Речь здесь может идти и о так называемых недокументированных (побочных) свойствах программ, на которые разработчики убедительно просят не опираться, но...
Естествоиспытатель, желающий познать окружающий мир, не может прямо обратиться к Создателю (к Богу или к Природе – кто что предпочитает), а должен задавать вопросы самому объекту исследований. Для этого проводится эксперимент[1] – в объект вносится возмущение и фиксируется реакция на него: «Щелкни кобылу по носу, и она махнет хвостом!».
У каждой программы есть автор. Его имя, как правило, не найдешь на коробке с дистрибутивом и в документации, но он (автор) есть[2]. Следовательно, какие-либо эксперименты над программами излишни. С возникающими вопросами нужно обращаться либо к документации, либо к самому автору. Но… Если, к примеру, требуется уточнить, в градусах или в радианах должен быть аргумент синуса, мы не станем рыться в документации, а просто напишем x:=sin(90) и посмотрим, чему равна переменная x[3]. Подобные «эксперименты» пользователи ставят ежечасно, обращаясь к документации (если она, конечно, есть – см. сноску 3) только в особо сложных случаях и зачастую не находя там ответа. Обращение же к «Создателю» проблематично. На hot-line сидят не авторы, а продавцы программ, что далеко не одно и то же[4]. На фирме, поддерживающей тот или иной программный продукт, вас, скорее всего, попросят перезвонить через пару дней, в течение которых там… проведут свой эксперимент над программой и попытаются найти ответ. Да и обращение к автору часто ничего не дает, так как он уже забыл о своем детище и всецело поглощен новым проектом. Даже если это не так, то автор может не помнить всех свойств и нюансов своего творения. Более того, создавая программу, программист сам непрерывно экспериментирует над ней, удивляясь ее новым неожиданным свойствам, далеко не все из которых узакониваются и фиксируются в документации.
Из-за этого пользователь нередко (и невольно) забывает, что Программа – это творение ума и рук человеческих (Вторая Природа), полагая на уровне подсознания, что это плод работы анонимного и недоступного «Создателя» (Первая Природа), с которым не свяжешься по hot-line. Здесь, по-видимому, и кроется объяснение (но ни в коем случае не оправдание) порочной практике нелегального копирования программ. Имеются в виду не CD-ROM-диски типа «Все для офиса» – воровство есть воровство. Речь идет не о торговцах «черными» дисками[5], а об относительно честных людях, ставящих на свой компьютер программу с того же «пиратского» диска, чтобы познать Природу и передать свои знания студентам, например.
Можно считать, что не человек открыл Законы Небесной Механики, а Создатель, бросив сверху яблоко и угодив им по ньютоновой голове, приоткрыл нам одну из тайн своего Божественного Замысла. Заслуга гения (Ньютона) здесь лишь в умении оказаться в нужное время[6] в нужном месте. Программы тоже как бы падают к нам сверху. Отсюда и живучесть идеи freeware, которой противятся в первую очередь продавцы, а не авторы программ[7]. Как говаривали в былые времена, есть мнение, что Бог (Абсолютный Всемирный Разум) создал по своему образу и подобию не только человека, но и компьютер. Пишущий для него программы вдыхает душу в безжизненное нагромождение железок. Торговля телом (трансплантация органов, переливание крови, проституция, наконец) – реалия наших дней. Тема же покупки и продажи души встречается только в мифах и легендах, а также в их литературных трактовках (история Фауста, например). Приобретая программный продукт, мы опять же покупаем только «тело» – диски, документацию, информацию и скидки по новым версиям, а главное – послепродажный сервис.
Но вернемся к советам, еще раз отметив, что вследствие неизбежных экспериментов над программами деление советов на «правильные» и «неправильные» становиться весьма условным. Давая «вредные» советы (см. детскую книжку Г.Остера «Вредные советы»), автор как бы говорит читателям: «Думайте сами, решайте сами – иметь или не иметь данный прием в вашей собственной программе». Следующую группу советов можно объединить под другим «патентованным» названием: «Очумелые ручки» (вспомним телепередачу «Пока все дома»). Авторы надеются, что читатель, ознакомившись с тем или иным советом, скажет себе: «Мысль хоть и спорная, но интересная. А я сделаю иначе и даже лучше!»[8].
Программы годятся не только для решения конкретных практических задач: их можно рассматривать и как некие занимательные и сложные головоломки («гимнастика для ума[9]»), подходящие для высокоинтеллектуального досуга: «А что, интересно, получится, если я сделаю вот так?! На что этот программистский трюк сгодится, я не знаю, но прием забавный».
И еще об авторстве. Советы работающим на компьютере в чем-то подобны анекдотам. Назвать автора того или иного удачного совета или анекдота не так-то просто: автор – народ. Читатель, ознакомившись с той или иной рекомендацией, может сказать: «А я знаю более удачную концовку анекдота, пардон, совета – эту проблему в среде Mathcad можно решить проще и эффективнее!». Другая реакция: «Интересный прием. Я обязательно познакомлю с ним своих коллег (перескажу анекдот) и включу его в свои Mathcad-документы!» Автор (элементарная частичка, «бит» народа) готов и к третьей реакции – нейтральной или отрицательной. В любом случае он будет рад получить отзывы читателей, расширяющие и совершенствующие советы пользователям Mathcad. Книга продублирована на сайте http://twt.mpei.ac.ru/ochkov/MC&MC.book/Sovet/sovet.htm. Читатели могут слать свои новые советы и комментарии к опубликованным по адресу ochkov@twt.mpei.ac.ru.
Сначала предполагалось разбить советы на семь четких групп, охватывающих различные аспекты работы в среде Mathcad. Но оказалось, что подобную градацию провести не так просто. Один и тот же совет может касаться различных аспектов работы. Поэтому было решено после названия совета давать пиктограммы, подсказывающие читателю, о чем пойдет речь:
– ввод-вывод информации в Mathcad-документ[10]
– работа с переменными, операторами и функциями; встроенными и пользовательскими
– оформление Mathcad-документа, комментирование операторов
– единицы измерения физических величин
– символьная математика (аналитические преобразования)
– программирование
– графика
Кроме того, две пиктограммы отмечают следующие особенности тех или иных советов:
– недокументированный прием, который решает одну проблему, но может создать новую
– «Если нельзя, но очень хочется, то можно!» – эта пиктограмма отмечает вполне легальное использование старых инструментов в новом необычном ракурсе («Очумелые ручки» – см. выше).
Особого порядка в чередовании советов нет: из текущего совета могут производиться ссылки[11], как на последующие, так и на предыдущие советы. Из вызванного совета, можно перейти в новый или в старый, уже прочитанный совет и т.д. Можно изучать советы, следуя не оглавлению, а нити (паутине, если вспомнить аббревиатуру WWW) гиперссылок (виртуальная нить Ариадны). Так что читатель может начать знакомство с советами не по порядку, а наугад, выбрав из оглавления то, что его больше заинтриговало. Советы книги – это некие элементы рассыпанной мозаики (Puzzle), из которых читатель может собрать некую картину, отображающую сферу его интересов. Такие «картины» собрал и автор. Это статьи (этюды, зарисовки), на которые делаются гиперссылки:
·
История одного шедевра
·
Mathcad и Internet, или
Сетевой колхоз
·
Булевы кубики
·
Mathcad и физические
величины
·
Что нам стоит мост
построить
·
Mathcad и некоторые
тайны художественной литературы
Как понимает и вполне допускает автор, некоторым советам книги трудно придумать практическое применение. Но… Возвращаясь к мысли о том, что программирование не обязательно должно приносить практическую пользу (гимнастика для ума[12]). Можно утверждать, что работа на компьютере – это своего рода высокоинтеллектуальная забава. Автор дает совет и просит читателя найти ему практическое применение.
Несколько слов в защиту Mathcad[13]. Вот типичные упреки в адрес этого пакета:
1. «Я поделил в среде Mathcad sin(0) на ноль и получил ноль, а не сообщение об ошибке. Я попытался взять такой-то интеграл, а получил не ответ, а что-то невразумительное. Пакет никуда не годится! Другое дело Maple, например, где эти задачи решаются без проблем!». При этом как-то критики Mathcad забывают о том, что при особом желании можно подобрать примеры, которые не совсем корректно с точки зрения чистой математики будут решаться в и Maple (см., например, в совете 2 рис. 2)
2. «Не прошло месяца с момента выхода в свет новой версии Mathcad, как фирма-разработчик предлагает скачать со своего сайта программу-заплатку (Patch, Service puck). Это знак того, что разработчики в погоне за прибылью, выбрасывают на рынок сырой программный продукт (полуфабрикат), а затем досылают пользователям пресловутые «заплатки», которые еще не известно, как[14] в программе заработают, но доверие к программе снижают – это уж точно». Возражение на этот упрек стоит начать с повторного прочтения первого упрека. Дело не в ошибках, которые, увы, неизбежны в любых программах, а в отношении разработчиков к ним. Об ошибках, замеченных пользователями и разработчиками после выхода программы в свет, можно молчать 2-3 года до выхода новой версии программы. Так поступают многие фирмы. А можно эти ошибки сразу исправлять через свободно распространяемые «заплатки». Такая же ситуация наблюдается в автомобилестроении. Некоторые фирмы вынуждены отзывать на доработку свои новые автомобили. Здесь также можно спорить о том, повышают или понижают авторитет фирмы данные акции.
3. «Для изучения математики не стоит использовать Mathcad. Для этих целей более подходят пакеты Maple или Mathematica». Подобный упрек высказывался в свое время и в адрес языка программирования BASIC, который якобы прививал и прививает начинающим программистам неряшливый стиль программирования. Да, для изучения математики будущими математиками Mathcad не очень подходит. Но для будущих инженеров, которые на старших курсах уже математику не изучают, а просто используют математические методы для решения инженерных задач, Mathcad подходит как никакой другой пакет. Учить же работе в среде Maple или Mathematica, а потом переучивать студентов работе в среде Mathcad – не совсем разумно. При особом желании и высшую математику можно изучать с помощью Mathcad (см., например, прекрасную книгу А.И.Плиса и Н.А.Сливиной «Mathcad: математический практикум для инженеров и экономистов», М.: Финансы и статистика, 2000).
Ну, а теперь приступим к изложению советов. Их ровно сто («Не имей сто рублей, а имей сто… советов!»), не считая непронумерованные и те, какие вдумчивый читатель найдет между строк текста и в операторах Mathcad-документов на рисунках.
[1] Одно из определений науки: удовлетворение частного любопытства (познание Природы) за общественный (государственный) счет. Наука в современном понимании этого слова появилась в начале XVIII века, когда люди стали выделять в отдельную базу знаний особенности Природы, которые можно было воспроизвести в любой момент: «Вот тебе наука на будущее!». Теоретическая физика (химия, биология и т.д. и т.п.) – это удачные и неудачные попытки интер- и экстраполяции опытных точек (см., например совет 52).
[2] Все серьезные коммерческие программы создаются большим коллективом разработчиков (авторский коллектив), но новаторские идеи, заложенные в них, имеют конкретных авторов.
[3] Решение довольно-таки спорное. Многие пользователи не заглядывают в документацию не потому, что лень, а потому, что документации просто нет, т.к. диск с программой куплен «на Горбушке» и, естественно, без документации. Help же написан, как правило, по-английски, который знают не все.
[4] Один коллега автора купил для фирмы, где он «халтурит», легальную копию офисной системы за 2500 долл., хотя на лотках («на Горбушке») ее продают за 90 рублей. При установке программы понадобилась консультация. Звонят продавцу, а он отвечает, что перепоручил послепродажную поддержку программы другой фирме. Звонят туда. А там отвечают, что у них консультации платные – 60 долл. за вопрос. За такие деньги они консультируют, естественно, всех подряд, а не только легальных пользователей.
[5] Хотя это не самый страшный «черный» бизнес: радуйтесь, что торгуют «железом» и программами, а не настоящими винчестерами и наркотиками.
[6] Говорят, что играть на фортепьяно очень просто. Достаточно нажимать нужную клавишу в нужное время. А гениальных пианистов единицы потому, что Создатель не в силах обслужить всех играющих. Проблемы же трудолюбия музыканта (программиста) мы касаться не будем, отсылая читателя к «Моцарту и Сальери» А. С. Пушкина, где эта тема разработана достаточно глубоко.
[7] Попытки разделение фирмы Microsoft – это не только попытки борьбы с крупнейшим компьютерным монополистом, но и желание сделать многооконный и многозадачный интерфейс не собственностью одной фирмы, одного, пусть даже гениального, человека, а достоянием всего человечества.
[8] Многие советы книги не решают старые проблемы, а поднимают новые, связанные с использованием компьютеров в научно-технических расчетах.
[9] Обычно гимнастикой для ума считают математику.
[10] Термин документ (the Document) был в ходу в среде Mathcad 6.0 и ниже. Начиная с 7-й версии стал использоваться другой термин – рабочий лист (the worksheet).
[11] Автоматические ссылки (гиперссылки) введены в электронный вариант текста книги, где они помечены цветом и подчеркиванием. Если такой фрагмент текста (он выглядит так см. совет NN) «окликнуть» (щелкнуть по нему мышкой), то читатель перейдет в нужное место (к совету NN). В книге цвет, естественно, пропал, а подчеркивание осталось. Текст книги после ее выхода в свет (это требование издателя), как мы уже отметили, будет опубликован в Internet, где все гиперссылки естественно заработают, и сделают навигацию по тексту простой и быстрой. Данная «ссылка о ссылках» – это, кстати, простейший пример гиперссылки: опутил глаза на «дно» страницы, а затем вернулся к основному тексту. Жалко, что Word, в среде которого писался текст книги, не позволяет в ссылке делать новую ссылку – в ссылке можно делать гиперссылку, чем автор не перемкнул воспользоваться. Автор надеется, что он гиперссылками не очень злоупотреблял: одно дело, электронная версия книги (щелкнул мышкой – просмотрел ссылку, щелкнул еще раз – вернулся назад и не заблудился), другое дело – обычный (плоский) текст книги.
[12] Если есть «искусство ради искусства», то должно быть и «программирование ради программирования».
[13] Конечно, не в защиту Mathcad, а в защиту разработчиков этого пакета. Защищать можно и нужно того, кто способен обижаться на упреки. Но мы уже давно привыкли одушевлять программные среды и переносить на них действия и чувства, которые по идее должны быть адресованы людям, а не программам.