Power of nuisance – как плохой программистский дизайн законов извращает их
??? ??????, ?????-???? ? ????????????? ?????...
---
????? ????? 2006-2007 ? ??????????? ?? ??????, ? ??????? ?????????? ? ????????????? ????? 9/11, ????? ? ????????? ???????? ????????????? ???????????? ????? ?????????????? ??????? ? ??????????, ?????????? ? ??????????? ?????. ??? ???????? ?? ?????, ?? ? ???? ?????, ? ???????? ???? ??????????????? ??????????. ? ??????? ??????? ???????? ????, ? ??????? ? ??? ??? ?? ????.
? ?????, ????? ?? ????????????? ???????? (?????? ??? ?????????) ?????-????? ? ??????????? ??????? ? ????? ??? ???????, ???????? ???????? ???????, ? ????? ???????? ???? ????????????????? ???????????? ??????. ??????? ??? ?? ?????? ???? ?????????? ?????? ????? ???????? (itinerary). ?? ??? ? ??????? ???????, ??? ??? ??????? ? ??? ? ?????????? ? ?? ???? ???????. ?????? ???? ?????????? ??????????: «Sir, what's our itinerary?» ? ??????????? ??????? ? ??????? ??, ??? ???? ???????? ?? ??????? – ??????-???????-???. ?? ??? ???? ???? ?? ??, ??? ?? ????????????, ??? ??? ??? ??????? ?? ???????: «Sir, do you speak English?» «Well, do YOU speak Englsh? Look at the ticket, you see? The word "itinerary", and then Seattle-Atlanta-Rome. That's what dictionary means by "itinerary". If you mean something else, explain what and I'll gladly answer. Just repeating word "itinerary" does not help.» (??? ?? ?????????, ???????, «? ????-?? ?? ???????? ??-?????????? ??????, ?????? ?? ??? ????? itinerary, ? ?? ??? ?????-???????-???. ?????? ??? ????? itinerary ???????? ?? ???????. ???? ?????? ? ???? ???-?? ??????, ??????? ??? – ????? ? ????? ? ????????. ? ????????? ??? ????? ??? ??????? ?? ???????.»
? ????? ?????? ? ?????????, ??? ??? ?????? ????? ? ???? ?? ?????, ? ?????? ??? ???????. ? ????????? ?? ??? ??? ???????, ?? ??? ??????? ? ?????????. ?? ? ?????????? ?? ??? ?????? ? ???? ??? ?? ??? ???????????? ? ?????? ???-?? ????? ?????, ??? ????, ?? ???? ?????. ?? ????? ??????? ? ?? ???? ?? ???? ??????!!! ? ??????, ??? ???? ??????? ? ???????? ?????? ??? ?????-?? ?????????. ??????????, ??? ??????????? ?????????? ? ?????-?????? ?????? ?????????? ????? ?? ?????????? ??? ??????????? «? ????????».
? ??? ???, ?? ??? ??? ...?? ????????????? ????????? ????????? ???????? ? 9/11 ??? ????????? ??????????????????!!! ????????????? ? ????????? ???????????!!!
??????????, ??? ??? ?????????, ? ?????? ?????? ??????????. ?????? ?????? ? ?????? ????????????-???????????????-?-?????? ???????????? ????? ????? ??????????? ? ????? ??????? ???????????, ???????? ??????? ?????? ???? ?????? ????. ? ??????? ??????? – ???????? ??????, ??????? ? ???????? ????????????????? ????????? ?? ?????? ????????????????.
????, ?????, ??????? ???????? ??? ???????? ? ?????????? ???? ?????????? ???-?? ?????:
if (Traveller.isTerrorist) { ?????????... }
??? ?????? ? ???????, ???? ??? ?????????????. ????? ???????, ??????, ?????? ??????, ?? ???????, ?? ? ? ????????????? ? ????-?? ?? ??????. ? ??? PM-??????????? ????? ????? ??? ?????-????, ? ????????? ??? ???????????. ? ?????? ???? ??????? ?? ?????????????, ? ?????? ??????? – ?????????, ??????? ???????????????? ??????? ????? ?? ????. ? ??? ?? ??????? ?? ???? ?????-????, ? ? ?????? ?????:
class Traveller { … private: bool isTerrorist; … }
?? ????, ???? ??????????. ? ???????? ??? ??????? ??????????? ??????, ????????? ??? ????? ?????????. ???...
??? ?????? ? ???? ?????? ??????? ???????????? ??, ????? ????, ???????? ?? ???? PM'?, ????????? ?????? ??????????, ????????, ????? ??? ??????, ??? ??? ???????????????? ??????, ????? ???-?? ????? ????????. ????? ?? ??????? ? ???, ??? ???? ?? ?????, ?????? ?????????? ?? ???? ???-?? ?????, ????? ????? ???? ??????? ???????????. ???????? ???????.
? ??? ?????? ???????? ???????????? ??????????? ??????? ?????? ????? ??? ????? ????? ????????, ? ??????? ?? ?????? ????, ?? ? ?? ??? ????????? ???? ??????, ? ??????? ????????????? ???, ??? ? ?????????? ???????? ?????????? ? ????????? ????????.
?? ??? ??????, ? ?????? ?????? ????????????? ??????????? ???? ??????????? ??-??, «????», ??? ?? ???? ???? ????????? ???????? ?????????, ???? ?????? ?????????.
? ?????, ?? ???? ?????? ? ???? ??????. ???? ?? ??????? ?? ????? ???????, ?? ??????????? ?????????? ?? ??? ??????? ?????? – ??? ?????????? ??????????, ??? ??????? ??? ???????????? ?? ????????????? ???????? ? ??????????????? ??????? ???????. ??????? ?? «??????» ???? ??? ??????, ????????? ?? ?????? ????????????? ?????? – ??????? ????????? ???????? ???????????, ??????? ?????????? ????? ? ???????????? ? ???????????? ?????????? ? ???????? ??????????. ? ????? ???????, ??-??????, ? ?????? ????? ????? ????? ???? ??? public, ????????????? ? ????????, ? ??-??????, ?????????????????? ????????? ????????? ??????? ?? ????????? ?????????? ???????? ?????????? ???, ? ????? ??? ???????????, ?????????? ?? ???. ????????? ???????? ??????? ???? ???????, ??? ???? ????? ?????? ??????? ? ???????. ????????
«?? ???? ??????, ??????? ???????,
?? ???? ??????? – ?????? ?????????,
?????? ????????? – ???????? ????,
??????? ???????, ????? ?????.
???? ???????? ? ?????, ??????? ?? ????,
?? ???? ??? ? ??????? ?? ???? ??????.»???? ?????? ?????? ? ?????????? ???, ????? ? ???????? ?? ???? ?????? ???????. ??????, ????-?? ???????, ??? ?????? ? ??????????? ?????? ?????????? ???????? ??????? ??????? ??? ????? ?????????? ?????????????? ???????, ? ??? ????? ???????????, ???????, ??????, ????? ??????? ? ????? ?????? ??????????. ???????????????? ?????????? ? ???????? ? ?????? ?? ???? ????? – ?????, ??? ??, ????? ???????????? ?? ??????? ????? – ??? ?????? ?????? ??? ??? ? ?????????? ?????????, ? ??????? ?????? ??????? ??? ???????? ???????? ??? ???? ? ????.
??????, ???? ????, ???? ??? ?????? ? ???????, ??????? ??????? ? ???????? ????, ? ?????? ???? ???? ??? ?????-?????? ??????? ???????? ? ????????? ????????? S-?????? ? ????? ??????????? ???????????? ? ????? ??????? ????????.
???? ???????? ????????????? ????????, ?? ????? ?????????? ?? ????????? ??????? ????????? ? ???????????? ?????????, ?????????? ??????? ????????? ???????, ??????? ?????? ????????? ??? ???? ?????????, ????? ?? ?????? ?????? ????????. ???? ?? ???? ?????? ? ????????????? ?????????, ?? ?????????? ???????????? ???????????, ?? ??????? ? ?????????? ??????? ?????????? ?? ??????. ??????, ???????? ????????????????? ? ????????????, ? ?????? ????????? ??? ????????? ?????-?? ?????, ??? ????? ??????? ??????????, ?? ???? ??, ????? ???????????.
? ???????? ?? ??? ??? ?????, ??? ? ?????????? ? ????????????? ?? ?????? ? «????? ??????? ????????», ? ??????? ??????????? ?????, ???? ????? ?????????? ????????????? ??????????? ????? ????????????? ???????? ??????? ?????? ?????????. ???????????????? ?????????? – ??? ?? ???? ??????????, ??, ?? ??? ??? ?????? ???????????????? ? ????? ????????, ??????????? ?????? ?????? ?????????? ??????? ???????. ???? ??? ??? ?????? ?????????, ??????? ????????. ? ????? ??????, ?????? ???????, ??? ??? ?? ????????, ?? ?????? ? ??? ??????? ??? ????????, ???? ?? ?????? ???????.
??????, ?? ????????, ????????? ?????? ?? ???? ???????? ?????????? ? ?????? ????????????? ??????????
???????, ?? ??????????. ???????? ???? ??? ? ??????? ???????. ??????? ???????? ?? ????? ??? ????????? ??????????:
class ??????? {
void Add(Element elem) {
lock(queue) {
???????? ???????
}
}int Length() {
lock(queue) {
??????????? ?????
}
}
}
? ?????? ???????? ? ????? ???:
class ??????? {
void Add(Element elem) {
lock(queue) {
???????? ???????
Length = ??????????? ?????
}
}int Length = 0;
}
????? ???????? ?????? ???? ??, ? ????? ?????. ??, ??-??????, ??? ????? lock ?? ?????? ?????? ? ????? ???????. ????? ???????, ??? ? ????????? ?????? ??? ????? ??????? ????????, ? ??? ??? ?????? ????????? ? ?????? ???????? nuisance (?????? ? ?????????? ??????) ? ????. ? ?????????, ????????? ????????? ? ??????? ????? ????????? ? ?????? ?????????? ???????????. ??????????? ???? ??? ? ??? ??? ????? ???????, ????????, ??? ????? ? ?????, ? ??? ?????????? ? ?????? ?? ??? ????? ????????? ????? ??????. ????? ??? ?????????? ? ??? ? ?????? ????? (threads) ?? ???????? deadlock. ??? ???, ?? ?????? ?????? ??????????? ?????? ??????? ????? ???????? ?? ????. ? ?????????, ?? ???????? ?????? ??????? ? ?? ?????????? ????? ?? ???? ?? ????????, ? ?????? ??.
? ???, ????? ??????? ??????? ?, ???????, ???????? ?? ????, ??? ?????????? ? ????? ???????. ??????? ?????? ???????, ???????? ? ??????? ???????????, ???????? ??????????? ??????? ?? ??????????. ?????? ?? ????????? ?????? DMCA??? ??! ??! ?????!!! ?????? ?? ?????? ????, ??? ??????????? ????? ?? ???????? ???????? ??! ??! ?????????!!! ?????? ?????? ??? ?? ???????? ??????? ?????? SBA??? ??, ???, ?? ??????????? ??????????????? ???????? ?? ???? ??? ??????, ?? ???????? ??? ???? ? ??????? ??????-?????? ????? ?????????, ??????? ????????? ??????????? ?????????, ??? ??? ???????? – ??????? ? ???????. ??, ??? «??????? ? ???????» ? ?????? ?? ????, ? ??? ???????? ??? ?? ??????, ?????, ???????, ?????? ?? ???????.
??? ??? ??? ????????? ????? ?????????? (??????????, ??? ????? ?????? ???????????), ??? ??? ??, ??? ?????? ????? ??? ??????? ?????????? ?? ??? ???? ????????. ??? ????? (1) ????????? ???-??, ? ????? (2) ????????? ??????????, nuisances. ????? ?????? ???????????, ??? ?????? ????? ? ???? (1), ??? ?????????, ????? ????????? ???-?? ??????????. (2) ?????? ?????????? ??? ???????? ?????? ? ?????????? ??????? ??????? ??? ?????? ?????????? (??? ? ????, ? ??????? ??????) ?????? ? (2) ???????????? ???????????? ??????????? ?????. ? ????????, ??? ?????? ??????? ?????? ???????????, ???? ? ??????? ? ?????????? ????? ??????? ????? ????? ??????? – nuisance.
????? ??, ????????? ??? ??? ?????????. ???????? ???????? ???????? ??, ??? ???? ?? ??????? ??????? ?????? (? ????? ?????????? legalese) ???????????? ??? ??? ??? ????, ????? ???? ????????? ? ?????????????, ? ??????? ?? ?????? ????????????????, ??????????????? ??? ??? ??? ????, ????? ??? ??? ????????? ??????????. ??? ??? ????????? ????? ???? ??????? ?????? ?? ???? ???????, ??????? by design ?????????? ????? ?????????? ????????. ?? ???? ?? ?????????? ????????? ?? ???? ??????????????? ????? ????????? (? ????????? ??????? ?????????? ????????) ? ????????????? (?????????? ?????? ?? ??????????? ???????):
????? ???????, ? ??????-?? ????? ? ??. ????????? ??????, ????... ???, ??????, ??????? ????? ???????????, ??????? ???????????? ?? ???????????. ??, ???? ?????????, ??????? ?????? ?? ?????, ??????? ?????? ? ????? ???????? ???????... ????? ???? ??????? ??? ?????? ??????? ?? «????????» ? ??????????: «??, ??? ??? ? ??? ???? ? ?????????????.» ??? ????????: «??, ??? ???????. ?? ??? ? ??? ???????? ???????, ??? ?? ??? ??? ?????????, ????????????, ???????, ?????? ??????, ???????? ?????? ???? ????? ????????????? ?? ??????????? ??? ???????? ????? ??????, ??? ??? ???????!» «??, ? ???? ? ???? ??? ??????? ??????? ??? ?? ??????. ????? ??? ? ???, ?????? ??? ? ??? ??????!» «?? ?????! ?????? ?????!» «??, ?? ???? ??????????? ? ??? ??????????? ??????!» «??, ? ??? ?? ??????? ?????????»
??????: DMCA ? ??? ?????????? DRM. ????????? ????????????? – ?????? ???????? ????????????. ???? ?????-?????? ??????? ?? ??? ????, ?? ???? ???????. ???? ? ????? ??????. ?? ?????? ?????? ? ??? ??????????...
??????, ? ?? ?????? DRM ?? ?????????????????? ??????????? ????? Xbox ??? ??? DVD ????????. ???? ?????? ????? ? ?????? ???????? ???? ????????? ?????? – ?? ????????? Windows Media Center, ???????????? ????????? ? ?????? ?????-?????????? ? ????? ?????? ??????????, ??? ? ???? ??????? ????????? ?????? ?????????? ??????? ????????? DVD. ?? ? – ??????? ???????, ??? ??? ? ????????? ?????????? ?? ???????????. ?? ????? DRM ?????? ?? ??? ????????? (????????, ???? ??? ??????? ? ????? Sony – ??? rootkit ????? ? ???????????? CD) ??? ? ??????? ????????. ? ?? ??????? ???????. ??? ????????? – ??? ?? ?????????????????? ???????????. ? ??? ????????? ??? ?????? ?????. ? ????, ??? ? ?????? ????? ????????, DRM ????????? ??? ??????????? ????????????? ??? ??????????? ???? ? ????? ? ?????????? ???????, ?? ??????????? ???????? ??? ??????? ? ???????? ????????????? ????? ????? ?????? ?????????????. ????? ????, ??? ?????? ?????? ???????? ????? ??????????, ? ? ?? ?? ?? ?????? ?????? ?? ??????, ????? ?? ??? ??? ???????????. ??? ???, ???? ?????????????? ?????? ??? ??????? ?? ?????????? ?????????????????? ???? ???????????, ? ?? ?????? ??????????? ???? ? ???? ? ????? ??????? ??????? ??, ??????? ??? ????? ?? ?????? ?????????? ???????????? ????, ? ????? ? ??????? ??. ? ??? ??? nuisance ? ?????? ???????????? ????.
? ?????, ???? ??? ???? ???????, ? ?? ????? ??? ?? ? ????????. ???? ????????, DRM – ??? ?? ???? ??????????? ??? ? ????? ?????????????. ??????? ??? ???????? ???? ??? ? ?????????, ?????? ? ????????, ???? ??????? ? ???????? ??? ?? ????? ??? ? ???????, ???? ??? ?? ??? ????.
??????????? ? ??????????????? ????????, ?? ? ?????????? ???????? ?????? ?????????-?????? ?? ??????????? ???????? ????????????? (???????) ?? ?? ??????????? ???????? ????? ???????????????? (legalese) ? ?????????? ???? ???????? (????? ?????? ?????????, ????????, ??? ??????????) ?? ??????????? ???????? ????????? (??????), ?????? ??? ??????????? ??????.
???? ??? ?? ???????? ?????, ? ??? ???? XP, Mac OS ? Linux. ???? ??? ?? ???????? MS Office, ? ??? ???? Open Office. ???? ??? ?? ???????? C#, ? ??? ???? Java. ???? ??? ?? ???????? BizTalk ? MSMQ, ? ??? ???? WebSphere. ???? ?? ??? ?? ???????? ?????, ?? ?? ? ???? ?????? ???????? ?? ??????. ?????? ??????? ?????? ?? ?????, ?? ??????? ?????? ?????? ??? ????? ? «??????????????» ??????? ????????? ??????? ?? ? ?? Microsoft, ? ?? IBM, ? ?? Sun. ? ? OpenSource ?????? ??-???????? ???????? ?? ?? ???? ?? ????? ???.
??, ? ??? ??? ??? ????????? ? ??????????? ??????? ????, ??????? ?????????? ??????, ??????????. ?? ?????? ??????? ?? ?????? ? ?????????? ???????????? ?? ???? nuisance, ???? ???????? ??? ???????? ???????? ? ??????????, ??????? ???? ????? ?????? ??? ?????????????, ?????? ????? ?? ??? ? ?? ???????? ????????????? ???? ?? ??? ?? ????????. ??? ? ???? the power of nuisance, ? ? ??? ?????? ???????? ???????? ?????? ? ?? ??????????, ? ??? ?????, ????? ???-?? ???????? ???????? ? ????????? ??????????? ??????????????.
Comments
Anonymous
January 01, 2003
The comment has been removedAnonymous
January 01, 2003
Миша, вы - юрист, я вас правильно понял? Меня тут историки доставали с тем, что к ним логика не применима, у них, дескать, "свой метод". N: насчет девочек... ну, может быть. Хотя есть хорошая американская пословица: "Никогда не обьясняйте умыслом то, что можно обьяснить глупостью." Александр: Спасибо!Anonymous
June 21, 2008
Язык законов не двусмысленен, просто он, в отличие от языков программирования, призван описывать принципиально более сложную вещь: реальный мир. Поэтому в правосудии так важен прецедент: пока закон не применялся, сказать с уверенностью, что он означает, нельзя. Всегда найдутся пограничные ситуации, где применимость закона под сомнением, поэтому писаный закон он не сам по себе существует, а всегда с практикой применения. Одного закона мало; сложность регулятора, так сказать, не соответствует :) В конечном счете судят люди, а не закон.Anonymous
June 21, 2008
Отличная статья. Полностью поддерживаю Вашу точку зрения по этому вопросу. Спасибо!Anonymous
June 21, 2008
Особенно понравились байки и примеры дизайна в софте. Ну и про то как пишутся законы, не могу не согласиться, глупостей там хватает. Хотя приходилось читать некоторые кодексы, так там все вполне четко сформулировано. Насчет тупой девочки на паспортном контроле: не могу утверждать, но слышал, что повторяющиеся вопросы с игнорированием Вашего ответа, в том числе и ее хамство, все это сознательно призвано вывести из равновесия. И делается это не из злого умысла, а потому что нормальный человек, у которого все хорошо, легко вытерпит такое отношение или спокойно нахамит в ответ, а вот человек, который по каким-то причинам резонно боится этого контроля, не сумеет скрыть свои эмоции.Anonymous
June 22, 2008
Подтверждаю, девочки на промежуточном контроле притворяются тупыми во-первых -- специально, а во-вторых -- изобретательно. Например, такая девочка на рейсе Дельты из Москвы сначала спросила меня, какая организация меня пригласила (я ответил, что MIT), а потом -- в каком штате находится эта организация.Anonymous
June 28, 2008
Нет, Эльдар, я как раз программист :) Не знаю насчет историков, но у законов и у компьютерных программ логика определенно должна быть разная — программы для компьютера, а законы для людей. Я ведь не просто так про регулятор писал. Принципиальная разница в том, что сложность языка программирования такая же, как и то, чем он управляет, а сложность любого закона, как конечного текста существенно меньше сложности ситуаций, которые он призван разруливать. Даже предельно четко сформулированный закон все равно будет спотыкаться. Это неустранимый момент.