338lm: (338lm)
[personal profile] 338lm
Почитал что нового случилось на фронте программерского софтостроения за годы моего отсутствия и в очередной раз разочаровался. Программистам нельзя давать дизайнить процессы разработки софта и инструментов для этого. Программисты это как крейзанутые учёные из фильмов вроде "Назад в будущее". Если им дать ресурсы они будут ваять безумные но прикольные штуки имеющие цель вроде "как наиболее извращённым и непонятным для других образом сделать какую ни будь никому не нужную фигню для решения которой уже 50 лет назад придумали простой и очевидный способ".
Программистов не интересует конечный результат и решение задачи, их интересует процесс решения, а он тем более увлекательный чем более замудрённым он является. Поэтому программисты не ищут лёгких путей.
Все новшества в новых языках программирования связаны, по сути, с тем, чтобы скрыть сложность, а не уменьшить её. Либо сделать запись текста программы из простой, очевидной но скучной - непонятной неприобщившимся к сакральным знаниям и полной магии для непосвящённых. По сути все "улучшения" последних лет 20-ти связаны с тем как спрятать за одной строчкой то что раньше описывалось десятью. Но в реальности 10 строчек и сложность стоящая за ними никуда не деваются, и мы получаем спрятанные 10 строчек + одну явную. Просто если нам нужно было это сделать раньше то мы засовывали их в библиотеки, а теперь всё это пытаются напихать в сами языки стандартами на которые уже давно можно убить сбросив с небольшой высоты.

Date: 2015-02-08 09:06 pm (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Синдром Даннинга-Крюгера детектед.

Date: 2015-02-08 11:56 pm (UTC)
From: [identity profile] 338lm.livejournal.com
Влад я не имел ввиду вообще всё то новое что было изобретено за посление 20 лет. Я говорю о попсне которая подаётся как откровение вроде: "Бляя! Смотрите мы заменили вот здесь явно описываемый цикл скрытой итерацией по массиву. Наш мегаязык стал ещё круче! Но вы, сцуко, должны держать в уме 100500 сайдэффектов которые могут возникнуть в её процессе и быть готовым использовать магию для их обработки". Или "Наши магические ламбда функции не имеющие никакого отношения к товарищу Чёрчу помогут вам говнокодить на более высоком уровне записывая в одну строчку то что раньше вас компилятор заставлял писать в несколько."

Date: 2015-02-09 12:00 am (UTC)
From: [identity profile] juan-gandhi.livejournal.com
Ну положим с явными циклами я боролся и 30 с лишним лет назад.

Мое отношение ко всему этому - не то что там в одну строчку записывать, хотя это тоже важно - а то, что понимание повышается.

Date: 2015-02-09 12:11 am (UTC)
From: [identity profile] 338lm.livejournal.com
Так в том и проблема, что очень часто явное описание просто подменяется неявным знанием, а после этого человек, который этим неявным знанием не обладает становится не в состоянии выполнить свою работу.
Ну то есть человек освоивший цикл может его прочитать и понять что в нём происходит, а после "модернизации" этот человек увидит некую магическую конструкцию о которой он должен прочитать главу в новом стандарте, чтобы понять что эта конструкция делает то, что раньше делал цикл. И дальше ему по сути всё равно не становится проще. Он всё равно должен помнить, что "магическая конструкция" это цикл с определёнными свойствами. То есть сложность не уменьшается, а если потребуется нестандартный цикл с другими свойствами то ещё и увеличивается ибо у нас будут и циклы и "магия".

Date: 2015-02-09 08:42 am (UTC)
From: [personal profile] alll
Ну как бы это. Современный программист имеет дело со 100500-ми библиотеками и over9000-ми, извините за выражение, фреймворками, где всё, в чём вы усматривате корень зла, цветёт и пахнет стремительным домкратом, плодясь и сменяя друг друга уже быстрее, чем средний программист успевает с ними прилично освоиться (сингулярность уже с нами, просто нас сварили в ней как ту лягушку из притчи, медленно повышая градус). Причём за ними стоит огромное количество человеко-лет ращработки и отказываясь от них в своём проекте заведомо проигрываешь по трудозатратам, несмотря на необходимость разбираться с каждой и почти гарантировано текущие абстракции.

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

Date: 2015-02-10 12:26 am (UTC)
From: [identity profile] 338lm.livejournal.com
Короче говоря в реальном мире нельзя повышать абстракции до бесконечности ибо они все текут и потому для успешного их использования всё равно нужно в деталях знать всё что под ними лежит. Но главная проблема в том, что многие пользователи этих абстракций, которым якобы облегчают работу скрывая от них детали, очень быстро перестают понимать что вообще происходит.

Date: 2015-02-10 12:44 am (UTC)
From: [personal profile] alll
Сложный вопрос. Вот я с четверть века назад программировал в машинных кодах - для забавы, конечно, а не по нужде, как то было лет за двадцать-тридцать до меня. Потом на форте. Потом на паскале, потом на С++, перле, sql, php, потом опять на C++, жабаскрипте и местами на питоне. Нигде кроме sql особо не текло, ну точнее когда были опасения, что протечёт, просто выбирался другой инструмент. А вот в сложности кода проекта из-за хилых средств языка или безалаберного отношения к коду тонуть приходилось неоднократно. Так что дешёвые глуповатые кодеры - это конечно заманчиво в краткосрочной перспективе, но кмк это тупиковый путь.

Date: 2015-02-10 01:02 am (UTC)
From: [identity profile] 338lm.livejournal.com
Может это и туповато но это объективная реальность. И не зря, несмотря на то, что понавыдумывали кучу мегавысокоуровневых языков Цэ до сих пор живее всех живых. Ибо многим людям у которых мозгов хватает изучить Цэ и что-то на нём делать не хватает мозгов или мотивации изучать что-то более продвинутое, а если даже кто-то и изучает то пользуется оттуда подмножеством возможностей равный тому же Цэ ибо больше в голову не помещается. И никто этих людей из индустрии выбрасывать не будет, а будут привлекать всё больше таких же пока они приносят прибыль. Мало того, даже убеждённые в прошлом приплюснутые сионисты в последние 10-15 лет отказываются в новых проектах от крестов в пользу обычного Цэ ибо уже наигрались в высокоуровневые абстракции и запрятывание сложности и понимают, что обучить человека пользовать Цэ без крестов, включая все его ньюансы, несравненно проще чем с крестами, где длительность обучения стремится в бесконечность. И работа движется быстрее потому, что в простой системе и баги простые.
Edited Date: 2015-02-10 01:07 am (UTC)

Date: 2015-02-10 07:03 am (UTC)
From: [personal profile] alll
Не, ну что касается C++, то я и сам охреневаю считаю, что он не нужен уже. :) "Снизу", в качестве "универсального высокоуровневого ассемблера" и для для относительно небольших высокоптимизированных частей проектов есть "обычный" C, а "сверху", для всякого перекладывания данных из БД на экран и обратно уже напридумывали широчайший спектр инструментов, покрывающих почти любые нужды - от php и жабаскрипта до той же скалы. Но сдвиг инструментов в сторону "поумнения" кмк вполне естественнен и соответствует усложнению решаемых задач.

