@Jungles
Молодой и зелёный

Какую роль играет декларативный или императивный подход?

Декларативный код кажется проще в понимании, но, наверное, только когда об этом задумываешься.
Познакомился с этими терминами, и интересно, в работе выбор подхода играет какую-то роль?

Могут ли код обозвать г**нокодом только из-за того, что он написан императивным способом?
В том смысле что, код что-то делает, но понять что именно и как - трудно
  • Вопрос задан
  • 579 просмотров
Решения вопроса 1
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Это разные подходы и каждый из них стоит применять там где ему место. Например, когда мы конфигурируем инфраструктуру куда проще указать целевую конфигурацию, но иногда нам надо точечно контролировать процесс и тогда надо управлять. С программированием так же.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
begemot_sun
@begemot_sun
Программист в душе.
Императивный -- "делай как я сказал". Примеры - это все языки программирования.
Декларативный --- "дай мне такой результат, пути получения меня не интересуют". Примеры: SQL- вы описываете конечный результат, движок БД самостоятельно его получает.
Ответ написан
@Karpion
Декларативное программирование не м.б. проще хотя бы потому, что оно требует более глубокого знания математики. Без погружения в математику - декларативный программист сможет делать только очень простые задачи, явно недостаточные для зарабатывания приличных денег.

Кроме того, очень многое зависит от того, чему человек учился в детстве. Например, я учился императивному программированию, поэтому декларативное программирование осталось мне чуждо, хотя я и уважаю такой подход.

Декларативная программа без оптимизирующего компилятора - будет работать очень плохо. Тогда как императивная программа даже без оптимизирующего компилятора будет работать вполне прилично (ну, если программист приличный).
При среднем уровне оптимизации - они идут примерно вровень.
А вот дальше - написание оптимизирующего компилятора для императивной программы резко усложняется. Тогда как совершенствование оптимизации компиляторов императивных программ делается довольно просто, поскольку можно свободно менять очерёдность операций.

Примерно так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы