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] gineer.livejournal.com 2012-01-22 06:36 pm (UTC)(link)
+1

[identity profile] darkdrip.livejournal.com 2012-01-22 06:38 pm (UTC)(link)
ну я один раз очень удачно соскочил с гопнета на похапэ. и еще вспомните "язык программирования XSLT". на этот "язык" сейчас дохуя вакансий, для Инженеров с Высшим Образованием

[identity profile] metaclass.livejournal.com 2012-01-22 06:42 pm (UTC)(link)
XSLT и вообще диалекты XML это да. А шуму ж по их поводу было, капец.

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-22 18:46 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-22 18:52 (UTC) - Expand

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-22 19:17 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-22 19:39 (UTC) - Expand

(no subject)

[identity profile] ping-ving.livejournal.com - 2012-01-23 04:23 (UTC) - Expand

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-23 04:39 (UTC) - Expand

(no subject)

[identity profile] altmind.livejournal.com - 2012-01-24 10:20 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2012-01-22 18:54 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-22 19:38 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2012-01-23 08:43 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-23 09:01 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2012-01-23 09:02 (UTC) - Expand

(no subject)

[identity profile] denisioru.livejournal.com - 2012-01-23 09:04 (UTC) - Expand

(no subject)

[identity profile] npocmu.livejournal.com - 2012-01-23 16:18 (UTC) - Expand

(no subject)

[identity profile] veter-r-r.livejournal.com - 2012-01-23 20:56 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-01-24 11:52 (UTC) - Expand

(no subject)

[identity profile] kurilka.livejournal.com - 2012-01-24 16:16 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-01-24 16:20 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2012-01-27 19:58 (UTC) - Expand

(no subject)

[identity profile] enternet.livejournal.com - 2012-01-23 08:39 (UTC) - Expand

[identity profile] theiced.livejournal.com 2012-01-22 07:12 pm (UTC)(link)
в итоге тебе ОДНОМУ не хватает зп на еду. быгыгы.

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-22 19:19 (UTC) - Expand

(no subject)

[identity profile] veter-r-r.livejournal.com - 2012-01-22 21:05 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-22 22:27 (UTC) - Expand

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-23 04:19 (UTC) - Expand

[identity profile] permea-kra.livejournal.com 2012-01-24 10:23 am (UTC)(link)
А что не так с xslt ?

[identity profile] nicka-startcev.livejournal.com 2012-01-22 06:40 pm (UTC)(link)
"для себя" надо делать не "нужное на рынке", а то, что нужно именно себе, именно с нужными себе рюшечками и при этом не найденное за разумное время.

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

[identity profile] metaclass.livejournal.com 2012-01-22 06:43 pm (UTC)(link)
У меня есть кофенапоминальник готовый.

А у меня к 3 строчкам на баше будет еще 100 строк инсталлятора, 200 документации, отдельный раздел в багтрекере и обучение пользованию этим жены и детей)

(no subject)

[personal profile] wizzard - 2012-01-23 07:35 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:36 (UTC) - Expand

(no subject)

[identity profile] inhate.livejournal.com - 2012-01-22 19:10 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-22 19:13 (UTC) - Expand

(no subject)

[identity profile] anatoly borodin - 2012-01-23 05:31 (UTC) - Expand

(no subject)

[identity profile] nivanych.livejournal.com - 2012-01-24 11:55 (UTC) - Expand

(no subject)

[identity profile] darkdrip.livejournal.com - 2012-01-22 19:24 (UTC) - Expand

(no subject)

[identity profile] ping-ving.livejournal.com - 2012-01-23 04:26 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:37 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 05:16 (UTC) - Expand

(no subject)

[identity profile] anatoly borodin - 2012-01-23 05:29 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 06:53 (UTC) - Expand

[identity profile] fas-tm.livejournal.com 2012-01-22 06:43 pm (UTC)(link)
>>объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт
Вычеркни ! :)
Выложив хуй во всю длину на стол, надо ответить
"О ! Да ! Мы сделаем это на лиспе, такого больше никто не сделает, вы будете первым долбоебом кто на это повелся"
И это прокатит, и будет новая история успеха :)