Date: 2015-02-08 11:15 pm (UTC)
From: [personal profile] alll
С другой стороны, пусть уж эта сложность будет в библиотеке или даже в синтаксисе (они хоть более-менее внятно описаны), чем наляпана случайным образом в гигазах кода неизвестного архитектурного астронавта, которому даже комментарии западло было написать. :)

Date: 2015-02-09 12:05 am (UTC)
From: [identity profile] 338lm.livejournal.com
Я думаю, что к дизайну инструментов для массового софтверного девелопмента нужно подходить как к дизайну автомата Калашникова. То есть он должен быть настолько простым и дубовым чтобы даже самый последний идиот в отрасли не смог с его помощью и под чутким надзором сержанта наломать слишком больших дров. Большинство людей работающих в отрасли настолько ебанутые, что им нельзя давать физической возможности решать проблему более чем одним способом.
Это конечно не касается высоколобых интеллектуалов из исследовательских лабораторий которых противопоказано загонять в какие либо рамки и им жизненно необходимо извращаться максимально нетривиальным образом для того, чтобы изобрести что-то новое.

Date: 2015-02-09 01:37 am (UTC)
From: [personal profile] alll
А вот Ларри Уолл например с вами бы не согласился сразу по двум пунктам. :) "Есть много способов сделать что-то" и "простое должно делаться просто, сложное должно быть возможно сделать".

Впрочем, к услугам начальников, настолько озабоченых невежеством своих подопечных, всегда есть вижал васик. :)

Date: 2015-02-09 02:09 am (UTC)
From: [identity profile] 338lm.livejournal.com
Да, есть такая профессия - красиво говорить.
А в реальности либо над каждым Кумаром должен стоять высокооплачиваемый надсмотрщик либо компилятор по возможности должен бить по рукам. И вообще
"Сказати вам по правдi, не люблю я
Тих блядських теревенiв, бо не вiрю
У силу слова я, а вiрю в силу пiздюлєй."

Нет. Щас обычно это называется Java. А начальникам дают стаю голодных кодеров с нулевой мотивацией что-то делать вообще и требуют результат. И так везде.

Date: 2015-02-09 07:10 am (UTC)
From: [personal profile] alll
Ну вообще-то Уолл красиво наговорил сначала на patch, а потом и на Perl 5. :)

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

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

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

Date: 2015-02-10 12:35 am (UTC)
From: [identity profile] 338lm.livejournal.com
Так не хватает на всех приличных программистов. Просто нету столько физически. А неприличным программистам давать сложные инструменты просто вредно. Мало того, что они потратят кучу времени и денег на то чтобы их хоть как-то освоить так ещё и использовать будут самым неправильным образом из всех возможных.

Date: 2015-02-10 12:51 am (UTC)
From: [personal profile] alll
Про такие хотелки у Маршака есть отличный перевод с кого-то из англоязычных:
Три мудреца в одном тазу
Пустились по морю в грозу.
Будь попрочнее
Старый таз,
Длинее был бы мой рассказ.
:)

Date: 2015-02-09 08:48 am (UTC)
From: [personal profile] alll
> Щас обычно это называется Java.

Угу. Но даже Java даёт кодеру неприлично много возможностей для самовыражения, по сравнению с VB. :)

Profile

338lm: (Default)
338lm

January 2017

S M T W T F S
1234 567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 21st, 2017 04:45 pm
Powered by Dreamwidth Studios