Найм профессионального программиста — это слишком дорого, да и программирование — совсем не быстрый процесс. А бизнесу всегда нужно "вчера" и желательно бесплатно. Поэтому всё более популярным становится no-code подход: вы не пишете код, а просто, используя кнопки в интерфейсе и мышку, компонуете своё приложение. Звучит красиво. Так можно создать типовое приложение, накидав туда компоненты. Вот пример рекламной статьи no-code системы Bubble, в которой, по сути, говорят, что для стартапа программисты уже не нужны, по крайней мере — на начальном этапе.
Или если у вас есть условный эксель, где вы можете выделить нужные строки и посчитать их сумму, построить график, и т.д. — вам не надо это всё программировать на каком-либо языке. Всё делается в пару кликов. Это тоже no-code.
Но что же будет, если этот подход разовьётся до небес? Можно ли будет его использовать для всё более и более сложных систем? Можно ли выкинуть программистов на улицу?
Вопрос некорректен
Вопрос некорректен, потому что разработчик сложной no-code системы — тоже, блин, программист!
Дело в том, что в любом сложном софте, помимо набора готовых компонентов, есть ещё и некая логика работы. Никогда не будет универсальной кнопки "сделай мне, как Убер, но для строителей". Придётся разбираться в деталях. Данные, логика работы, и всё такое.
Если есть две таблицы с данными, которые надо объединить, простой программист напишет JOIN с условием, а no-code юзер будет пытаться сделать то же самое, кликая по разным кнопкам. Мы все помним, к примеру, MS Access, где можно сделать join, натыкивая какие-то поля.
![](https://habrastorage.org/webt/uc/cs/k8/uccsk82f_vcs_og9tuuru6ywiyo.jpeg)
Но, хоть это и делается в интерфейсе, это всё же логика. Такая же, как в коде.
Если же надо произвести какой-то математический расчёт, да ещё и с условиями, это будет посложнее, но теоретически тоже возможно. Например, уже десятилетия существует визуальный язык Дракон, где можно строить полноценную логику (ветвления, циклы, функции), не написав ни одного if.
![](https://habrastorage.org/getpro/habr/post_images/554/7f0/c3b/5547f0c3bdfcb0e0d40d0939080ab860.png)
Это, конечно, не совсем то, что мы ожидаем, когда слышим слово no-code. Я просто хотел показать, что в пределе любую подобную проблему можно порешать визуально. По крайней мере, нет теоретических предпосылок, чтобы это было невозможно. И, в принципе, я даже готов поверить, что через N лет появится система, где всё это будет удобно, понятно и поддерживаемо (может, и у нас в Каруне появятся no-code проекты с какими-то зубодробительными взаимосвязями и условиями).
Но вдумайтесь, что мы здесь видим?
Чтобы реализовать сложную кастомную логику, нужно:
- понять, с какими данными мы работаем, структурировать их, выделить сущности;
- понять, что с чем взаимодействует, какие есть ограничения и взаимосвязи;
- задать формулы, уточняющие условия, и т.д.;
- всё это надо выудить из заказчика, превратив зачастую
бессмысленное бормотаниеплохо оформленные мысли в стройную систему, задавая наводящие вопросы и показывая противоречия; - надо всё объяснить компьютеру, отладить, протестировать, убедиться, что всё работает: кнопки там или код — а приложение должно работать корректно;
- поддерживать — желательно так, чтобы кто-то ещё мог в этом разобраться. Для этого надо разбивать систему на логические части, чтобы не было каши (простейший пример: разные вкладки в экселе для разных расчётов);
- сделать так, чтобы всё это не тормозило (я не верю в универсальные системы, которые автоматически быстро работают на любых данных).
Если это не программирование, то что?
Работа программиста и заключается в том, чтобы построить в голове модель того, что требуется сделать, и потом досконально объяснить это компьютеру. С помощью кода или кнопочек — дело десятое. Поддерживать тоже надо, а поддержка — это чуть ли не самое сложное.
Я тут нагуглил одну статью на хабре, где делается проводка документов без единой строчки кода. Посмотрите, очень наглядный пример.
Стоит ли сейчас использовать no-code?
Для определённых задач, думаю, стоит. Как универсальное решение всех проблем — пока что точно нет. Да, существуют ребята, способные в excel сделать 3D-игру, но вы ж понимате, какое это неподдерживаемое… творение. Да и кода там немало всё равно, точнее до фига.
Более того, в ряде случаев идёт обратное движение. Например, всё меньше желающих делать CI/CD, кликая кнопочки, и всё больше — описать это в yaml или в неких скриптах. Просто в коде удобнее хранить/проверять/откатывать конфигурации.
Что же может заменить программиста
Давайте порассуждаем. По сути, нужен какой-то искусственный интеллект, который хорошо понимает речь (не просто распознавание звука, а прям суть), умеет задавать уточняющие вопросы, показывать демо, офигевать и переделывать заново.
После появления DALL-E 2 и Midjourney, которые явно отнимут работу у многих дизайнеров, я уже ничему не удивлюсь, но всё же пока что об этом и речи не идёт. С другой стороны, работа программиста постепенно упрощается, с каждым годом всё больше и больше автоматизации рутины. Кто знает, к чему это в итоге приведёт в пределе.
Кстати, КДПВ сгенерирована нейросетью Midjourney (я попросил друга сгенерить что-нибудь а ля "программист ищет работу").