vit_r: default (Default)
[personal profile] vit_r
Вдогонку очередной эпитафии Форту у [livejournal.com profile] ivan_gandhi хочется упомянуть базовый факт информационных технологий:
Копирование шаблонов - это основной способ индустрии разработки софта.

Первый раз наткнулся на это, когда выяснял, почему заглох такой классный язык как Оберон 2. Потом было много других удивительных языков, принципов и методик. Но везде схема одна и та же: шансы на выживание и развитие тем меньше, чем больше программистам / архитекторам / менеджерам / пользователям приходится думать для получения результата (или хотя бы для изображения работы).

Any technology must go through The Border of Idiocy to survive.

Date: 2011-11-02 01:54 pm (UTC)
From: [personal profile] alll
Ну вроде бы это довольно тривиальный вывод в рамках модели "количество разума на планете величина постоянная". Ну или даже в рамках куда более мягкой модели "адекватные люди - дефицитный ресурс".

Date: 2011-11-02 02:06 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Мы, как-бы, имеем ввиду индустрию умственного труда.

Date: 2011-11-02 03:00 pm (UTC)
From: [identity profile] sab123.livejournal.com
И чтоб она была эффективной, надо думать как можно меньше на единицу результата. Если язык требует думать больше, то это кривой и неудобный язык.

Date: 2011-11-02 03:02 pm (UTC)
From: [personal profile] alll
Э... Чем термины "разум", "адекватность", "ресурс", "дефицит" не подходят для обсуждения индустрии умственного труда?

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

Когда работники, способные ворочать концепциями, лежащими в основе Oberon (ну или даже банального C, см. The Perils of JavaSchools), оказываются в дефиците - индустрия умственного труда изыскивает возможность использовать работников, способных ворочать концепциями, лежащими в основе хотя бы Java.

Date: 2011-11-02 03:10 pm (UTC)
From: [personal profile] alll
Думать, простите, кому? Человек неопытный или ограниченый при употреблении достаточно мощного языка может думать довольно много, например. А человек более опытный и более умный благодаря его использованию может на единицу результата думать гораздо меньше, чем без него. Язык переменной кривизны получается. ;)

Date: 2011-11-02 03:18 pm (UTC)
From: [identity profile] vit-r.livejournal.com
В принципе, тут уменьшение думанья только в пересчёте на отработанное время. А результатов может и не быть вовсе.

Date: 2011-11-02 03:21 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Ой, ну нет никаких крутых концепций в С или Обероне. Это просто на уровне "способен к логическому мышлению или не способен"

Date: 2011-11-02 03:24 pm (UTC)
From: [identity profile] vit-r.livejournal.com
А видел ли благородный дон расчёт какого-нибудь факториала на Хаскеле, списанный с примера из книжки по Паскалю?

Указатели в С - это вполне отсекающий фактор. И в работе с базами данных находятся деятели, засовывающие параметры в строку, а потом парсящие из результата.

Date: 2011-11-02 03:35 pm (UTC)
From: [personal profile] alll
Про абсолютную крутость концепций речи не было. Я имел в виду
а) существование у каждого инструмента некоего порога, отсекающего определённую часть популяции от индустрии
б) существание у индустрии потребности в определённом количестве человеческих ресурсов (ну или в определённом количестве производимой работы)

Величина б) велика и растёт, соответственно величину а) пытаются сделать как можно меньшей.

"Способен к логическому мышлению" - величина далеко не бинарная, там скорее спектр, часть которого пригодна для использования языка, а часть нет. Кроме того, языки ставят барьер не только по способности к логическому мышлению, но ещё и по количеству абстракций (и связей между ними), которыми способен одновременно оперировать человек.

Date: 2011-11-02 04:03 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Это миф, что индустрии нужны толпы народа качества ниже среднего. При правильной организации всё, производимое сейчас толпами индусов, можно делать небольшими командами квалифицированных специалистов. То есть буквально мелкие фирмы брали проекты, волочащиеся сотню человеколет и за пол года выдавали результат.

Другое дело, результаты быстро и дёшево никому не нужны.

Date: 2011-11-02 04:23 pm (UTC)
From: [personal profile] alll
Какой же это миф - в распределении любого параметра со сколь-либо большим спектром значений любой реальной выборки сколь-либо большого размера будет порядка половины значений ниже среднего. ;)

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

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

