IDE с Искусственным интеллектом улучшающим код программы?
Существует ли IDE с AI который предлагал бы к написанному проекту наиболее оптимальную (быструю, отказоустойчивую,малую по памяти - смотря как настроишь) структуру данных, алгоритмы сортировки компоновки и т.д. еще и с последующей адаптацией и пересмотром выбранных структур в зависимости от повышения требований или других параметров?
Если AI может предложить более оптимальный алгоритм, то он уже должен понимать, какая должна быть конечная цель. Т.е. он знает что нужно сделать, как нужно сделать. Для чего нужен тогда ты сам? Запустить IDE?
Я для построения программы, ее архитектуры, моделей, бизнес логики...AI мне нужен чтобы искал и решал узкие места и одна из задач - оптимизация структур данных.
SerVac, авто-переменные, подбор алгоритмов, регулярок и запросов к бд (я бы ещё сюда добавил).
Теоретически - да: можно это всё создать.
Взять паттерны проектирования и прогонять полную NP-задачу по их правильной многомерной стыковке для использования каждого блока обработки данных другим блоком в любой нужный момент (+параллельно всё профилировать и просчитывать память и т.д.).
Но это - адски сложно!
SerVac, для такого есть профайлеры. В Sql, например, такое часто используют. Там из коробки есть эти инструменты. Да и для многих IDE есть плагины, если нет встроенных средств.
Такой IDE не существует. И не будет существовать. Объясню почему. В инфо-технологиях существует класс задач которые нельзя решить "просматривая глазами код". Например нельзя доказать что код обладает каким-то свойством. Например свойством что он остановится с гарантией после 100000 итераций. Чтобы такое доказать надо этот код скомпилировать и запустить. Грубо говоря рантайм или собственно работа кода является доказательством его правоты. И никакие статические анализаторы не способны глянуть глубже чем рантайм.
Почему здесь важен рантайм? потому что автор говорит об алгоритмах сортировки и из контекста вытекает что его интересуют задачи именно производительности и скорости.
Еще альтернативный вариант - просмотр кода человеком. Это работает. Иногда.
Статические анализаторы могут просто подсказать какую-то простую ошибку типа потенциальный NPE или выход за границы массива. Но только в очень простых кейсах.