Laurel и Hardy в попытке написать программу на C
Автор: Stephen Bint
Перевод: Юрий Прушинский


... участвуют любимцы публики Стэн Лаурель (Stan Laurel) и Оливер Харди (Oliver Hardy).
(Официальный сайт L&H ) (UK tribute page)

[Stan Laurel и Oliver Hardy -- английские комики. Начинали сниматься ещё во времена "Великого Немого", в 1917 г. Прим.ред.]

Данная статья является послесловием автора к предыдущей январской публикации Мечты об идеальном текстовом редакторе и трём февральским отзывам на неё в Mailbag letters .


Олли сидит за монитором. Заходит Стэн, держа в руках книжку.

Олли: Ты где был?!

Стэн: Да вот, сходил в книжный магазин купить книгу, про которую ты говорил.

Олли: Тебя только за смертью посылать! Нам же надо к завтрашнему утру закончить этот CGI-скрипт! Покажи, что хоть купил-то?

Стэн показывает книгу Олли.

Олли: "Введение в Программирование на C". Это ещё что такое?

Стэн: Это введение в программирование на C, Олли.

Олли невозмутимо смотрит в камеру.

Олли: Сам вижу, не дурак! Только я помнится говорил тебе, что мы пишем скрипт на Perl'е.

Стэн: Но мистер Бинт сказал...

Олли: мистер Бинт?

Стэн: Ну, продавец в книжном магазине, мистер Бинт.

Олли: [Нетерпеливо] И что же сказал этот твой "мистер Бинт"?

Стэн: Он сказал, что книги о Perl у них закончились, но у него был целый стеллаж книг по С. Сказал, что мне ещё повезло.

Олли: Это ещё почему?

Стэн: Он сказал, что для CGI лучше всего использовать C, потому что C - это профессиональный язык программирования, а Perl просто игрушка. Perl просто какой-то продвинутый скриптовый язык и всё.

Олли: Да? Прямо так и сказал?

Стэн: [Кивая] Мистер Бинт сказал, что изначально изучать С сложнее, но на практике он не такой обширный, потому что в С мало правил. Говорит, что Perl сам делает практически всё за тебя, и поэтому для того чтобы понять работу программы, нужно в каждом случае изучать что же именно он делает. И поэтому книги по С намного тоньше книг по Perl. Сказал, что книги по Perl такие толстенные, что их уместилось всего четыре штуки на полке, поэтому и распродал их так быстро. Причем книги бывают настолько толстыми, что даже у грузовиков при их перевозке шины лопаются и книги долго везут.

Олли: Что, правда что ли?!

Стэн: [Кивая] Так сказал мистер Бинт. Он сказал что в Perl такой непонятный синтаксис, что часто трудно правильно определить интерфейсы, что приводит к всеобщей расхлябанности.

Олли: А что ещё он сказал?

Стэн: Сказал ещё, что С часто выставляют как полным опасностей по сравнению с Perl, но, фактически, в Perl просто нет нескольких багов из С, но сама "нечитабельность" Perl это ещё больший баг. И вообще, gcc выдаёт вполне нормальные сообщения при компиляции о синтаксических ошибках, и есть много программ для проверки программ на утечку памяти или другие ошибки.

Олли: Мммммф. Мистер Бинт небось упомянул тебе про Lint?

Стэн: Да.

Олли смотрит нетерпеливо на камеру, а затем на Стэна.

Олли: Ну, что ж, полагаю нам ничего не остаётся, как писать наш скрипт на "C".... "мистер Бинт". Ммммфф!

Олли склоняется над клавиатурой, готовясь набирать код.

Олли: Oкей, ты читай мне книгу вслух, а я буду писать программу.

   while( Olli_waits ) {

      Stan_looks_at_book();
      Stan_looks_at_Olli();
      Stan_looks_panic_stricken();

      if( Olli_looks_around() )
         Olli_waits = false;
      } ( данный код символизирует заминку в диалоге двух друзей; без комментариев - прим.перев. )

Олли: Ну, и что ты теперь на это скажешь, Стэнли?

Стэн: [Рыдая] Прости Олли... [всхлипывание]... Я думаю что мы не сможем начать прямо сейчас... [шмыгая носом]...Я думаю, что нам надо сначала прочесть книгу и выучить язык...

Олли: Ладн, может прекратишь ныть? Давай-ка посмотрим, насколько его будет трудно изучить? Нам ведь надо всего лишь выучить язык и затем написать программу.

Олли оборачивается к Стэну.

Олли: Oкей, скажи-ка мне, что нам надо знать о С перед тем как начинать?

Стэн: Ну, если судить по Оглавлению, то..... типы переменных, типы, определяемые пользователем, статические переменные, инициализация или присваивание, константы, операторы, бинарные операции, унарные операции, арифметические операции, логические операции, приоритет операций: if, for, switch, while, continue, break, массивы...

Олли невесело глядит в камеру.

Стэн: многомерные массивы, указатели, арифметические указатели, указатели функций, объявление и определение функций, предварительные директивы и макросы, форматы printf, автоматическая и распределяемая память, аргументы командной строки, рекурсия...

Олли снимает с головы Стэна кепку, шлёпает его ковриком от мыши (двумя сторонами) и аккуратно надевает кепку обратно. Стэн перестаёт читать.

Олли: Что ж, поздравляю, Стэнли. Ты втянул меня в очередную передрягу!

   while( camera_is_running() )
      Stan_blubbers();   ( без комментариев - прим.перев. )

Конец.

Стивен (Stephen) простой бездомный Англичанин, живёт в палатке в лесу. Питается из консервных банок и курит окурки, найденные на дороге. Хотя он работал какое-то время программистом на С, но предпочитает называть себя "проницательным любителем".


Copyright (c) 2003, Stephen Bint. Copying license http://www.linuxgazette.com/copying.html
Published in Issue 89 of Linux Gazette, April 2003


Вернуться на главную страницу