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

fprog 5

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

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

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

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

[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 месяца, два хаскелиста)