Персональные инструменты
Счётчики

Выстрелить себе в ногу

Материал из Lurkmore
Перейти к: навигация, поиск
Wrar64.pngA long time ago, in a galaxy far, far away...
События и явления, описанные в этой статье, были давно, и помнит о них разве что пара-другая олдфагов. Но Анонимус не забывает!

Фраза происходит от древней, как говно мамонта старой цитаты отца языка C++ Бьёрна Страуструпа:

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg.

Bjarne Stroustrup[1]
"Си" позволяет очень просто выстрелить себе в ногу. На "Си++" сделать это сложнее, но, когда вам это удается, её отрывает полностью

Конечно, сама фраза гораздо древнее этой цитаты[2], но среди тех, кто ещё помнит ассоциируется стойко с цитатой отца-основателя.

b
IRL

На эту тему был написан забавный текст, автор которого теряется в веках (помнит ли ещё кто-нибудь про revelation и euclid?):

Содержание

Реализация

ЗАДАЧА: Прострелить себе ногу.

  • C: Вы простреливаете себе ногу.[3]
  • C++: Вы ВНЕЗАПНО создаете дюжину копий объекта «вы» и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие копии, а где — те, что только указывают на них и говорят: «А вот он я!».
  • Java: После импорта java.awt.right.foot.* и java.awt.gun.right.hand.* и написания классов и методов, необходимых для этих классов, вы забываете, что вы, чёрт возьми, хотели сделать.
  • SQL*: INSERT INTO нога (ступня) SELECT патроны AS пуля FROM пистолет WHERE курок = 'СПУЩЕН'; COMMIT;
  • Delphi: Вы залезаете на форумы и слезно умоляете дать вам компонент для прострела ноги.
  • JavaScript: Вы разрабатываете мощный, навороченный пользовательский интерфейс для стрельбы в ногу. Потом вы обнаруживаете, что в вашем пистолете отключены пули.
  • Objective-C/Cocoa: Вы строите стильный интерфейс, соответствующий всем канонам Apple. Вы два раза копируете и ногу, и пистолет, чтобы они работали под архитектурами как Intel, так и PowerPC. Вы удостоверяетесь, что пистолет можно зарядить с помощью всего одного клика мышкой. Когда всё уже готово, вы понимаете, что при нажатии на курок пистолет не стреляет. Перебрав весь код вашей программы вы обнаруживаете, что забыли указать, что графический объект курка — и есть курок.
  • Ruby: Ваша нога готова к выстрелу примерно через пять минут, но вы не можете найти места, где можно стрелять.
  • PHP: Вы стреляете себе в ногу из пистолета, сделанного из 500 частей других пистолетов.
  • ASP.NET: Вы находите пистолет, но он разваливается. Вы его собираете, но он снова разваливается. Вы пытаетесь использовать платформу .GUN, но она разваливается. Вы режете себе ногу.
  • Perl: Вы стреляете себе в ногу и никто не может понять, как вы сделали это. Через шесть месяцев не можете и вы.
  • CSS: Вы стреляете с одной руки в правую ногу, потом меняете руку, чтобы выстрелить в другую ногу и обнаруживаете, что пистолет превратился в банан.
  • Фортран: Итеративно вы простреливаете каждый палец ноги, а когда пальцы заканчиваются, загружаете следующую ногу и продолжаете. Когда пули заканчиваются, вы все равно продолжаете попытки прострелить себе ноги, потому что не имеете возможности обрабатывать исключения.
  • Modula2: Поняв, что с помощью этого языка ничего толком сделать нельзя, вы простреливаете себе голову.
  • Pascal: Компилятор не позволит вам прострелить себе ногу[4].
  • Ada: После тщательной сборки пакета «нога», вы пытаетесь одновременно зарядить пистолет, нажать курок, завопить и выстрелить себе в ногу. В ходе попыток обнаруживается, однако, что вас постигла неудача, так как ваша нога оказалась неверного типа.
  • Кобол: Наводите ПИСТОЛЕТ COLT 45 на НОГА.СТОПА, ТОГДА помещаете РУКА.КИСТЬ.ПАЛЕЦ на ПИСТОЛЕТ.КРЮЧОК и ПОЖАЛУЙСТА, НАЖИМАЕТЕ. ТОГДА возвращаете ПИСТОЛЕТ в КОБУРУ. ПОЖАЛУЙСТА, ПРОВЕРЬТЕ, нуждаются ли шнурки в повторном связывании.
  • Forth: Нога себе прострелить.
  • Пролог: Вы сообщаете вашей программе, что вы хотите иметь простреленную ногу. Программа разрабатывает способ этого достичь, но синтаксис языка не позволяет объяснить этот способ вам.
  • Basic: Вы простреливаете себе ногу из водяного пистолета. В расширенных реализациях языка продолжайте, пока вся нижняя часть тела не промокнет. В реализациях с возможностью делать вставки из ассемблера, вы используете ранее созданые типы и уже в ассемблерной части вы простреливаете ногу дробовиком.
  • Visual Basic: На самом деле вы будете только выглядеть, как будто ваша нога прострелена. Однако в процессе реализации вы получите столько удовольствия, что подобные мелочи вас не озаботят.
  • Visual BASIC.NET: Вы тратите целое состояние на мощнейший, самоочищающийся, самонаводящийся, автоматический пистолет с бесконечным боезапасом, и только тогда понимаете, что спуск курка занимает около года. Источник
  • HyperTalk: Поместите первую пулю пистолета в ступню левой ноги вас. Сообщите результат.
  • Motif: Вы затрачиваете несколько дней на построение UIL — описания вашей ноги, пули, её траектории и замысловатой резьбы по слоновой кости на рукоятке пистолета. Когда вы наконец-то управились и готовы нажать на курок, затвор заклинивает.
  • APL: Вы простреливаете себе ногу, затем тратите весь день на то, чтобы представить себе, как это сделать с меньшим количеством символов.
  • Снобол: Если вам удастся, прострелите себе левую ногу. Если не удастся, то прострелите себе правую ногу.
  • Unix:
    % ls
    Foot.c foot.h foot.o toe.c toe.o
    % rm * .o
    rm: .o no such file or directory
    % ls
    %
  • BASH: От скуки, вы стреляете себе в ногу ежом из арбалета, жалко ежа — помыл бы ноги! а потом думаете, как отрастить ногу и чем на этот раз её откромсать. Примерно так:
     
    # for i in `ls /boot`; do rm ${i}; done
    
  1. echo "title Awwwwww!" > /boot/grub/menu.lst
  2. init 6


