The bad, the good and the Haskell
Sep. 20th, 2007 01:06 pmВынесу-ка я это из глубокого треда, может получиться флейм, а флейм это хорошо.
ifp5 пишет:
Реально проблема есть только одна единственная (и она та же самая что препятствует использованию OCaml, Haskell, LISP и пр) - что решение выбора языка принимают люди (такие бывают толстые и важные начальники), которые уже решили, что проект будет на жабе. Никаких других проблем в использовании шарпа (или хаскеля) нет.
Ну это на самом деле далеко не так. Это черезвычайно распространенное мнение, которое на самом деле базируется на такой красивой гиковской картине мира, в которой есть good programmers and evil managers. И все плохое проистекает из менеджеров, а все хорошее пишется умными программистами, которые вникают в проблему с полувзгляда и выбирают идеальный инструмент.
Попробуйте написать полезную программу на лиспе и продать ее пользователям (продать в широком, хорошем, смысле - пусть даже и забесплатно). Чтобы она была как программа на С++/Win32 или там на сишарпе/дотнете. Чтобы у нее был гуй, какой модно в этом сезоне (совершенно необязательно, кстати, чтобы он был один в один стянут с последнего оффиса), чтобы у нее был нетворкинг, чтобы она работала с трехмерной графикой под DX9/10 и использовала многоядерные процессоры. По-моему я описал гамез, сам того не желая, ну да ладно. Пусть это будет не гамез, а САПР.
Ровно та же самая проблема у всех на свете "скриптовых языков, лучших чем Перл". Они все безусловно лучше чем Перл (трудно быть хуже с точки зрения среднего программиста), но у перла есть CPAN. End of story here.
P.S. Всех, кто напишет что у Автокада в пузе как раз лисп - сразу забаню. Настолько short minded тут не нужны :-)
Реально проблема есть только одна единственная (и она та же самая что препятствует использованию OCaml, Haskell, LISP и пр) - что решение выбора языка принимают люди (такие бывают толстые и важные начальники), которые уже решили, что проект будет на жабе. Никаких других проблем в использовании шарпа (или хаскеля) нет.
Ну это на самом деле далеко не так. Это черезвычайно распространенное мнение, которое на самом деле базируется на такой красивой гиковской картине мира, в которой есть good programmers and evil managers. И все плохое проистекает из менеджеров, а все хорошее пишется умными программистами, которые вникают в проблему с полувзгляда и выбирают идеальный инструмент.
Попробуйте написать полезную программу на лиспе и продать ее пользователям (продать в широком, хорошем, смысле - пусть даже и забесплатно). Чтобы она была как программа на С++/Win32 или там на сишарпе/дотнете. Чтобы у нее был гуй, какой модно в этом сезоне (совершенно необязательно, кстати, чтобы он был один в один стянут с последнего оффиса), чтобы у нее был нетворкинг, чтобы она работала с трехмерной графикой под DX9/10 и использовала многоядерные процессоры. По-моему я описал гамез, сам того не желая, ну да ладно. Пусть это будет не гамез, а САПР.
Ровно та же самая проблема у всех на свете "скриптовых языков, лучших чем Перл". Они все безусловно лучше чем Перл (трудно быть хуже с точки зрения среднего программиста), но у перла есть CPAN. End of story here.
P.S. Всех, кто напишет что у Автокада в пузе как раз лисп - сразу забаню. Настолько short minded тут не нужны :-)
no subject
Date: 2007-09-21 05:26 am (UTC)Можно взять посредственного и вырастить сильного, раз готовых сильных нету.
> Но мне очень трудно себе представить задачу, решение которой кому-то нужно, но для решения которой брать сильных программистов нет смысла.
У каждой задачи есть бюджет. Сильные могут не влезть в этот бюджет (срок найма/взращивания сильного тоже сводится к бюджету). При этом вполне возможно, что эффект от сильного будет такой же, как от слабого (ну например если их посадить набивать текст с голоса, или там писать на PHP ;) ).
no subject
Date: 2007-09-21 10:53 am (UTC)Писать на ПХП тоже можно по разному и я легко могу себе представить когда применение сильного программиста даст вполне реальный выигрыш даже при создании чего-то весьма простого. Просто потому что продукт качественный, дырки какого нужно диаметра, четко где запланировано и не насквозь :-)
no subject
Date: 2007-09-21 11:26 am (UTC)"дырки какого нужно диаметра, четко где запланировано и не насквозь" - ну наверное да, соглашусь. Но всё равно вопрос овчинки и её выделки остаётся актуальным.
no subject
Date: 2007-09-21 11:36 am (UTC)no subject
Date: 2007-09-21 12:11 pm (UTC)В лиспе можно писать в java-style, и будет работать.
no subject
Date: 2007-09-21 12:13 pm (UTC)no subject
Date: 2007-09-21 04:34 pm (UTC)Если заменить слово "посредственный" на слово "молодой", то я согласился бы, пожалуй. Если бы моя компания называлась бы IBM, Microsoft, или, на худой конец, RFMD. Т.е., я располагал бы неограниченным бюджетом и неограниченным временем.
У каждой задачи есть бюджет. Сильные могут не влезть в этот бюджет (срок найма/взращивания сильного тоже сводится к бюджету). При этом вполне возможно, что эффект от сильного будет такой же, как от слабого (ну например если их посадить набивать текст с голоса, или там писать на PHP ;) )
Не, ну мы говорим о программистских задачах, или как?
Что до программистских, то сильный программист обходится в конечном итоге дешевле, чем слабый. Если сильный выдает 10 тыс. строк кода в месяц, делая в среднем одну ошибку на 500 строк, и при этом сам себе еще и архитектуру придумывает, а слабый выдает в месяц пару тысяч строк, с ошибкой в каждой десятой строке, и требует к себе еще и архитектора (а то он такого накодирует), то кого выгоднее брать в плане бюджета? При том что их месячная зарплата у них вряд ли различается более чем в 3-4 раза?
no subject
Date: 2007-09-23 07:00 am (UTC)В плане бюджета нередко ключевым является время найма - пока идёт охота за хорошим программером, можно успеть создать версию 1.0 с помощью слабых, которых много. Если рынок таков, что дата выхода продукта на него важнее качества продукта, то ждать хороших программеров невыгодно.
PS: 10 тысяч строк кода в месяц - это 500 строк каждый рабочий день. Мне почему-то кажется, что хороший программер тем и отличается от кодера, что не является машинисткой, и старается писать кода как можно меньше.
no subject
Date: 2007-09-23 01:11 pm (UTC)Важная заметка на полях: ни я ни Саша не имеем в виду создание овечек долли, типа "магазин-склад" или "вертикальный интернет-портал с горизонтальной специализацией". Это, в общем, совсем другой бизнес, он не о том.
Если хороший программист так сильно старается писать поменьше кода, что кода совсем не пишет - это плохой программист.
no subject
Date: 2007-09-25 04:08 am (UTC)Когда писал на PHP, писал по 700-900 в день.
Конечный результат явно говорит в пользу 200 строк в неделю.
PS: ну да, это конкретно один проект, не стоит наверное распространять опыт на все проекты, но даже логически маленькое количество строк лучше, чем большое.
no subject
Date: 2007-09-25 08:03 am (UTC)no subject
Date: 2007-09-25 09:32 am (UTC)По поводу LOC как метрики сложности проекта или там производительности программиста дебаты ведутся до сих пор.
Канер вот вообще говорит, что считать количество багов не только бессмысленно, но и
вредно. Я тоже считаю, что говорить "ой, проект всего на полмиллиона строк - фигня мелкая" есть некорректно (мне сразу же вспоминается mnesia и вообще erlang-овские проекты, а также xml-парсеры на ocaml).
Или я неправильно понимаю коммент?
no subject
Date: 2007-09-25 09:41 am (UTC)no subject
Date: 2007-09-25 04:11 am (UTC)no subject
Date: 2007-09-23 04:25 pm (UTC)К слабым нужен сильный архитектор, а его тоже еще поискать...
PS: 10 тысяч строк кода в месяц - это 500 строк каждый рабочий день. Мне почему-то кажется, что хороший программер тем и отличается от кодера, что не является машинисткой, и старается писать кода как можно меньше
Это как раз с учетом пожелания писать кода как можно меньше. Правда иногда вместо кода целевого приложения получается компилятор, который генерирует на выходе целевое приложение :-)