Положим за пятилетку из рассчёт по полгода за проект "мелкая фирма" способна закрыть десяток проектов. Значит таких фирм потребуется 10% от ныне существующих. Пусть их размер в десяток раз меньше среднего. Следовательно в популяции современных айтишников должен присутствовать минимум 1% гениев от программирования и менеджмента. Не, не верю. ;)

Date: 2011-11-02 04:33 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Среднее имелось ввиду по популяции, а не по популяции программистов.

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

Date: 2011-11-02 04:56 pm (UTC)
From: [personal profile] alll
> Среднее имелось ввиду по популяции

А! Ну это миф, согласен - двух-трёх миллиардов, составляющих половину трудоспособной части популяции, для IT-отрасли ещё некоторое время должно хватать с запасом.

> В принципе, большинство контор более 50 человек можно без проблем уменьшить вдвое.

Способных промышленно использовать хотя бы C++ или тот же Оберон 2 в таких конторах и половины от половины скорее всего не наберётся. Так что ополовинить наверное можно, использовать замысловатые языки наверное нельзя.

> Вот менеджеров на самом деле нет.

Забавно, мне казалось, что отстутсвие приличных менеджеров ан-масс - это ситуация, специфичная именно для ex-USSR территорий. Хотя, конечно, может это из разряда "у кого жемчуг мелкий, а у кого дыры крупные".

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

Date: 2011-11-02 05:28 pm (UTC)
From: [identity profile] sab123.livejournal.com
В С крутых концепций даже несколько. Во-первых указатели с полной адресной арифметикой. Во-вторых, фигурные скобочки увеличивают читабельность. В-третьих, отсутствие вложенных функций. В-чертвертых, цикл for. В-пятых, присваивание - выражение, а не оператор. В-шестых, битовые операции.

Date: 2011-11-02 05:30 pm (UTC)
From: [identity profile] sab123.livejournal.com
Таки нет, резальтатов обычно не бывает у людей, увлекающихся Высоинтеллектуальными Концепциями.

Date: 2011-11-02 05:33 pm (UTC)
From: [identity profile] sab123.livejournal.com
Вовсе не. Во всяких странных языках типа АПЛ или Хаскеля экономия на думании получается только если думание сделано заранее кем-то другим. То есть, скажем, если надо взять из книжки формулу по вычислениею матриц и переписать ее в программу, то АПЛ рулит, потому что в нем это выражается как то самое копирование один к одному. А вот если надо что-то создать самостоятельно, тут в АПЛ начинается жопа.

Date: 2011-11-02 05:44 pm (UTC)
From: [identity profile] vit-r.livejournal.com
Таких, как правило, выкидывают на аналитические и руководящие позиции, а простые программисты втихаря в коде исправляют то, что они в дизайне и планировании напортачили.

Date: 2011-11-02 05:48 pm (UTC)
From: [personal profile] alll
у нас, видимо, несколько расходятся определения мощности языка ;)

Впрочем, практически всё нынешнее программирование так или иначе состоит в использовании того, что уже придумано кем-то (хотя необязательно "другим"). Библиотек ли, архитектурных паттернов ли. Вплоть до того, что скажем, язык программирования обычно тоже выдуман заранее "кем-то другим", внезапно. Ну или best practices тоже обычно уже придуманы, правда в случае опытного программиста это может быть он сам, только ещё неопытный. :)

Date: 2011-11-02 05:56 pm (UTC)
From: [identity profile] sab123.livejournal.com
Именно, именно. Меньше думать, больше использовать готовое.

Date: 2011-11-02 06:04 pm (UTC)
From: [identity profile] vit-r.livejournal.com
90% времени и усилий уходит сейчас не на решение задачи, а на то, чтоб соединить в одно целое чужие кривые части.

Date: 2011-11-02 06:18 pm (UTC)
From: [personal profile] alll
"Меньше думать" включает и "меньше думать над исправлением ошибок", и "меньше думать, как внести изменения". Что занимает преизрядную часть времени изрядного количества современных программистов, внезапно. ;)

Profile

vit_r: default (Default)
vit_r

February 2026

S M T W T F S
12 34 567
8 9 1011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 11th, 2026 09:59 am
Powered by Dreamwidth Studios