Страшное программирование: управление ресурсами

Dec 04, 2010 04:06

Мне кажется, что я понял почему мне так не нравится писать о технических вещах в положительном ключе. Ну, во-первых, мне вообще не доставляет удовольствия писать не пакости обо всём, что сделал не я, или что я не считаю полностью своим (например, поэтому все фигурки такие няшечки, даже те, что мне не очень нравятся). Во-вторых, писанина о ( Read more... )

programming

Leave a comment

Comments 7

ext_251998 December 4 2010, 08:11:56 UTC
> Мы (люди) не умеем хорошо программировать синхронные системы, а замахиваемся на асинхронные.

Так мы и на ассемблере-то херово справляемся, а поди-ж ты - на хаскелли с лиспами замахиваемся.

Reply

oxij December 4 2010, 13:39:29 UTC
Ну это не совсем в ту степь. От любой проблемы можно постараться спрятаться за уровнем абстракции (если проблема через них не протекает).
И в этом смысле цепочка менеджмента ресурсов: Руки -> RAII -> Pure Computations - явный прогресс и замахиваться на лисп с хаскелем как раз полезно.

Но реальный мир такой страшный, что даже «простые» механизмы в операционных системах слишком сложные, чтобы о них как-то детерминированно рассуждать. Например, то, что в посте - преждевременное освобождение сокета в связи с ошибкой и невозможность его детерменированного освобождения - можно представить как частный случай проблемы о двух генералах. Для общего случая решения нет.

То, что большинство «школьных» задачек хорошо вписываются в чистые вычисления - счастье, на которое молиться надо, пока высокой производительности не надо.
Кстати, в этом смысле, просрать циклы процессора на уровень абстракции для «чистоты» куда полезнее, чем на сборщик мусора и какое-нибудь CLI, например. Интырпрайз, правда, этого как-то не очень понимает.

Reply

ext_251998 December 5 2010, 00:51:50 UTC
Ученик спросил Учителя: “У меня есть программа, которая когда запускается, а когда и нет. Я следовал правилам программирования, но она всё равно не работает. Зачем же нужны эти правила?”
Учитель ответил: “Ты не получил желаемого, потому что ты не постиг Дао. Только дурак ожидает рационального поведения от людей. Почему ты ожидаешь его от машины, которая разработана людьми? Компьютеры только симулируют детерминизм, одно лишь Дао совершенно.
Правила программирования преходящи, только Дао вечно. Таким образом, ты должен созерцать Дао перед тем как достигнешь просветления”.
“Но как узнаю, что я достиг просветления?”, - спросил ученик.
“Твои программы начнут работать правильно”, - ответил Учитель.

Reply

oxij December 5 2010, 11:26:46 UTC
Окей, а что делать, если мои программы работаю правильно, а я чувствую, что они при этом говно?

Reply


Leave a comment

Up