Для управления сложностью.
https://habrahabr.ru/post/169487/
Все что сделано при помощи ООП можно написать и в процедурном стиле, например, но чем сложнее проект тем сложнее будет во всей этой каше разобраться. Весь смысл ООП - разбить большущую сложную систему на кучу отдельных ПРОСТЫХ объектов, методов, сущностей.
А еще с ООП неразлучна абстракция. Чтобы можно было одну часть программы выбросить и подменить на другую.
Сегодня у нас выводится на веб-страничку, по которой кликают мышкой, а завтра не мышкой - а тач пальцами. А послезавтра вообще в VR шлем, и управление голосом. И если система правильно спроектирована - ее не придется переделывать ПОЛНОСТЬЮ, а только ту часть, которая ответственна за ввод/вывод.