Единая парадигма что угодно нарушает Первую заповедь абстракций, о которой мало кто знает и еще меньше о ней заботится.
Не делайте себе никаких абстракций, которые не могут быть переопределены в случае необходимости, чтобы ваш код был свободен от уродливых инверсий абстракций.
Независимо от вашей парадигмы, как только вы начнете писать нетривиальный код для решения реальных проблем, вы в конечном итоге получите некоторые вещи, которые просто не очень хорошо вписываются в парадигму. Если вы заявляете, что существует только одна парадигма, тогда все становится ужасно.
Чтобы смешать пару метафор, когда все, что у вас есть, это молоток, все начинает выглядеть как колышек, и если все ваши отверстия круглые, и вы вдруг получаете несколько квадратных колышков, а у вас нет никаких пил (только молотки ,) у тебя проблемы.
Бесплатных обедов не бывает. Все является компромиссом. Чем легче становится писать код, тем сложнее его читать и поддерживать кому-то еще, или вам или кому-либо другому отлаживать, когда возникают проблемы ниже уровня абстракции, над которым вы работаете. (И они в конечном итоге будут, потому что совершенных абстракций не существует.
Это фундаментальный недостаток «полезных» технологий и парадигм, таких как управляемый код, сборка мусора, JIT-компиляция и указание «все является объектом». Они устанавливают базовый уровень абстракции, ниже которого вам не разрешено опускаться, и когда ниже этого уровня что-то идет не так, вы ничего не можете с этим поделать. Вы застряли, работая с плохой абстракцией, потому что не можете ее исправить.
person
Mason Wheeler
schedule
29.04.2009