kika: (Default)
[personal profile] kika
Вынесу-ка я это из глубокого треда, может получиться флейм, а флейм это хорошо.

[livejournal.com profile] ifp5 пишет:
Реально проблема есть только одна единственная (и она та же самая что препятствует использованию OCaml, Haskell, LISP и пр) - что решение выбора языка принимают люди (такие бывают толстые и важные начальники), которые уже решили, что проект будет на жабе. Никаких других проблем в использовании шарпа (или хаскеля) нет.

Ну это на самом деле далеко не так. Это черезвычайно распространенное мнение, которое на самом деле базируется на такой красивой гиковской картине мира, в которой есть good programmers and evil managers. И все плохое проистекает из менеджеров, а все хорошее пишется умными программистами, которые вникают в проблему с полувзгляда и выбирают идеальный инструмент.
Попробуйте написать полезную программу на лиспе и продать ее пользователям (продать в широком, хорошем, смысле - пусть даже и забесплатно). Чтобы она была как программа на С++/Win32 или там на сишарпе/дотнете. Чтобы у нее был гуй, какой модно в этом сезоне (совершенно необязательно, кстати, чтобы он был один в один стянут с последнего оффиса), чтобы у нее был нетворкинг, чтобы она работала с трехмерной графикой под DX9/10 и использовала многоядерные процессоры. По-моему я описал гамез, сам того не желая, ну да ладно. Пусть это будет не гамез, а САПР.

Ровно та же самая проблема у всех на свете "скриптовых языков, лучших чем Перл". Они все безусловно лучше чем Перл (трудно быть хуже с точки зрения среднего программиста), но у перла есть CPAN. End of story here.

P.S. Всех, кто напишет что у Автокада в пузе как раз лисп - сразу забаню. Настолько short minded тут не нужны :-)

Date: 2007-09-20 11:28 am (UTC)
From: [identity profile] rblaze.livejournal.com
Меня от использования даже Python останавливает простой факт: если людей с C++ даже на средненьком уровне хрен найдешь, то что же будет с менее популярными языками? А брать людей, для которых решающим фактором при выборе работы является "там пишут на плохом C/C++, а тут на хорошем oCalm" как-то страшно.

Date: 2007-09-20 12:02 pm (UTC)
From: [identity profile] grundik.livejournal.com
Имхо это как раз основная причина выбора C++, а не OCaml :)
Когда задача позволяет брать не сильных программеров, то не имеет смысла брать сильных программеров.
А большинство задач позволяет-таки брать не сильных программеров.

PS: немного поясню, если непонятно моё мнение - для сильного программера язык важен чисто эстетически, но не практически. Питон изучается за месяц, а работают люди годами. Сам код (набор классов/функций/etc) является языком, изучить который в случае C++ может быть сложнее, чем весь питон как язык. Когда же сложность ещё и на уровне концепций/алгоритмов, то собственно язык вообще отходит на пятый план.

PPS: при прочих равных я выберу контору, в которой пишут на лиспе, просто мне так приятнее. Также я выберу контору, офис которой ближе к моему дому - мне тоже так приятнее. Почему меня страшно брать на работу?

Date: 2007-09-20 12:09 pm (UTC)
From: [identity profile] rblaze.livejournal.com
Тех, кто выбирает поблизости от дома -- не страшно. Это понятный критерий, я сам на работу пешком хожу, хотя оно случайно получилось.

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

Date: 2007-09-20 01:16 pm (UTC)
From: [identity profile] grundik.livejournal.com
Логично.

PS: я бы не сказал, что у лиспа абстрактная хорошесть. Мне реально там очень комфортно, в отличие от других языков.

Date: 2007-09-20 01:31 pm (UTC)
From: [identity profile] kika.livejournal.com
Нет такого понятия - абстрактная хорошесть. Просто по определению, эти два слова несочетаемы.

Date: 2007-09-20 01:32 pm (UTC)
From: [identity profile] rblaze.livejournal.com
Вот и я так думаю. Однако ж полно "красноглазых линуксоидов" ™

Date: 2007-09-20 03:22 pm (UTC)
From: [identity profile] gaus.livejournal.com
Питон изучается за месяц, а работают люди годами

...А лиспы изучаются за пару часов.

Боюсь, что это популярное заблуждение. У каждого языка свой набор идиом, cвой стиль, cвой way-of-doing-things. И он изучается постепенно, годами разработки. Правила шахмат можно объяснить за пару минут, научится играть умно - нужно очень долгое время (это не я придумал эту аналогию, я её стащил из sicp-a). Это косвенно связано с проблемой в заглавном посте. Найти гика, который за ночь зафанател от Хаскелла - нет проблем, найти человека, который глубоко понимает идиоматику Хаскелла - крайне сложная задача. И её решение имеет больше накладных раходов, чем предоставляет преимуществ более короткий код какого-нибудь квиксорта :)

