Я часто читаю о важности читабельности и ремонтопригодности. Или я прочитал очень сильные мнения о том, какие функции синтаксиса плохие или хорошие. Или дискуссии о значениях определенных парадигм, таких как ООП.
Помимо этого, тот же самый вопрос возникает у меня в голове всякий раз, когда я читаю дебаты на SO или Meta о субъективных вопросах. Или почитайте вопросы о лучших практиках, а иногда и вы или другие не согласны.
Какую роль играет субъективность в сфере программирования?
Иногда я думаю, что это играет большую роль. Разработчики программного обеспечения являются инженерами в некотором смысле, но также и людьми. Большая часть программирования имеет дело с кодом, который понятен человеку . Это очень отличается от математики, физики или других дисциплин с очень точными и структурированными правилами. Здесь точная структура и правила в значительной степени находятся в воздухе, изменяемые по прихоти, и, следовательно, количество существующих языков. И один человек может найти один язык очень читабельным, а другой человек может найти свой собственный язык наиболее утешительным.
То же самое с практиками. Одному человеку могут не нравиться определенные принятые практики. Я сам нахожу разделение классов на разные файлы очень нечитаемыми, например.
Но я не могу сказать, что правила не помогли в целом. Определенные практики делают и облегчают жизнь. И новые языки породили синтаксис и структуру, которые делают жизнь проще. Конечно, был прогресс в направлении кода, который легче читать и поддерживать даже с учетом в значительной степени разнообразной группы людей. Так что, возможно, эти вещи не так субъективны, как я думал.
Это напоминает мне дизайн интерфейса. Конечно, это субъективно, но есть целая дисциплина, связанная с созданием хорошего пользовательского интерфейса, и она имеет тенденцию работать.
Есть ли что-то не субъективное в идеях, связанных с ремонтопригодностью, удобочитаемостью и другими передовыми методами? Есть ли что-то осязаемое для понимания, когда кто-то разрабатывает новый язык или думает о новых практиках?