[identity profile] golosptic.livejournal.com 2012-01-22 06:44 pm (UTC)(link)
Основная проблема - это не собственно выполнение работы (по моему, если не лезть в реализацию совсем уж новых концепций программирования, типа "а теперь мы сделаем хаскель, на котором можно писать низкоуровневые драйвера", то все мыслимое и немыслимое уже придумано и сделано, достаточно разобраться, склеить и скомпилировать), а заставить себя взяться за эту работу

Отлито в граните.

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

(no subject)

[identity profile] golosptic.livejournal.com - 2012-01-22 22:19 (UTC) - Expand

[identity profile] vit-r.livejournal.com 2012-01-22 07:07 pm (UTC)(link)
Всё было бы хорошо, если бы работало как написано. Поиск ошибок в том, что работает не так, как в документации занимает почти столько же времени, сколько создание с нуля "лёгкого" решения под конкретную задачу.

[identity profile] metaclass.livejournal.com 2012-01-22 07:09 pm (UTC)(link)
Это да. В своем коде ошибки искать проще.

[identity profile] theiced.livejournal.com 2012-01-22 07:10 pm (UTC)(link)
то есть гопнет и цэскрестиками вжёппу сразу

[identity profile] metaclass.livejournal.com 2012-01-22 07:37 pm (UTC)(link)
гопнет, к ОЧЕНЬ БОЛЬШОМУ сожалению, не сразу. Он работает из коробки, а перестает работать, только когда ты добрался до середины проекта и решил заменить копипасту на обобщенный код.

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-22 19:38 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-22 19:40 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-22 19:45 (UTC) - Expand

(no subject)

(Anonymous) - 2012-01-22 19:59 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-22 20:10 (UTC) - Expand

(no subject)

(Anonymous) - 2012-01-22 21:06 (UTC) - Expand

(no subject)

[identity profile] sorhed.livejournal.com - 2012-01-22 22:24 (UTC) - Expand

(no subject)

[identity profile] fraks-nsk.livejournal.com - 2012-01-23 01:32 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2012-01-23 07:19 (UTC) - Expand

(no subject)

[identity profile] fraks-nsk.livejournal.com - 2012-01-23 07:56 (UTC) - Expand

(no subject)

[identity profile] theiced.livejournal.com - 2012-01-23 08:11 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-01-23 08:21 (UTC) - Expand

(no subject)

[identity profile] fraks-nsk.livejournal.com - 2012-01-23 08:36 (UTC) - Expand

(no subject)

[identity profile] vp.livejournal.com - 2012-01-23 08:17 (UTC) - Expand

(no subject)

[identity profile] volodymir-k.livejournal.com - 2012-01-23 08:39 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:41 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:41 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:40 (UTC) - Expand

[identity profile] trabloid.livejournal.com 2012-01-22 07:29 pm (UTC)(link)
все уже запрограммировано до нас (с)
нужно уметь его использовать ;)

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

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

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

[identity profile] blackyblack.livejournal.com 2012-01-23 05:12 am (UTC)(link)
Клиент приходит и говорит следующее: "Хочу наблюдать за перемещением своей продукции (гаек М6) в реальном времени по всему миру".
И как, спрашивается, 20 лет опыта продаж гаек влияют на абсурдность требований к ИТ продукту?

(no subject)

[identity profile] sergiej.livejournal.com - 2012-01-23 06:30 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 06:48 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2012-01-23 06:58 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 07:09 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2012-01-23 10:56 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 11:21 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2012-01-23 11:33 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 09:27 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 10:11 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 10:16 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 10:28 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 10:59 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 11:18 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 11:23 (UTC) - Expand

(no subject)

[identity profile] blackyblack.livejournal.com - 2012-01-23 11:27 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 10:46 (UTC) - Expand

(no subject)

[identity profile] plumqqz.livejournal.com - 2012-01-23 10:38 (UTC) - Expand

(no subject)

[identity profile] sergiej.livejournal.com - 2012-01-23 10:57 (UTC) - Expand

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

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

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

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

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 06:40 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 12:45 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 08:47 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 09:13 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 10:54 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 12:46 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2012-01-23 14:13 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 15:26 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 15:55 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 16:30 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2012-01-23 17:19 (UTC) - Expand

(no subject)

[identity profile] cp-poster.livejournal.com - 2012-01-24 07:43 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2012-01-23 17:18 (UTC) - Expand

(no subject)