Date: 2007-09-21 05:00 am (UTC)
From: [identity profile] grundik.livejournal.com
Ну, лисп всё же попроще хаскеля (даже синтаксисом).

На scheme можно начать писать и править баги реально через неделю (проверено). Нормально писать - через месяц-полтора. Хорошо - хз когда (я больше полугода уже наверное пишу, но не могу сказать, что делаю это хорошо).

Но неважно, хорошо ли я пишу на scheme или нет. Важен результат.

Я не фанатик, и в сказки не верю (например, я до сих пор не верю в хаскель, потому что У МЕНЯ не получается на нём что-то серьёзное писать). Я сейчас пишу одновременно на PHP и на scheme. И scheme намного эффективнее, хотя знаю я scheme наверняка хуже, чем PHP (семь лет и полгода - есть разница?).

Проект на PHP за три года я не смог вылизать так, чтобы там не было критичных багов (а всего там нашли около 300 серьёзных багов по функциональности).
Проект на scheme, который решает ровно ту же задачу (точнее, он решает побольше задач, но зато в нём нет GUI), что и проект на PHP, был написан за полтора месяца, и за полгода использования в нём не найдено ни одного бага по функциональности.

Это просто факты.

Date: 2007-09-20 06:13 pm (UTC)
From: [identity profile] pzz.livejournal.com
Когда задача позволяет брать не сильных программеров, то не имеет смысла брать сильных программеров.
А большинство задач позволяет-таки брать не сильных программеров


Как будто-бы есть выбор. Взать сильного программиста - удача. Набрать команду сильных программистов - большая удача.

Просто есть задачи, которые можно таки решить, не имея сильных программистов. И есть задачи, за которые без них лучше и не браться.

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

Date: 2007-09-21 05:26 am (UTC)
From: [identity profile] grundik.livejournal.com
> Взать сильного программиста - удача

Можно взять посредственного и вырастить сильного, раз готовых сильных нету.

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

У каждой задачи есть бюджет. Сильные могут не влезть в этот бюджет (срок найма/взращивания сильного тоже сводится к бюджету). При этом вполне возможно, что эффект от сильного будет такой же, как от слабого (ну например если их посадить набивать текст с голоса, или там писать на PHP ;) ).

Date: 2007-09-21 10:53 am (UTC)
From: [identity profile] kika.livejournal.com
Обычно из посредственных программистов вырастают только посредственные с апломбом :-) Типа меня, например.

Писать на ПХП тоже можно по разному и я легко могу себе представить когда применение сильного программиста даст вполне реальный выигрыш даже при создании чего-то весьма простого. Просто потому что продукт качественный, дырки какого нужно диаметра, четко где запланировано и не насквозь :-)

Date: 2007-09-21 11:26 am (UTC)
From: [identity profile] grundik.livejournal.com
Ну, пусть из посредственного вырастет не хороший in general, а хороший конкретно здесь, по-моему это вполне реально. Ну и всё же не стоит считать одинаково посредственными программистами людей, которым лисп сложно выучить и людей, которые на нём пишут. Это разные уровни посредственности :)

"дырки какого нужно диаметра, четко где запланировано и не насквозь" - ну наверное да, соглашусь. Но всё равно вопрос овчинки и её выделки остаётся актуальным.

Date: 2007-09-21 11:36 am (UTC)
From: [identity profile] kika.livejournal.com
Я не пишу на лиспе :-) Я прочитал книжку грэма, научился писать простенькие программки, но многие концепции просто не применял даже ни разу, например макро. Наверное я способен искать и исправлять баги в программе, но чтобы создавать свои нужен некий опыт.

Date: 2007-09-21 12:11 pm (UTC)
From: [identity profile] grundik.livejournal.com
Опыт конечно нужен, но это же не хаскель :)
В лиспе можно писать в java-style, и будет работать.

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-09-21 12:13 pm (UTC) - Expand

Date: 2007-09-21 04:34 pm (UTC)
From: [identity profile] pzz.livejournal.com
Можно взять посредственного и вырастить сильного, раз готовых сильных нету

Если заменить слово "посредственный" на слово "молодой", то я согласился бы, пожалуй. Если бы моя компания называлась бы IBM, Microsoft, или, на худой конец, RFMD. Т.е., я располагал бы неограниченным бюджетом и неограниченным временем.

У каждой задачи есть бюджет. Сильные могут не влезть в этот бюджет (срок найма/взращивания сильного тоже сводится к бюджету). При этом вполне возможно, что эффект от сильного будет такой же, как от слабого (ну например если их посадить набивать текст с голоса, или там писать на PHP ;) )

Не, ну мы говорим о программистских задачах, или как?

