dastapov: (Default)
[personal profile] dastapov
Что-то сильно и плотно ударился в 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 млн строк и показал скорость работы.

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

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

(no subject)

Date: 2006-11-18 03:51 pm (UTC)
From: [identity profile] thesz.livejournal.com
От микроменеджмента тяжело удержаться. Не может, практически, никто. ;)

(no subject)

Date: 2006-11-18 04:38 pm (UTC)
From: [identity profile] ex-vpol.livejournal.com
Я уже на стадии чтения строки "Расскажу я вам удивительную историю про скрипт на С" хотел откоментить "Какого ..?" :))

(no subject)

Date: 2006-11-18 08:55 pm (UTC)
From: [identity profile] eth0-blog.livejournal.com
Рано было спрашивать - интепретаторы С в природе тоже существуют ;)

Re: Напрасно смеешься

Date: 2006-11-18 06:30 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
Мнэээээ.... А это довод в пользу чего? :)

Или я чего-то не понял?

Re: Напрасно смеешься

Date: 2006-11-18 06:34 pm (UTC)
spamsink: (Default)
From: [personal profile] spamsink
В пользу того, что на Си действительно можно писать скрипты и запускать как скрипты. См. раздел Features по ссылке.

(no subject)

Date: 2006-11-18 08:09 pm (UTC)
From: [identity profile] sim0nsays.livejournal.com
С++-zealot [livejournal.com profile] _winnie рьяно убеждал за скрипты на C-C++. Разумеется, не в контексте сервера, а в контексте игр. Мол, С++ - хороший и мощный язык, можно компилять маленькую dll, и даже для дезайнеров его можно упростить, если написать простых классов. И очень быстрый, да :) Устал переубеждать в свое время.

(no subject)

Date: 2006-11-18 09:27 pm (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
С++ - вчерашний день. Скриптовый язык для дизайнеров надо делать только из ассемблера. Делов-то -- накидать удобных макросов, и вперед....

А синтаксис - такое дело. Перебьются :)

(no subject)

Date: 2006-11-18 11:19 pm (UTC)
From: [identity profile] sim0nsays.livejournal.com
Это классическая ловушка. Скажут, что на ассемблере - медленней, и макросы ваши неудобные. А про C++ только попробуй заикнуться, что неудобный...

(no subject)

Date: 2006-11-18 09:01 pm (UTC)
From: [identity profile] eth0-blog.livejournal.com
Хорошая баечка :) Но, действительно, про микроменеджмент, а фраза "скрипт на С" - путает немного, хочется сразу возразить, мол "скрипт на С" - это не шутка :)

(no subject)

Date: 2006-11-20 01:01 am (UTC)
From: [identity profile] rssh.livejournal.com
В мемориез !

(no subject)

Date: 2006-11-22 05:57 pm (UTC)
From: [identity profile] barch.livejournal.com
ты еще про "дайте мне срочно дежурного аналитика на два часа" как-нибудь расскажи

(no subject)

Date: 2006-11-23 06:51 am (UTC)
From: [identity profile] http://users.livejournal.com/_adept_/
О! Спс.

/me помечает в книжечке.

(no subject)

Date: 2006-12-01 11:04 am (UTC)
From: [identity profile] ex-1smash1100.livejournal.com
Насаждать и Палками Пиздить

(no subject)

Date: 2006-12-07 10:31 am (UTC)
From: [identity profile] alex-inside.livejournal.com
Хохо, микро-манагер, ага, бывают такие типа я твой босс и я лучше знаю как =)

Profile

dastapov: (Default)
Dmitry Astapov

May 2022

M T W T F S S
       1
2345678
9101112131415
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags