The post has been translated automatically. Original language: Russian
This week, we have developed a more complete picture of what software development might look like in the coming years.
We are increasingly using artificial intelligence to write code, analyze solutions, and find bugs. But AI itself is not a substitute for programming, knowledge, or independent verification.
Each layer has its own task.
Programming transforms a solution into an accurate and reproducible execution. The program does what is set in it, step by step.
AI helps to create this solution faster. He can suggest a program structure, write a function, find a weak point, change the implementation, or prepare a new version.
But each time the AI works with the context that is available to it at the moment.
This is where Noda appears.
In Noda, you can save your decisions, constraints, rules, causes of past mistakes, and proven approaches. The AI receives not only the current request, but also the accumulated knowledge about how the system should develop.
One more question remains: is it possible to trust the resulting program?
This requires a separate layer — formal verification.
SJV does not ask who wrote the code: a human or an AI. It checks whether the specified program properties are being fulfilled.
It turns out four different roles.
Programming executes.AI creates and modifies.Noda preserves knowledge and rules.SJV checks the properties of the result.
At the same time, the person remains the one who defines the goal and decides which requirements are really important.
For us, this is no longer an abstract scheme.
In one week, we used AI in development, accumulated and refined knowledge in Noda, launched Sekura JS on our own processor, and separated SJV into an independent verification system.
It is from these individual works that a common approach is gradually emerging.: create faster, remember more, and check independently.
За эту неделю у нас сложилась более цельная картина того, как может выглядеть разработка программ в ближайшие годы.
Мы всё чаще используем искусственный интеллект для написания кода, анализа решений и поиска ошибок. Но сам по себе ИИ не заменяет ни программирование, ни знания, ни независимую проверку.
У каждого слоя своя задача.
Программирование превращает решение в точное и воспроизводимое исполнение. Программа делает то, что в ней задано, шаг за шагом.
ИИ помогает создавать это решение быстрее. Он может предложить структуру программы, написать функцию, найти слабое место, изменить реализацию или подготовить новую версию.
Но ИИ каждый раз работает с тем контекстом, который ему доступен в данный момент.
Здесь появляется Noda.
В Noda можно сохранять принятые решения, ограничения, правила, причины прошлых ошибок и проверенные подходы. ИИ получает не только текущий запрос, но и накопленное знание о том, как именно должна развиваться система.
Остаётся ещё один вопрос: можно ли доверять получившейся программе?
Для этого нужен отдельный слой — формальная верификация.
SJV не спрашивает, кто написал код: человек или ИИ. Она проверяет, выполняются ли заданные свойства программы.
Получается четыре разных роли.
Программирование исполняет.ИИ создаёт и изменяет.Noda сохраняет знания и правила.SJV проверяет свойства результата.
Человек при этом остаётся тем, кто определяет цель и решает, какие требования действительно важны.
Для нас это уже не абстрактная схема.
На одной неделе мы использовали ИИ при разработке, накопили и уточнили знания в Noda, запустили Sekura JS на собственном процессоре и отделили SJV в самостоятельную систему проверки.
Именно из этих отдельных работ постепенно складывается общий подход: создавать быстрее, помнить больше и проверять независимо.