Что до программистских, то сильный программист обходится в конечном итоге дешевле, чем слабый. Если сильный выдает 10 тыс. строк кода в месяц, делая в среднем одну ошибку на 500 строк, и при этом сам себе еще и архитектуру придумывает, а слабый выдает в месяц пару тысяч строк, с ошибкой в каждой десятой строке, и требует к себе еще и архитектора (а то он такого накодирует), то кого выгоднее брать в плане бюджета? При том что их месячная зарплата у них вряд ли различается более чем в 3-4 раза?

Date: 2007-09-23 07:00 am (UTC)
From: [identity profile] grundik.livejournal.com
ok, я в принципе согласился уже, что несколько приуменьшил эффективность хорошего программиста.

В плане бюджета нередко ключевым является время найма - пока идёт охота за хорошим программером, можно успеть создать версию 1.0 с помощью слабых, которых много. Если рынок таков, что дата выхода продукта на него важнее качества продукта, то ждать хороших программеров невыгодно.

PS: 10 тысяч строк кода в месяц - это 500 строк каждый рабочий день. Мне почему-то кажется, что хороший программер тем и отличается от кодера, что не является машинисткой, и старается писать кода как можно меньше.

Date: 2007-09-23 01:11 pm (UTC)
From: [identity profile] kika.livejournal.com
Версию 1.0 со слабыми не создашь. Со слабыми можно создать 3.0, для чеса по губерниям, на волне прежней славы.
Важная заметка на полях: ни я ни Саша не имеем в виду создание овечек долли, типа "магазин-склад" или "вертикальный интернет-портал с горизонтальной специализацией". Это, в общем, совсем другой бизнес, он не о том.

Если хороший программист так сильно старается писать поменьше кода, что кода совсем не пишет - это плохой программист.

Date: 2007-09-25 04:08 am (UTC)
From: [identity profile] grundik.livejournal.com
Я пишу ~200 строк в неделю :)
Когда писал на PHP, писал по 700-900 в день.

Конечный результат явно говорит в пользу 200 строк в неделю.

PS: ну да, это конкретно один проект, не стоит наверное распространять опыт на все проекты, но даже логически маленькое количество строк лучше, чем большое.

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-09-25 08:03 am (UTC) - Expand

(no subject)

From: [identity profile] grundik.livejournal.com - Date: 2007-09-25 09:32 am (UTC) - Expand

(no subject)

From: [identity profile] kika.livejournal.com - Date: 2007-09-25 09:41 am (UTC) - Expand

Date: 2007-09-25 04:11 am (UTC)
From: [identity profile] grundik.livejournal.com
А, ещё по поводу "версию 1.0 со слабыми не создашь" - мои проекты напрямую связаны с обеспечением качества девятой версии продукта, первая версия которого была создана далеко не сильными программистами.

Date: 2007-09-23 04:25 pm (UTC)
From: [identity profile] pzz.livejournal.com
В плане бюджета нередко ключевым является время найма - пока идёт охота за хорошим программером, можно успеть создать версию 1.0 с помощью слабых, которых много

К слабым нужен сильный архитектор, а его тоже еще поискать...

PS: 10 тысяч строк кода в месяц - это 500 строк каждый рабочий день. Мне почему-то кажется, что хороший программер тем и отличается от кодера, что не является машинисткой, и старается писать кода как можно меньше

Это как раз с учетом пожелания писать кода как можно меньше. Правда иногда вместо кода целевого приложения получается компилятор, который генерирует на выходе целевое приложение :-)

Date: 2007-09-21 07:35 am (UTC)
From: [identity profile] rblaze.livejournal.com
Ну вот у меня есть задача, на которую брать сильных программистов нет смысла: багфиксинг подсистемы управления и вставка в неё новых фич по запросам маркетинга. Сильный заскучает на ней и свалит нафиг.

Date: 2007-09-21 04:37 pm (UTC)
From: [identity profile] pzz.livejournal.com
Про багфиксинг (который я бы обобщил до поддержки/развития уже существующей программы) это хороший вопрос.

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

Date: 2007-09-21 04:40 pm (UTC)
From: [identity profile] rblaze.livejournal.com
Да, этот риск тоже известен. Придется за ними следить.

Date: 2007-09-21 04:43 pm (UTC)
From: [identity profile] kika.livejournal.com
А следить кто будет? Такой же?

(no subject)

From: [identity profile] rblaze.livejournal.com - Date: 2007-09-21 04:51 pm (UTC) - Expand

Date: 2007-09-20 05:09 pm (UTC)
From: [identity profile] dmzlj.livejournal.com
как показал мой опыт, если взять java программиста и долго его бить, он начинает писать на питоне, и вообще на чем скажут

Profile

kika: (Default)
kika

January 2017

S M T W T F S
1234567
89 1011121314
151617181920 21
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 16th, 2026 05:24 pm
Powered by Dreamwidth Studios