Из всемирно известного информационного агенства News Service поступило сообщение, которое навсегда меняет лицо и сущность современного программирования.
Из-за тайного соглашения между IBM, Microsoft и
неназванных высокопоставленных лиц из News Service (недавно вышедших в
отставку из за конфликтов в президентом фирмы), данная новость стала
известна миру только 8 дней назад.
Создатели Cи и UNIX признают, что разыграли весь мир
В заявлении, потрясшем весь компьютерный мир, Кен Томпсон, Деннис Ричи и
Брайан Керниган признали, что операционная система UNIX и язык
программирования Си, созданные ими -- тщательно спланированный
первоапрельский розыгрыш, "продержавшийся" более 20 лет. Выступая на
последнем Конгрессе разработчиков программного обеспечения для ОС ДЕМОС
(UnixWorld Software Development Forum), Томпсон признал следующее:
"В 1969 году AT&T завершила работу над проектом операционной системы
Multics (известная операционная система 60-х, см. прим.2) Брайан и я
только что начали работу с ранней реализаций Паскаля, разработанной в
лаборатории проф. Вирта в Швейцарии, и находились под впечатлением
элегантности, простоты и мощи этого языка. Деннис как раз прочитал
"Уставший от колец", веселую сатиру на знаменитую трилогию Толкина
"Властелин колец" (*1*). Ради шутки мы решили написать пародии на среду
Multics и Паскаль. Деннис и я отвечали за операционную среду. Глядя на
Multics, мы спроектировали новую систему настолько сложной и запутанной,
чтобы максимально "испортить жизнь" рядовым пользователям, назвали ее
UNIX как пародию на Multics, добавив много других достаточно рискованных
аналогий.
Затем Деннис и Брайан разработали по-настоящему извращенный диалект
Паскаля, назвав его "A". Когда мы обнаружили, что другие действительно
пытаются писать программы на A, мы быстро добавили еще парочку хитрых
примочек, создав B, BCPL, и, наконец, Си. Мы остановились, добившись
успешной компиляции следующего:
for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
Мы не могли даже представить, что современные программисты будут
пытаться использовать язык, допускающий подобный оператор! Мы даже
собирались продать все это Советам, чтобы отбросить развитие их
компьютерного дела на 20 лет назад (*2*). Представьте наше удивление,
когда AT&T, а также другие американские корпорации начали пытаться
использовать UNIX и Си! Более 20 лет ушло на то, чтобы приобрести
достаточный опыт для создания хоть немного полезных приложений с
использованием этой технологической пародии 60-х. Мы были поражены
упорством и целеустремленностью (если не чувством здравого смысла)
типичного программиста, использующего UNIX и/или Си. В любом случае,
Брайан, Деннис и я в течение последних лет работали исключительно на
Паскале в среде Apple Macintosh и чувствуем себя по-настоящему
виноватыми в том хаосе, путанице и действительно скверном
программировании, причиной которых явилась наша неудачная шутка столько
лет тому назад."
Большинство поставщиков версий UNIX и Си, включая AT&T, Microsoft,
Hewlett-Packard, GTE, NCR, DEC, отказались комментировать это
выступление.
Borland International, ведущий производитель инструментальных средств
для Паскаля и Си, включая популярные Турбо Паскаль, Турбо Си и Турбо
Си++, заявил, что они давно подозревали это и будут продолжать улучшать
свои разработки для Паскаля и прекратят дальнейшие усилия по развитию
Си.
Официальный представитель IBM разразился безудержным хохотом и был
вынужден отменить спешно собранную конференцию о судьбе RS6000 заявив,
что `VM появится в ближайшее время`. В непонятом аудиторией кратком
сообщении проф. Вирт, отец Паскаля, Модулы-2 и Оберона, сказал лишь, что
некто P.T. Barnum был прав.
Кстати, из обычно совершенно надежных источников стало известно, что
подобное признание возможно скоро последуют от Вильяма Гейтса
относительно MS-DOS и Windows. Не случайно, вышеупомянутый представитель
IBM уже начал отрицать, что Виртуальная Машина (VM) является созданной
для внутреннего употребления аналогичной шуткой, вырвавшейся наружу.
Сколько нужно программистов...
... чтобы сменить лампочку?
nНи одного: это аппаратные проблемы.
... чтобы написать программу компартии?
nНисколько: программы под старые системы сейчас не пишут.
... чтобы утвердить документ?
nНесколько: один работает над текстом, остальные стоят в очереди на
печать.
... чтобы взломать местный узел Internet?
nОдин: с ломом, молотком и кусачками.
... чтобы перекрасить стену?
nДва: один перекрашивает, другой сообщает: «Идет обновление... Это
может занять несколько минут... »
... чтобы деинсталлировать Windows 95?
nТри: один хвалит, другой критикует, третий форматирует винчестер.
... чтобы удивить шефа?
nНи одного: всем одновременно прогулять работу.
... чтобы создать многозадачную систему?
nМного: по количеству задач.
... чтобы набрать 1024 Гб памяти?
n2048: каждый со своим винчестером.
... чтобы разобраться в чужой программе?
nПять: один учит язык, другой изучает текст, третий синхронизирует
работу двух первых, четвертый ищет автора, пятый пишет все заново.
... чтобы компьютеры, наконец, нормально работали?
nСемь: но ни одного не подпускать к компьютерам.
... чтобы помочь ближнему?
n0,001: даже глубоко занятый отладкой программист может мимоходом
нажать <F1>.
... чтобы спасти мир?
nВсе: бросить программировать.
... чтобы переплюнуть хакеров?
nПроизвольное количество: лишь бы ростом были выше хакеров.
... чтобы объясниться в любви?
nОдин: и с ним 16,7 млн. цветов.
Дело было в начале моей карьере программиста.
Я только что выпустился из
ВУЗа и уже около года работал в одной очень хорошей компании. Был молод,
горяч, амбициозен и склонен к перфекционизму.
Выдалось мне работать над программой, которая измеряет
производительность других программ и, по куче собранных данных,
позволяет понять пользователю, что именно надо оптимизировать.
Учитывая престиж международной организации, а так же то, что в высшей
степени нелепо, если такая программа сама будет работать медленно, «куча
собранных данных» должна была обрабатываться не быстро, а очень быстро.
Задача это в связи с ее обособленностью была поручена Вашему покорному
слуге, недавно пришедшему в проект, но уже хорошо зарекомендовавшему
себя.
В намеченный срок подхожу к своему начальнику и говорю, что так и так…
самые сложные запросы обрабатывают 10 штук записей (данных) за 5 сек, а
100 штук за 20 сек. Отмечу, что наш корпоративный этикет предполагает
очень вежливое общение между сотрудниками, а так же отношение с
пониманием к начинающим специалистам. Начальник смотрит на меня
снисходительно и объясняет, что это де слишком медленно и неплохо бы
было мне подойти к делу более старательно.
На следующий день подхожу к начальнику снова и рапортую: 10 штук записей
– 3 сек, 100 штук – 10 сек. Теперь уже на меня смотрят менее
снисходительно и сразу же отправляют на изучение материальной части,
доработку алгоритма, и т.д. и т.п., но опять таки пока вежливо.
Проходит еще 2 дня, а если честно, почти 2 суток увлеченной и
напряженной работы по оптимизации алгоритма с применением самых разных
простых и сложных техник, и опять к начальнику, который, в ожидании
«новых перлов от студента», выглядит уже несколько напряженно. В его
глазах легко читается что-то на вроде «вот ведь взял на свою голову
ламера».
Итак, момент истины! Я бодро, несмотря на 2 почти бессонные ночи, и
гордо рапортую: 10 штук записей – 1 сек, 100 штук записей – 5 сек.
Начальник не выдерживает и раздраженно спрашивает у меня, ПОЧЕМУ Я НИКАК
НЕ МОГУ ПОНЯТЬ, ЧТО ТАКИЕ МИЗЕРНЫЕ ОБЪЕМЫ КАК 10 И 100 ЗАПИСЕЙ НЕ ДОЛЖНЫ
ОБРАБАТЫВАТЬСЯ ТАК ДОЛГО!!! И тут у меня наступает озарение… я тоже уже
повышенным раззадоренным тоном отвечаю, что никакие это не 10 и 100! Я
же сказал, что это 10 штук и 100 штук! 10 тысяч и 100 тысяч!!! Занавес.
В итоге happy end. Алгоритм живет в продукте вот уже много лет.
Мораль: жаргон – вещь, варьирующаяся в зависимости от компании,
поколения и прочих нюансов из жизни человека; избегайте его применения
при обсуждении дел!
<div style="color:#0860a8; font:normal 0.8em verdana">История прислана на конкурс Intel</div>