[identity profile] permea-kra.livejournal.com - 2012-01-23 17:19 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 15:53 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 16:01 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 12:47 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 15:43 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 15:59 (UTC) - Expand

(no subject)

[identity profile] thedeemon.livejournal.com - 2012-01-23 16:23 (UTC) - Expand

(no subject)

[identity profile] gineer.livejournal.com - 2012-01-23 17:40 (UTC) - Expand

(no subject)

[identity profile] cp-poster.livejournal.com - 2012-01-24 07:46 (UTC) - Expand

(no subject)

[identity profile] cp-poster.livejournal.com - 2012-01-23 14:26 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 17:12 (UTC) - Expand

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 12:14 (UTC) - Expand

(no subject)

[identity profile] flammar.livejournal.com - 2012-01-23 16:45 (UTC) - Expand

[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] eleon.livejournal.com 2012-01-23 07:26 am (UTC)(link)
Все правильно сказал.

[identity profile] serbod.livejournal.com 2012-01-23 09:20 am (UTC)(link)
По основной работе пользую 1С, отличная платформа для задач автоматизации учета. Работать с ней - удовольствие.

Для разминки мозгов, почесывания ЧСВ и реализации бредовых озарений использую Delphi. Для кого-то это мертвая стюардесса, а мне нравится.

Для специализированных задач использую стандартный инструмент. Для веба - PHP, JS. Для геймдева - C/C++/ObjC (зависит от платформы). Для админства - bat и bash. Итд..

Для проектирования обычно использую голову, конструктор форм и объектно-классовую модель данных. То есть, сначала строю визуальный макет приложения (формочки, менюшки, кнопочки), а потом "оживляю" его логикой. Проектированием БД не парюсь, использую ORM - структура таблиц БД создается автоматом на основании полей хранимых объектов.

[identity profile] gineer.livejournal.com 2012-01-23 03:01 pm (UTC)(link)
оч рад узнать что для кого-то оно работает :)

(no subject)

[identity profile] serbod.livejournal.com - 2012-01-23 15:16 (UTC) - Expand

[identity profile] osdm.livejournal.com 2012-01-23 09:44 am (UTC)(link)
Мои тезисы:
1. Не у всех программирование занимает только 10%. На всех моих работах этот процент был существенно больше.
2. Выбор языка и фреймворка мало влияет на скорость решения задач типа "написать алгоритм сортировки", но напрямую влияет на задачи типа: сделай и переделай стопитьсот форм для ввода и редактирования какой-нибудь фигни. Вплоть до шестикратной разницы в скорости.
3. Если у тебя стоит задача типа "сделать стопитьсот формочек" и есть несколько джуньоров/подчиненных для ее решения, то можно позволить себе на месяц зарыться в документацию, лично пообщаться с автором тула, написать свой компонент грида и т.п., если потом на основании написанных тобой костылей и инструкций джуньоры смогут клепать формочки быстро, безболезненно и безошибочно, а ты сможешь отдохнуть.

[identity profile] Шура Люберецкий (from livejournal.com) 2012-01-23 05:26 pm (UTC)(link)
1. ЕМНИП, различные "гуру" всевозможных "методологий программирования" уверяют нас, что "в среднем" написание кода - это примерно 1/6 часть от всех усилий по реализации проекта.

[identity profile] ihar hrachyshka (from livejournal.com) 2012-01-23 04:42 pm (UTC)(link)
Ребе, если вы действительно тратите 90% своего времени на "общение с клиентами, писание требований, документирование, объяснение клиентам, почему их требования не имеют смысла, где взять готовый продукт, делающий нужное, и прочая и прочая", это печально, и нет фана жеж!

[identity profile] Игорь Петров (from livejournal.com) 2012-02-03 07:46 am (UTC)(link)
> Язык программирования не должен мешать программированию

Я тут уловил неявное предположение о том, что бывают языки, которые не мешают программированию. Лично я не знаю ни одного языка, который не мешал бы программировать. По крайней мере мне.

[identity profile] metaclass.livejournal.com 2012-02-03 08:00 am (UTC)(link)
1C? Встроенные недоязыки других бухгалтерских систем?

(no subject)

[identity profile] Игорь Петров - 2012-02-06 09:10 (UTC) - Expand

(no subject)

[identity profile] metaclass.livejournal.com - 2012-02-06 09:28 (UTC) - Expand