Мой пост из Фейсбука про движуху с no-code / low-code
panchul — 30.04.2022
Меня попросили перенести куда-то мой
старый пост из фейсбука от 29
августа 2021. Перенес сюда:
"Тут мне в мессенджере один товарищ задал вопрос, что я думаю про
новую движуху с no-code / low-code. Он увидел мои комменты в стиле
"кому и кобыла невеста" у товарища по имени Алекс Кролл и захотел
услышать мое развернутое мнение. Тут есть такой нюанс, что Алекс
Кролл меня по-видимому забанил (я не вижу его записи). Я на это
совершенно не в обиде, Алекс имеет право и более того он меня
забанил после того, как я полностью высказал свою позицию по
вопросу, получил возражения от Алекса и его комментаторов, и
ответил на эти возражения. Это очень круто, так как большинство
людей (Илларионов, Радулова, Митрич, Мальгин, Ольшанский, Экслер)
банят меня на раннем этапе дискуссии, и хэппенинг в стиле
древнегреческих философов не случается.
Если вы не хотите читать моей развернутый
ответ товарищу в мессенджере (ниже), я сформулирую мой главный
тезис так: вся эта движуха с no-code / low-code - это маркетинг
контор, которые пытаются продавать (а точнее поднять деньги,
обосновывая будущими продажами) платформы для создания no-code /
low-code приложений, используя мечту "креативного класса" о
стартапах без противных программистов. Историческая аналогия: самый
крупный (в определенным момент) банк США - Wells Fargo Bank -
поднялся в свое время на продаже кирок, лопат и продуктов
золотоискателям.
У меня тут возникает сооблазн заняться
психоанализом креативного класса, но фиг с ним, ответим по существу
(текст ниже я не редактировал, просто перенес из мессенджера,
поэтому в нем есть повторы):
Low-code / no-code системы безусловно
имеют ниши, но они не могут заменить все уровни разработки. К таким
нишам относится автоматизация производства (системы контроля
станков), четко определенные встроенные приложения (контроль
беспилотников с набором вариантов сенсоров), бизнес и
веб-приложения определенных форматов (темплейты для
документооборота, магазинов). Однако как "кирпичики" для этих
приложений, так и системы разработки (генераторы кода, библиотеки
компонентов итд) будут писаться кодом. Кодом будет делаться базовый
стек (операционные системы, компиляторы итд). Также low-code
невозможно сделать базовыф софтвер и тем более хардвер для массовых
устройств типа смартфонов, где ничтожная разница в
производительности или энергопотреблении даёт большое конкурентное
преимущество.
Пример из другой области: в проектировании
микросхем в 1980-х произошел переход от no-code (рисование схемы
мышкой на экране) к code (синтезу схем из кода на языке описания
аппаратуры) и хотя low-code потом снова пробовали внедрить
(рисование мышкой диаграмм конечных автоматов), выяснилось что
кодом просто быстрее проектировать и рисование мышкой делается
только для микроархитектурных диаграмм.
Насчёт рынка труда: как изменился рынок
труда поваров после появления индустрии готовых завтраков, которые
можно засовывать в микроволновку? Как-то изменился, но не так чтоб
уж очень. Во-первых, кто-то должен придумывать и эти завтраки, во
вторых люди будут продолжать готовить сами и питаться в
ресторанах.
Тут я должен сказать, что я всю жизнь
работал в продуктовых компаниях. То есть компаниях, которые делают
софтвер и/или хардвер для внешнего заказчика. Я не вижу, как тут
что-либо меняется, так как для профессионала написать код как
правило просто-напросио быстрее, чем водить по экрану мышкой,
соединяя некие компоненты написанные другими людьми в приложение.
"Как правило' означает, что есть области, где водить мышкой быстрее
- например нарисовать dialog box для GUI. И есть области где это
вкусовщина - скажем сгенерировать конечный автомат из диаграммы. Но
большинство областей программирования не такие - попробуйте
нарисаовать мышкой компилятор или операционную систему. Это
раз.
Далее, как вы думаете, как написаны сами
компоненты, а также программа, которая позволяет непрофессионалу
делать no-code application? Это тоже no-code application? Нет, в
этой матрёшке где-нибудь внутри все равно будут компоненты
написанные кодом, и для их написания потребуются живые люди,
пишущие код. Это два.
Я нагуглил "top no code application" и
ясень, то бишь Гугл, показывает мне не no-code applications, а
no-code платформы то есть программы и библиотеки компонент,
написанные кодом, которые продают создателям no-code applications.
Это понятно и много раз было. В начале 1980-х создатели так
называемых экспертных систем говорили, что скоро не будет
программистов, в будут так называемые "инженеры знаний", которые
будут определять правила для умных систем. Потом в начале 1990-х
была другая движуха, с так называемым CASE-tool-ами, тоже что-то
про рисование приложения мышкой. Не стоит путать локальную движуху
людей с платформами с глобальными изменениями рынка труда, даже
если маркетинг платформ пытается сделать, чтобы вы в это поверили.
Это три.
Вообще людям, которые продают no code
платформы нужна какая-то красивая легенда для продажи - что теперь
креативные люди с идеями, но не умеющие писать код, могут мышкой на
экране что-то построить и тут же венчурный капиталист даст под это
денег.
Как человек, получивший в свое время
деньги от венчурных капиталистов, сидевший с ними пять лет на
заседаниях и понимающий, как они мыслят, я могу сказать, что у них
сразу возникнет вопрос "если вы тут соединили мышкой на экране
несколько компонент типа "sales call звонок + запрос к базе данных
+ отчёт бухгалтерской программы" и получили приложение, то почему
это же не могут сделать стотысяч других людей? В чем ваше нечестное
конкурентное преимущество перед ними? Почему вы считаете что я
получу 20X ROI (return on investment) вкладывая в нечто, что, по
вашим же словам, может быть легко повторено
непрофессионалами?"
Ну хорошо, оставим стартапный сценарий в
покое и обратимся к внутреннему программированию в больших
корпорациях, а также отдельных нишах, например системы контроля
беспилотников с сенсорами и системы фабричной автоматизации
производства. Может ли от них быть польза чтобы поувольнять глючных
программеров внутрикорпоративного софта? Наверное да. Приведет ли
это к изменению рынка труда? Ну количество программеров не
изменится, так как вместо уволенных внутрикорпоративных
программистов будут наняты программисты, пишущие (кодом) библиотеки
компонент в компании, котоые продают платформы. Вот и все
изменение.