?

Log in

No account? Create an account

Previous Entry | Next Entry

Об эстрадности

Университет перестраивает учебные планы. Мой курс поставили на осень, поэтому сейчас ничего не читаю. А тут оказалось, что в компании надо провести лекцию для новых разработчиков: объяснить, как работает CVS (чего только не приходится преподавать). С утра ощущал подъём настроения; даже намечавшаяся простуда куда-то ушла.

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

Собственно, этот журнал - тоже от эстрадности.

Comments

( 40 comments — Leave a comment )
sciuro
Jan. 17th, 2007 08:31 pm (UTC)
версии на стол
CVS? Аптека? Биопсия хориона? :)
scholar_vit
Jan. 17th, 2007 08:35 pm (UTC)
Re: версии на стол
sciuro
Jan. 17th, 2007 09:26 pm (UTC)
Re: версии на стол
Век живи...
scholar_vit
Jan. 17th, 2007 09:57 pm (UTC)
Re: версии на стол
Я, честно говоря, не понимаю, как я без этого жил раньше. Очень помогает в работе: у меня теперь все рукописи статей (в TeXе) под CVS.
Re: версии на стол - ny_quant - Jan. 18th, 2007 03:22 am (UTC) - Expand
Re: версии на стол - scholar_vit - Jan. 18th, 2007 05:47 am (UTC) - Expand
Re: версии на стол - ny_quant - Jan. 19th, 2007 02:48 am (UTC) - Expand
Re: версии на стол - scholar_vit - Jan. 19th, 2007 05:12 pm (UTC) - Expand
vgramagin
Jan. 17th, 2007 09:03 pm (UTC)
Re: версии на стол
Я думаю, речь идет о репозитарии. Хотя чему там учить - две команды, пять ключей...
scholar_vit
Jan. 17th, 2007 09:51 pm (UTC)
Две команды..
cvs --help-commands
CVS commands are:
        add          Add a new file/directory to the repository
        admin        Administration front end for rcs
        annotate     Show last revision where each line was modified
        checkout     Checkout sources for editing
        commit       Check files into the repository
        diff         Show differences between revisions
        edit         Get ready to edit a watched file
        editors      See who is editing a watched file
        export       Export sources from CVS, similar to checkout
        history      Show repository access history
        import       Import sources into CVS, using vendor branches
        init         Create a CVS repository if it doesn't exist
        log          Print out history information for files
        login        Prompt for password for authenticating server
        logout       Removes entry in .cvspass for remote repository
        ls           List files available from CVS
        pserver      Password server mode
        rannotate    Show last revision where each line of module was modified
        rdiff        Create 'patch' format diffs between releases
        release      Indicate that a Module is no longer in use
        remove       Remove an entry from the repository
        rlog         Print out history information for a module
        rls          List files in a module
        rtag         Add a symbolic tag to a module
        server       Server mode
        status       Display status information on checked out files
        tag          Add a symbolic tag to checked out version of files
        unedit       Undo an edit command
        update       Bring work tree in sync with repository
        version      Show current CVS version(s)
        watch        Set watches
        watchers     See who is watching a file
(Specify the --help option for a list of other help options)

Это скорее 33 команды, верно? И ключей там хватает.

В последнем Cederqvist'е 184 страницы. Как раз на средних размеров курс.

