metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-05-21 07:17 am
Entry tags:

fprog 5

Вышел пятый номер журнала Практика функционального программирования.
Я пока прочел только начало, про конкурс. Особо мне понравилось про полярные мнения экспертов, потому что это подтверждает мои идеи насчет полного отсутствия мейнстрима в программировании и насчет того, что работа "очень хороших" программистов плохо совместима с промышленной разработкой софта.

Т.е. мейнстрим и промышленная разработка существуют. Но существуют они исключительно в случае работы большими командами с низкой эффективностью и с минимальными инновациями, т.е. садят, условно говоря "один студент-одна неделя-один объект предметной области", а потом за ним тестеры ошибки ищут.

А теперь представьте, что всех их заменить на одного computer-science гуру с кодогенератором. Ошибок, которые делают студенты, гарантированно не будет, а те, которые будут - находятся гораздо раньше. Но результат работы плохо предсказуем, потому что кодогенераторы, по моему опыту, очень хреново обобщаются и поэтому их нужно делать под каждый класс задач и внутри конторы, для себя. При попытке их обобщения они (да и вообще все заумное, типа DSL и прочего) резко становятся настолько же неудобными в работе, как и обычные языки, только еще в гамаке и стоя.

И получается, что мы имеем вместо 10000 студентов, которые в лоб пишут одно и тоже на одних и тех же инструментов, 100 гурей, которые каждый "любовно полирует" кто хаскель, кто лисп, кто окамл, кто F# и среди которых нет никакого согласия.
И сроки работы этих гуру, хоть и в среднем сильно меньше, чем у студентов, но очень херово предсказуемые. Потому что одна удачно прочитанная книга или примененная идея может потребовать выкинуть всю работу за предыдущий срок, но сократит будущий срок в два раза.

[identity profile] mend0za.livejournal.com 2010-05-21 08:36 am (UTC)(link)
кодогенераторы пишут не только гуры, и не только на лиспе, окамле, F#

вчера заказчику отослал код на AWK, по CSV описанию генерирующий Си-ный хидер с данными. Срок разработки с обвязками - 4 дня. По этим данным можно даже кустарный reflection и OOP устраивать с ликующими шлюхами.

Это уже второй мой подобный проект за 5 лет, и что характерно - в обоих случаях сроки выполнения и отдачи результата - неделя или менее.

[identity profile] migmit.vox.com (from livejournal.com) 2010-05-21 09:07 am (UTC)(link)
> с мемори-ликующими шлюхами.

Fixed.

[identity profile] mend0za.livejournal.com 2010-05-21 09:24 am (UTC)(link)
у кого как

в этой версии нет динамического выделения памяти. Вообще.
Мемори-ликующие могут отдыхать.


[identity profile] guamoka.livejournal.com 2010-05-21 08:38 am (UTC)(link)
но очень херово предсказуемые

по-моему, она еще хуже видна. когда индус студент сидит с утра до ночи и херачит говнокод, сразу видно, что работа кипит, результат множится. когда (псевдо)гуру сидит, уставившись в монитор и что-то там пыкая на клавишах,- ужОс! что докладать начальству?

[identity profile] metaclass.livejournal.com 2010-05-21 08:45 am (UTC)(link)
Так да, у меня заказчик нервничает "где же результат". А прога работает, но я улучшаю внутренности, чтобы не пришлось потом 10 раз все переделывать.

[identity profile] volodymir-k.livejournal.com 2010-05-21 10:19 am (UTC)(link)
Докладывать, что работа идёт по сроку или вне срока.
По стандарту RUP работник должен сам подписаться на сроки, которые ему кажется приемлемым. Должны быть регулярные промежуточные билды. что там между билдами -- начальство не волнует, хоть в Израиль пусть ездят.

[identity profile] thesz.livejournal.com 2010-05-21 08:07 pm (UTC)(link)
Если ты возьмёшь 100 человек на задачу, то сроки будут очень даже предсказуемы. С точностью менее 10% (<sqrt 100), поскольку уж 100 задач там наберётся. ;)

Интересней другая ситуация: 6 программистов-недавних студентов на C++ по правильному процессу и 2 программиста на Хаскеле в разработке "как придётся". Полгода разработки по процессу с перепланированием и последующей правкой ошибок и недочётов в течении нескольких месяцев и четыре месяца до полного завершения проекта с подведением всех итогов.

Чтобы было понятней, garrrr - руководитель студентов, gaperton - руководитель отдела, где работали мы и подотдел Гусарова.

6*6*0.5=18 (6 месяцев, 6 студентов, зарплату студентов считаем в два раза ниже хаскелистов)
4*2*1=8 (4 месяца, два хаскелиста)