Чтобы сделать написание кода простым и менее подверженным ошибкам, вам нужен язык, который поддерживает Generics - например, C ++ с STL или Java с Java Collections Framework. Если вы реализуете алгоритм в сжатые сроки, вы можете сэкономить время, не предоставляя свой алгоритм с хорошим интерфейсом O-O или Generic, поэтому код, который вы пишете, сам по себе полностью процедурный.
Для эффективности времени выполнения вам, вероятно, лучше всего написать все в процедурном C - см., Например, примеры из "Практики программирования" - но написание уйдет намного дольше, и вы с большей вероятностью допустите ошибки. Это также предполагает, что все необходимые вам строительные блоки доступны в самом современном и эффективном виде, как и в процедурном C, что в наши дни вполне допустимо. Скорее всего, использование STL или JFC на практике сэкономит вам время процессора и время разработки.
Что касается функциональных языков, я помню, что слушатели-энтузиасты функционального программирования отмечали, насколько проще было использовать их языки, чем участники соревнований, а затем отмечали, что те члены класса, которые выбрали функциональный язык, все еще боролись, когда те, кто писал на Фортран 77 закончил и продолжил рисовать графики производительности своей программы. Я вижу, что претензии сообщества функционального программирования не изменились. Я не знаю, имеет ли основополагающая реальность.