metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-01-22 09:30 pm

Языки программирования? По барабану.

По мотивам срачей с ребе айседом на тему "LISP/Clojure vs Java vs C++ vs Ruby vs Haskell" запишу свои тезисы, чтобы не забыть:

0) Выбор языка программирования - по сараю. Код никто не пишет. 90% работы - это общение с клиентами, писание требований, документирование, объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая.
Ход мысли не программиста-фанатика, мыслящего категориями "как и на чем писать", а категориямии руководителя-менеджера "зачем писать, какие ресурсы использовать для этого, какая будет прибыль и какие дальнейшие прибыли или убытки это за собой потянет".

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

2) Основная проблема - это не собственно выполнение работы (по моему, если не лезть в реализацию совсем уж новых концепций программирования, типа "а теперь мы сделаем хаскель, на котором можно писать низкоуровневые драйвера", то все мыслимое и немыслимое уже придумано и сделано, достаточно разобраться, склеить и скомпилировать), а заставить себя взяться за эту работу. Если язык при этом лезет под ноги всяким тупизмом, т.е. в 2012 году ВНЕЗАПНО не работает "искаропки" - отправляется в утиль.

Есть только одно неприятное следствие вышеуказанного: если так думать, заниматься "личными" проектами становится крайне затруднительно. Прибыли от них нет, приобретенное умение программировать уже НЕ НУЖНО, сделать что-то действительно новое и полезное - 90% будет не код, а анализ рынка, реклама, общение с коллегами, клиентами, заказчиками, опен-сорсным комьюнити и прочая.
А писать в стол всякое уныние, коего готового 100500 вариантов - нет вообще никаких стимулов.

Последнее время эта тема напрягает, т.к. я привык постоянно заниматься какими-то "интересными проектами", но постепенно требования к ним в силу моего перфекционизма переросли порог "можно сделать в свободное время не напрягаясь".

[identity profile] theiced.livejournal.com 2012-01-22 07:38 pm (UTC)(link)
нет покоя жеж. xslt болядь. xml головного моска.

[identity profile] theiced.livejournal.com 2012-01-22 07:38 pm (UTC)(link)
он у меня не работал со входа ;]

[identity profile] metaclass.livejournal.com 2012-01-22 07:39 pm (UTC)(link)
Херня, я такое и сам написать могу :)

[identity profile] metaclass.livejournal.com 2012-01-22 07:40 pm (UTC)(link)
У меня работал. Когда я понял что он не работает - было уже поздно.

[identity profile] theiced.livejournal.com 2012-01-22 07:45 pm (UTC)(link)
вывод - нехуй читать книжки

[identity profile] plumqqz.livejournal.com 2012-01-22 07:57 pm (UTC)(link)
Ну да.

(Anonymous) 2012-01-22 07:59 pm (UTC)(link)
А что не работало, если не секрет?

[identity profile] metaclass.livejournal.com 2012-01-22 08:10 pm (UTC)(link)
"Не работает" - это тут гиперболизированное и упрощенное описание глупых проблем типа "невозможно переопределить поведение грида, потому что он для этого не запроектирован, а исходников нет" или "при неправильном имени поля выбрасывается исключение Invalid index(-1), вместо имени поля" или "программа молча падает, если исключение в фоновом потоке".

Т.е. вещи, которыми при реализации простых end-user проектов как бы вообще появлятся не должны, т.е. не должно быть нужно на каждый чих, отличающийся от стандартного "нарисовал 100500 форм в дизайнере студии" лезть в гугл-reflector-внутренности фреймворка.

[identity profile] sergiej.livejournal.com 2012-01-22 08:40 pm (UTC)(link)
О! Ещё один понял что сам язык на десятом месте после кучи более важных вещей :)

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

[identity profile] sorhed.livejournal.com 2012-01-22 09:00 pm (UTC)(link)
Всё правильно сказал.

[identity profile] veter-r-r.livejournal.com 2012-01-22 09:05 pm (UTC)(link)
Вранье! Похапешники работают за еду, поэтому на еду им должно хватать всегда

(Anonymous) 2012-01-22 09:06 pm (UTC)(link)
А встречалась вам "работающая" технолоия?

[personal profile] alll 2012-01-22 09:53 pm (UTC)(link)
там отсутсвует ключевой этап: "обработать заусенцы драчёвым напильником до приобретения изделием требуемой формы"

[identity profile] golosptic.livejournal.com 2012-01-22 10:19 pm (UTC)(link)
Сначала надо себя заставить взять в руки драчёвый напильник.

[identity profile] sorhed.livejournal.com 2012-01-22 10:24 pm (UTC)(link)
Жаба в этом плане более рабочая, кстати. Хотя дельфи, вон, ещё лучше был. А лучше всего фокспро для дос.

[identity profile] theiced.livejournal.com 2012-01-22 10:27 pm (UTC)(link)
так они так работают что не хватает!

[identity profile] teewoon.livejournal.com 2012-01-23 01:00 am (UTC)(link)
+1, губит людей не пиво, губит людей перфекционизм!

[identity profile] fraks-nsk.livejournal.com 2012-01-23 01:32 am (UTC)(link)
А почему Delphi - "был"?

Фокспро - это да, приятная штука была. Но имеет существенный минус - интерпретатор. Для того что бы проверить весь код надо прогнать каждую ветку.

[identity profile] thedeemon.livejournal.com 2012-01-23 02:35 am (UTC)(link)
Антитезисы:
-1) Выбор языка программирования очень важен и определяется задачей, ибо то, что у них на выходе имеет очень разные характеристики. Давайте напишите мне годный драйвер на джаваскрипте и эрланге, а webUI на дельфи.
-2) Если "все мыслимое и немыслимое уже придумано и сделано", значит ваша предметная область - говно и торф, или вы не способны придумать ничего лучше того, что уже придумано и сделано.
-3) Заниматься личными проектами имеет смысл теми, что развивают мозг, иначе он скоро превратится в тот же торф. Сделайте "хаскель, на котором можно писать низкоуровневые драйвера", и не станете целевой аудиторией телепрограмм "Аншлаг" и "Комеди Клаб".

[identity profile] gds.livejournal.com 2012-01-23 02:36 am (UTC)(link)
> требования к ним в силу моего перфекционизма переросли порог "можно сделать в свободное время не напрягаясь"

в местном камлочятике в топике есть максима "release crap, enjoy NIH". как-то помогает жить.

Дао программирования

[identity profile] pingback-bot.livejournal.com 2012-01-23 02:59 am (UTC)(link)
User [livejournal.com profile] schegloff referenced to your post from Дао программирования (http://schegloff.livejournal.com/550012.html) saying: [...] у их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая. [...]

[identity profile] metaclass.livejournal.com 2012-01-23 03:22 am (UTC)(link)
Невозможно развивать мозг бессмыслицей, которая делается, не приходя в сознание.
Уровень же "хаскеля" для домашних проектов недостижим.

[identity profile] darkdrip.livejournal.com 2012-01-23 04:19 am (UTC)(link)
мне на еду нужно 500$

[identity profile] ping-ving.livejournal.com 2012-01-23 04:23 am (UTC)(link)
А при чём здесь PL/SQL?
Это же автозек-SQL вроде?

[identity profile] ping-ving.livejournal.com 2012-01-23 04:26 am (UTC)(link)
Это на перле?

Page 2 of 6