?

Log in

No account? Create an account
dump -0f - /dev/mind
Я знаю Haskell, OCaml, GSM, эндофункторы и много других страшных слов
Иногда проще отдаться, чем объяснить, почему нельзя ... 
18th-Nov-2006 05:35 pm
Что-то сильно и плотно ударился в GSM. А ну-ка, сменим тему.

Расскажу я вам удивительную историю про скрипт на С.

В компании Х жил да был CVS. К нему был прикручен т.н. commit mailout - рассылка по почте уведомлений о коммитах в репозиторий, с указанием того, кто чего куда закоммитил, и каким комментарием сопроводил.

Будучи человеком неленивым, я подписался на все-все-все изменения, которые делались в CVS, и периодически их просматривал. Чтобы, значит, быть в курсе происходящего и периодически наставлять на путь истинный новичков.

И вот однаждые мои глаза цепляются за коммит, в метаданных которого указана версия 1.1 (т.е. самая-самая первая), а в комментарии которого написано "Скрипт на С".

Открываю, читаю. Вижу код примерно такого содержания (чур за синтаксические ошибки не шпынять!):

void main(argc, argv) {
f=fopen(argv[1]);
while(fgets(l,15,f)!=NULL) {
printf("Some Long Multiline Template with %s inside\n", l);
}
fclose(f);
}


Т.е. мы вычитываем из указанного файла какие-то идентификаторы, и суем их в нужное место шаблона. Заполненный шаблон выдаем на stdout.

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

Странно. Автор этого творения вроде бы отличался умом и сообразительностью... Почему он не взял bash/sed/perl? Зачем С? Это ж на порядок больше работы - надо чтобы кто-то компилировал и deploy-ил это творение на production серверах, давал права на исполение, а потом его оттуда удалял.

Иду к разработчику, около него уже стоит тестер, пришедший с тем же вопросом - "какого ...?"

Высняется следующее - к разработчику пришел менеджер проекта по миграции с одной большой системы на другую, поставил задачу и остался смотреть через плечо. Разработчик сделал двухстрочник на перле. Менеджер возразил, что перл будет тормозить. Разработчик показал скорость выполнения. Менеджер возразил, что это, мол, тут, на локальной машине, перл быстро работает, а там, на Загруженном Сервере - явно будет тормозить. Разработчик убеждал. Разработчик вызвал к здравому смыслу. Разработчик сгененрировал входной файл из 10 млн строк и показал скорость работы.

В конце-концов разработчик устал и спросил менеджера, что, по его мнению, надо делать. Менеджер сказал: "ну, вот я, например, решал бы такие критические задачи только на С ...". Не вопрос, - ответил разработчик. Перепишем на С. Только с тестерами, администраторами и сотрудниками поддержки будешь разбираться сам ... А менеджер возьми и согласись. Убить его не убили, но здоровье после этой истории у него уже было не то ...

С тех пор "скрипт на С" показывают всем менеджерам, любящим микро-менеджмент. И знаете - помогает :)
Comments 
18th-Nov-2006 03:51 pm (UTC)
От микроменеджмента тяжело удержаться. Не может, практически, никто. ;)
18th-Nov-2006 04:38 pm (UTC)
Я уже на стадии чтения строки "Расскажу я вам удивительную историю про скрипт на С" хотел откоментить "Какого ..?" :))
18th-Nov-2006 08:55 pm (UTC)
Рано было спрашивать - интепретаторы С в природе тоже существуют ;)
18th-Nov-2006 04:56 pm (UTC) - Напрасно смеешься
18th-Nov-2006 06:30 pm (UTC) - Re: Напрасно смеешься
Мнэээээ.... А это довод в пользу чего? :)

Или я чего-то не понял?
18th-Nov-2006 06:34 pm (UTC) - Re: Напрасно смеешься
В пользу того, что на Си действительно можно писать скрипты и запускать как скрипты. См. раздел Features по ссылке.
18th-Nov-2006 08:09 pm (UTC)
С++-zealot _winnie рьяно убеждал за скрипты на C-C++. Разумеется, не в контексте сервера, а в контексте игр. Мол, С++ - хороший и мощный язык, можно компилять маленькую dll, и даже для дезайнеров его можно упростить, если написать простых классов. И очень быстрый, да :) Устал переубеждать в свое время.

18th-Nov-2006 09:27 pm (UTC)
С++ - вчерашний день. Скриптовый язык для дизайнеров надо делать только из ассемблера. Делов-то -- накидать удобных макросов, и вперед....

А синтаксис - такое дело. Перебьются :)
18th-Nov-2006 11:19 pm (UTC)
Это классическая ловушка. Скажут, что на ассемблере - медленней, и макросы ваши неудобные. А про C++ только попробуй заикнуться, что неудобный...
20th-Nov-2006 08:59 pm (UTC)
18th-Nov-2006 09:01 pm (UTC)
Хорошая баечка :) Но, действительно, про микроменеджмент, а фраза "скрипт на С" - путает немного, хочется сразу возразить, мол "скрипт на С" - это не шутка :)
20th-Nov-2006 01:01 am (UTC)
В мемориез !
22nd-Nov-2006 05:57 pm (UTC)
ты еще про "дайте мне срочно дежурного аналитика на два часа" как-нибудь расскажи
23rd-Nov-2006 06:51 am (UTC)
О! Спс.

/me помечает в книжечке.
1st-Dec-2006 11:04 am (UTC)
Насаждать и Палками Пиздить
7th-Dec-2006 10:31 am (UTC)
Хохо, микро-манагер, ага, бывают такие типа я твой босс и я лучше знаю как =)
This page was loaded Sep 15th 2019, 1:02 pm GMT.