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-20 06:13 pm (UTC)А большинство задач позволяет-таки брать не сильных программеров
Как будто-бы есть выбор. Взать сильного программиста - удача. Набрать команду сильных программистов - большая удача.
Просто есть задачи, которые можно таки решить, не имея сильных программистов. И есть задачи, за которые без них лучше и не браться.
Но мне очень трудно себе представить задачу, решение которой кому-то нужно, но для решения которой брать сильных программистов нет смысла. Ну если, конечно, задача не звучит как "организовать работу таким образом, чтобы идиотизм большого технического начальства не был виден невооруженным взглядом".
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 строк каждый рабочий день. Мне почему-то кажется, что хороший программер тем и отличается от кодера, что не является машинисткой, и старается писать кода как можно меньше
Это как раз с учетом пожелания писать кода как можно меньше. Правда иногда вместо кода целевого приложения получается компилятор, который генерирует на выходе целевое приложение :-)
no subject
Date: 2007-09-21 07:35 am (UTC)no subject
Date: 2007-09-21 04:37 pm (UTC)Толпа идиотов может за пару лет запросто довести код написанной до них программы до такого состояния, что проще будет код стереть, диски отформатировать, а всех, кто этот код видел, заслать к врагам в качестве идеологической деверсии, чем поддерживать такую программу дальше.
no subject
Date: 2007-09-21 04:40 pm (UTC)no subject
Date: 2007-09-21 04:43 pm (UTC)no subject
Date: 2007-09-21 04:51 pm (UTC)