Да, для простых вещей трех-четырех команд достаточно. Но тем и хорош CVS, что позволяет делать и очень непростые вещи.
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:12 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:25 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:29 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:32 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:37 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:45 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:47 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:55 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:57 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:30 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:35 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:36 pm (UTC) - Expand
Re: Две команды.. - scholar_vit - Jan. 17th, 2007 10:42 pm (UTC) - Expand
Re: Две команды.. - vgramagin - Jan. 17th, 2007 10:56 pm (UTC) - Expand
Re: Две команды.. - ninazino - Jan. 18th, 2007 12:59 am (UTC) - Expand
Re: Две команды.. - spamsink - Jan. 18th, 2007 01:40 am (UTC) - Expand
Re: Две команды.. - ninazino - Jan. 18th, 2007 01:48 am (UTC) - Expand
Re: Две команды.. - ex_increp708 - Jan. 17th, 2007 10:14 pm (UTC) - Expand
vadim_i_z
Jan. 17th, 2007 08:46 pm (UTC)
Последняя фраза к очень многим журналам подходит (и к моему тоже).
scholar_vit
Jan. 17th, 2007 09:45 pm (UTC)
Это верно
e2pii1
Jan. 18th, 2007 09:46 am (UTC)
Не знают американские разработчики CVS ? Или просто такие попались ?
Везде где я работал был CVS.
scholar_vit
Jan. 18th, 2007 04:33 pm (UTC)
Значительная часть американских разработчиков имеет, увы, слабое представление о том, зачем нужна вообще version control system. Одна из распространённых копроративных моделей разработки софта тут - это нанять как можно больше как можно более дешёвых кодеров (обычно иммигрантов первого поколения из Китая, Индии, Пакистана и т.п.) и дать каждому подробные инструкции. Типа "такого-то числа после удачного unit test делается cvs commit. Потому что Так Надо".

Я где-то читал, что эта модель сложилась исторически. В результате компьютерной революции возникла нужда в большом числе программистов. Университеты просто не успевали подготовить столько специалистов, и в программисты шли кто угодно: музыканты, учителя, электрики, водопроводчики. Инженер, пусть даже механик, считался крутым гуру. Затем университеты подтянулись, но они уже учили в рамках создавшейся модели и сложившихся представлений о том, что такое программист.

Лет пять назад я читал похожие лекции. После одной из них ко мне подошёл слушатель и сказал: "Знаете, я учился программировать в университете. Но меня четыре года обучали ремеслу: говорили, ЧТО надо делать. Вы первый начали с того, ПОЧЕМУ надо делать именно так". Не знаю, насколько он был искренен, но вот такое и вот такое - увы, реальность.
e2pii1
Jan. 19th, 2007 06:47 am (UTC)
Одна из распространённых копроративных моделей разработки софта тут - это нанять как можно больше как можно более дешёвых кодеров (обычно иммигрантов первого поколения из Китая, Индии, Пакистана и т.п.) и дать каждому подробные инструкции.

Да, я сталкивался тоже с энтузиазмом начальства к такому подходу. У меня подозрение, что один из факторов тут - психологический: значительная часть начальников старательно выбивалось туда потому что имели комплексы/амбиции диктатора, им мила картина высших людей отдающих детальные приказы низшим ограниченным и покорным исполнителям. Как вы думаете ?

Но для программирования такой подход, хотя и может быть целесообразен в определенных ситуациях, в стратегической перспективе, на мой взгляд несостоятелен. Особенность программирования в том, что рутинные операции могут быть легко автоматизированны. Если вы можете успешно отдать подробные инструкции тупому кодеру - значит что кодер тут может быть эффективно заменен программным инструментом (кодегенератором) c которым быстрей и легче самому все сделать.
scholar_vit
Jan. 19th, 2007 06:08 pm (UTC)
О психологии начальства мне рассуждать сложно; ничего, кроме Галича ("но начальник умным не может быть, потому что не может быть") в голову не приходит.

На самом деле я слышал вполне серьёзное обоснование такого подхода на лекциях по организации разработки. Там объяснялось, что хотя хороший программист на порядки продуктивнее средних, с ним связана проблема: если он уйдёт, всё посыплется. Поэтому лучше нанимать не одного суперклассного, а кучу посредственных, и так организовать процесс, чтобы они были взаимозаменяемы. Винтики и гаечки. На мой взгляд, тут есть логическая ошибка: грамотность почему-то противопоставляется организованности. Может, правильнее нанимать грамотных и организовывать процесс с ними? Но я по политическим соображениям этого говорить лектору не стал. Лектор ещё приводил стандартное сравнение с промышленной революцией: дескать, всё стало лучше, когда на место старых мастеров, создававших шедевры, пришло массовое производство, а затем конвейер. Это на мой взгляд тоже странно: интеллектуальный труд тем и отличается от производства материальных товаров, что одна высококлассная карета не заменит тысячу плохих, а вот одна правильно написанная программа заменит тысячу плохих, созданных конвейерным способом.

