Заменит ли no-code программистов? Вопрос некорректен

3yxcosmniye9brs1iiqwyp-wjyo.jpeg

Найм профессионального программиста — это слишком дорого, да и программирование — совсем не быстрый процесс. А бизнесу всегда нужно «вчера» и желательно бесплатно. Поэтому всё более популярным становится no-code подход: вы не пишете код, а просто, используя кнопки в интерфейсе и мышку, компонуете своё приложение. Звучит красиво. Так можно создать типовое приложение, накидав туда компоненты. Вот пример рекламной статьи no-code системы Bubble, в которой, по сути, говорят, что для стартапа программисты уже не нужны, по крайней мере — на начальном этапе.

Или если у вас есть условный эксель, где вы можете выделить нужные строки и посчитать их сумму, построить график, и т.д. — вам не надо это всё программировать на каком-либо языке. Всё делается в пару кликов. Это тоже no-code.

Но что же будет, если этот подход разовьётся до небес? Можно ли будет его использовать для всё более и более сложных систем? Можно ли выкинуть программистов на улицу?


Вопрос некорректен

Вопрос некорректен, потому что разработчик сложной no-code системы — тоже, блин, программист!

Дело в том, что в любом сложном софте, помимо набора готовых компонентов, есть ещё и некая логика работы. Никогда не будет универсальной кнопки «сделай мне, как Убер, но для строителей». Придётся разбираться в деталях. Данные, логика работы, и всё такое.

Если есть две таблицы с данными, которые надо объединить, простой программист напишет JOIN с условием, а no-code юзер будет пытаться сделать то же самое, кликая по разным кнопкам. Мы все помним, к примеру, MS Access, где можно сделать join, натыкивая какие-то поля.


uccsk82f_vcs_og9tuuru6ywiyo.jpeg

Но, хоть это и делается в интерфейсе, это всё же логика. Такая же, как в коде.

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


5547f0c3bdfcb0e0d40d0939080ab860.png

Это, конечно, не совсем то, что мы ожидаем, когда слышим слово no-code. Я просто хотел показать, что в пределе любую подобную проблему можно порешать визуально. По крайней мере, нет теоретических предпосылок, чтобы это было невозможно. И, в принципе, я даже готов поверить, что через N лет появится система, где всё это будет удобно, понятно и поддерживаемо (может, и у нас в Каруне появятся no-code проекты с какими-то зубодробительными взаимосвязями и условиями).

Но вдумайтесь, что мы здесь видим?

Чтобы реализовать сложную кастомную логику, нужно:


  • понять, с какими данными мы работаем, структурировать их, выделить сущности;
  • понять, что с чем взаимодействует, какие есть ограничения и взаимосвязи;
  • задать формулы, уточняющие условия, и т.д.;
  • всё это надо выудить из заказчика, превратив зачастую бессмысленное бормотание плохо оформленные мысли в стройную систему, задавая наводящие вопросы и показывая противоречия;
  • надо всё объяснить компьютеру, отладить, протестировать, убедиться, что всё работает: кнопки там или код —, а приложение должно работать корректно;
  • поддерживать — желательно так, чтобы кто-то ещё мог в этом разобраться. Для этого надо разбивать систему на логические части, чтобы не было каши (простейший пример: разные вкладки в экселе для разных расчётов);
  • сделать так, чтобы всё это не тормозило (я не верю в универсальные системы, которые автоматически быстро работают на любых данных).

Если это не программирование, то что?

Работа программиста и заключается в том, чтобы построить в голове модель того, что требуется сделать, и потом досконально объяснить это компьютеру. С помощью кода или кнопочек — дело десятое. Поддерживать тоже надо, а поддержка — это чуть ли не самое сложное.

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


Стоит ли сейчас использовать no-code?

Для определённых задач, думаю, стоит. Как универсальное решение всех проблем — пока что точно нет. Да, существуют ребята, способные в excel сделать 3D-игру, но вы ж понимате, какое это неподдерживаемое… творение. Да и кода там немало всё равно, точнее до фига.

Более того, в ряде случаев идёт обратное движение. Например, всё меньше желающих делать CI/CD, кликая кнопочки, и всё больше — описать это в yaml или в неких скриптах. Просто в коде удобнее хранить/проверять/откатывать конфигурации.


Что же может заменить программиста

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

После появления DALL-E 2 и Midjourney, которые явно отнимут работу у многих дизайнеров, я уже ничему не удивлюсь, но всё же пока что об этом и речи не идёт. С другой стороны, работа программиста постепенно упрощается, с каждым годом всё больше и больше автоматизации рутины. Кто знает, к чему это в итоге приведёт в пределе.

Кстати, КДПВ сгенерирована нейросетью Midjourney (я попросил друга сгенерить что-нибудь, а ля «программист ищет работу»).

© Habrahabr.ru