Алсо

См. также

Примечания

  1. Цитата увековечена здесь, первоисточник, скорее всего, в какой-нибудь из книг Страуструпа про C.
  2. На самом деле, суть фразы заключается в том, что в винрарное ковбойское время чуть более, чем все револьверы не имели предохранителя. В связи с чем было феерически несложно добиться выстреливания, даже не прикасаясь к спусковому крючку — т.е. при должном ламерстве вполне реально было прохерачить себе ногу, не вынимая револьвер из кобуры, просто по неосторожности. Алсо, по этой причине все гуру-стрелки дикого запада заряжали в барабан не шесть, а пять патронов, оставляя одну камору пустой — в неё, собсно, упирался невзведенный курок. Алсо, некоторые перед дуэлью клали туда бумажную деньгу — в случае, если такой персонаж сливал дуэль, его хоронили на эту самую сумму. Конечно, позднее все-таки появились револьверы с предохранителями, и суть фразы забылась. Капитан вестерн-фаг. Капитан Очевидность же сообщает что в системах с раздельным вводом курка и спуском - взведенный курок означает смерть своей пружины. и никто не носит никакой ган взведенным. но вот револьвер может иметь фичу одновременного взвода, спуска и поворота барабана за одно(!!) нажатие на спусковой крючок. что правда означает суровую нагрузку на сабжевый палец и, как следствие, отсутствие необходимости в предохранителе.
  3. А если забудете при компиляции включить варнинги четвертого левела — разрушениям будут подвергнуты все дома на улице, где стоит ваша контора.
  4. Компилятор легко наебать
  5. Сходство с ассемлбером здесь — коварная иллюзия.
Источник — «http://lurkmore.to/index.php?title=%D0%92%D1%8B%D1%81%D1%82%D1%80%D0%B5%D0%BB%D0%B8%D1%82%D1%8C_%D1%81%D0%B5%D0%B1%D0%B5_%D0%B2_%D0%BD%D0%BE%D0%B3%D1%83&oldid=832735»