Вообще это касается не только труда программиста, но и всякого интеллектуального труда. Тут есть две концепции, которые я (сугубо условно, и без желания обидеть массу пользователей компьютеров) называю подходом Unixа и подходом Windows.

В первом случае предполагается, что человек очень грамотен и потратил некоторое время на то, чтобы в совершенстве овладеть инструментарием (все эти awkи, sedы и grepы). Он занимается в основном нетривиальным, творческим трудом. А если ему нужно сделать много рутинных, повторяющихся вещей - он быстро и эффективно их автоматизирует с помощью этого инструментария - вроде упомянутого Вами кодогенератора. В общем, человек не должен работать - работать должна машина. А человек должен думать. Ещё раз подчеркну, что речь идёт не только о программистах; классики Unixа предназначали систему для всякого интеллектуального труда: и физик, и бухгалтер должны были сами писать однострочники на sedе с awkом - точно так же, как современный человек сам может написать и прочесть записку жене или мужу, и не прибегает к услугам писца.

В подходе Windows предполагается обратное: что человек туп, умственно ленив и в принципе не может ничему научиться. Его инструменты должны быть "просты в обучении". Предполагается, что его работа по большей части будет состоять в тупом Copy & Paste, а творческий элемент в ней минимизирован. Вопрос об автоматизации вообще не стоит: пользователю этого класса легче часа три подряд щелкать мышкой по одной и той же последовательности кнопок, чем один раз написать скрипт (на всякий случай скриптовые инструменты от него тщательно прячут).

Если Вас не смущает несколько марксистская терминология, то в первом подходе компьютер - инструмент человека, а во втором человек - придаток к компьютеру.

А вообще на эти темы лучше разговаривать с vitus_wagner: он довольно ясно об этом пишет.
(no subject) - e2pii1 - Jan. 19th, 2007 08:37 pm (UTC) - Expand
(no subject) - scholar_vit - Jan. 19th, 2007 08:42 pm (UTC) - Expand
ny_quant
Jan. 20th, 2007 03:35 pm (UTC)
Последний раз когда я встретил программиста, который не знал зачем нужна version control system был 9 лет назад и этим человеком, увы, был я сам. (Тогда был еще программистом.) Хотя, мне не приходилось работать на COBOL'е ;-)
scholar_vit
Jan. 20th, 2007 07:56 pm (UTC)
Значит, Вам везло больше, чем мне.

А мне приходилось сталкиваться с ситуацией, когда программисты занимались дизассемблированием СОБСТВЕННОГО кода. Заказчик попросил внести изменения, и выяснилось, что в VC хранится древняя версия исходников, а свежую никто не почесался внести. Те, кто делали последнюю версию, давно уволились, и их директории стерли (об архивиривании со штампом "Хранить Вечно" системщики тоже не догадывались). Вот и восстанавливали код при помощи бинарника, лома и такой-то матери.
(no subject) - ny_quant - Jan. 21st, 2007 12:06 am (UTC) - Expand
yurilax
Jan. 27th, 2007 05:30 am (UTC)
А у нас - в квартире газ ClearCase. Сначала все долго плевались, но теперь, освоившись, без findmerge жить не могут.

К чему это я?.. Да так, просто очень хочется поговорить о чём-то родном и знакомом с кем-то для кого это тоже родное и знакомое. :)
( 40 comments — Leave a comment )

Profile

knot
scholar_vit
scholar_vit

Latest Month

August 2018
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Tags

Powered by LiveJournal.com
Designed by Paulina Bozek