Пора уже переходить к "программированию наоборот".
Компьютер формирует всегда абсолютно правильную программу сам, а программист подсказывает что изменить.
Не формирует программу по частичкам (как сейчас), не говорит компу сделай все сам (как видится в фантастических рассказах), а направляет комп по чуть-чуть в нужную сторону.
— Программист: Рисуй фигуру. Компьютер: Рисует круг
— П: с углами. К: рисует треугольник
— П: углов четыре. К: рисует квадрат
— П: белого цвета. К: закрашивает квадрат
Итого, образовалась программа рисования квадрат белого цвета. Безошибочная.
Задача может быть и сложнее:
— П: Делаем новый API. К: Ок
— П: На java. К: Ок
— П: RPC-JSON, а не REST. К: Ок
и т.п.