ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1438037 Топик полностью
RxTx (23.05.2024 22:10, просмотров: 173) ответил LightElf на Аглицкая мова позволяет избежать косяков переводчика (а они там есть). Закон же очень простой: любое абстрагирование не покрывает 100% возможных ситуаций. И следствие: использование абстракций в программировании позволяет облегчить/ускорить работу, но не позволяет облегчить/ускорить обучение. По-любому нужно понимать как оно устроено внутри, чтобы знать куда бежать когда все пойдет не так.
Объяснимо проигнорирован вопрос про автомобиль, с продолжением радостного вещания о программном обеспечении. И зря, у Спольски ведь пример прямиком про автомобили. Чего так? 
И более того, вы не можете быстро ездить в дождливую погоду, даже если ваша машина оборудована крышей, дворниками, фарами и обогревателем, которые защищают вас от непогоды. Вам все равно придется беспокоиться о гидропланировании. А иногда дальность видимости заметно снижается, и вам приходится снижать скорость, потому что полностью абстрагироваться от погоды не получается. Закон дырявых абстракций в действии.

Очень жаль, было бы интересно послушать какая "дыра" когда автомобиль ломается и какой тут "закон". Еще раз, для безграмотных, включая Спольски. Абстракция - исключительно умозрительный объект существующий исключительно при дизайне. Вот это надо вдолбить себе до уяснения. Никакие "абстракции" не ездят. И "абстракции" не работают. В этом ваша по-детски или по-программистки наивная безграмотность. (Хотя я тоже программист, C++, Java, C#, архитектура ПО итд)

В реальности ломаются не "абстракции". Отказывают системы. Безграмотный программист может считать что у него © "поломалась абстракция", но это лишь его крайне специфическая профессиональная деформация восприятия.

Также абстракции не могут быть дырявыми (leaky я бы перевел получше, протечка, протекающими) и никакого "закона" здесь нет. Если учесть что вы и Спольски называете "абстракцией" просто более сложные системы, и стоит только обскурный термин "абстракция" заменить на правильный, то то что вам кажется "законом" является элементарной тавтологией - более сложная система сложна. Или при усложнении систем они становятся сложнее. Сложнее означает меньший контроль, меньшую предсказуемость.
Да, для сложных систем стоит понимать как они устроены внутри. Это как раз тот процесс понимания, что постоянно происходит на форуме.

Спасибо, князь. Вы настоящий дворянин. И программист.