Фатальный недостаток

Материал из Неолурк, народный Lurkmore
Перейти к навигации Перейти к поиску

Фатальный недостаток — локальный мем айтишной тусовки. Вкратце означает, что кто-то от нежелания платить за авторские права, ЧСВ, зависти, скуки (или просто выгнали) решает сделать что-то своё, только с блекджеком и шлюхами. Как правило, в результате очередное унылое творение тихо загибается в гордом одиночестве.

Происхождение мема[править]

Боян лежит здесь (русский перевод сделанный в 2001 году): История программных революций от Microsoft

Английский оригинальный текст A Brief History of Windows Programming Revolutions

История программных революций от Microsoft, вкратце: Сначала были Windows API и DLL Hell. Революцией №1 было DDE – помните, как ссылки позволили нам создавать статусные строки, отражающие текущую цену акций Microsoft? Примерно тогда же Microsoft создала ресурс VERSION INFO, исключающий DLL Hell. Но другая группа в Microsoft нашла в DDE фатальный недостаток – его писали не они!

Для решения этой проблемы они создали OLE (похожее на DDE, но другое), и я наивно вспоминаю докладчика на Microsoft-овской конференции, говорящего, что скоро Windows API перепишут как OLE API, и каждый элемент на экране будет ОСХ-ом. В OLE появились интерфейсы, исключающие DLL Hell. Помните болезнь с названием «по месту», при которой мы мечтали встроить все свои приложения в один (возможно, очень большой) документ Word? Где-то в то же время Microsoft уверовала в религию С++, возникла MFC решившая все наши проблемы еще раз.

Но OLE не собиралась сложа руки смотреть на это, поэтому оно заново родилось под именем COM, и мы внезапно поняли, что OLE (или это было DDE?) будет всегда – и даже включает тщательно разработанную систему версий компонентов, исключающую DLL Hell. В это время группа отступников внутри Microsoft обнаружила в MFC фатальный недостаток – его писали не они! Они немедленно исправили этот недочет, создав ATL, который как MFC, но другой, и попытались спрятать все замечательные вещи, которым так упорно старалась обучить нас группа COM. Это заставило группу COM (или это было OLE?) переименоваться в ActiveX и выпустить около тонны новых интерфейсов (включая интерфейсы контроля версий, исключающие DLL Hell), а заодно возможность сделать весь код загружаемым через броузеры, прямо вместе с определяемыми пользователем вирусами (назло этим гадам из ATL!).

Группа операционных систем громким криком, как забытый средний ребенок, потребовала внимания, сказав, что нам следует готовиться к Cairo, некой таинственной хреновине, которую никогда не могли даже толком описать, не то, что выпустить. К их чести, следует сказать, что они таки представили концепцию «System File Protection», исключающую DLL Hell. Но тут некая группа в Microsoft нашла фатальный недостаток в Java - её писали не они! Это было исправлено созданием то ли J, то ли Jole, а может, и ActiveJ (если честно, я просто не помню), точно такого же как Java, но другого. Это было круто, но Sun засудило Microsoft по какому-то дряхлому закону. Это была явная попытка задушить право Microsoft выпускать такие же продукты, как у других, но другие.

Помните менеджера по J/Jole/ActiveJ, стучащего по столу туфлей и говорящего, что Microsoft никогда не бросит этот продукт? Глупец! Все это означало только одно – недостаток внимания к группе ActiveX (или это был COM?). Эта невероятно жизнерадостная толпа вернулась с COM+ и MTS наперевес (может, это стоило назвать ActiveX+?). Непонятно почему к MTS не приставили «COM» или «Active» или «X» или «+» – они меня просто потрясли этим! Они также грозились добавить + ко всем модным тогда выражениям. Примерно тогда же кое-кто начал вопить про «Windows DNA» (почему не DINA) и «Windows Washboard», и вопил некоторое время, но все это почило раньше, чем все поняли, что это было.

К этому моменту Microsoft уже несколько лет с нарастающей тревогой наблюдала за интернет. Недавно они пришли к пониманию, что у Интернет есть фатальный недостаток: ну, вы поняли. И это приводит нас к текущему моменту и технологии .NET (произносится как «doughnut (пончик по-нашему)», но по-другому), похожей на Интернет, но с большим количеством пресс-релизов. Главное, что нужно очень четко понимать - .NET исключает DLL Hell.

В .NET входит новый язык, C#, (выясняется, что в Active++ Jspresso был фатальный недостаток, от которого он и помер). .NET включает виртуальную машину, которую будут использовать все языки (видимо, из-за фатальных недостатков в процессорах Интел). .NET включает единую систему защиты (есть все-таки фатальный недостаток в хранении паролей не на серверах Microsoft). Реально проще перечислить вещи, которых .NET не включает. .NET наверняка революционно изменит Windows-программирование... примерно на год.

Примеры[править]

  • Мицгол, например, соперничает с Microsoft по количеству найденных фатальных недостатков:
    1. Фатальных недостатков у интернета целый ворох: его изобрел не он, самый главный модератор — не он и прочая, прочая, прочая. Результат: векторный фидонет, epic fail.
    2. Фатальные недостатки в педивикии не позволяют запостить в неё ни одной баночки мочи[1]. Результат: в торадицийо невозбранно можно постить гектолитры мочи.
  • Фатальный недостаток Facebook привел к редкому фейлу — Вконтакте и огромному количеству еды. Винрар произошел только благодаря ZOG, без него это унылое начинание быстро бы загнулось в полной неизвестности.
  • Over 95% создателей Roguelike игр идут именно по пути Фатального недостатка, это какбэ намекает.
  • Фатальный недостаток присущ и для великого Бесконечного лета. Отсюда миллионы фанфиков, тысяча и один мод, сотня проектов допила.
  • Денис Попов обнаружил в одной в принципе неплохой операционной системе ранее никем не отмеченный, но, тем не менее, фатальный недостаток.
  • Сами разработчики этой операционной системы уже успели обнаружить фатальные недостатки в X11, Init, всех существующих DE.
  • В среде линуксоидов сейчас довольно активен человек по имени Леннарт Поттеринг, который уже обнаружил фатальный недостаток в ряде системных демонов линукса и пока не собирается останавливаться.
  • Silverlight — решение фатального недостатка флэша, произведённое Microsoft.
  • Фатальный недостаток обнаружен во всех существующих свободных лицензиях на программное обеспечение.[2]

Not Invented Here[править]

В забугорных интернетах (да и не только в них) известен аналогичный мем — синдром NIH (Not Invented Here), буквально «придумано не здесь». Здесь запиливание всякой всячины с блекджеком и шлюхами организуют уже руководители компаний под влиянием ЧСВ[3]. Однако у этого мема есть фатальный недостаток.(Рекурсия)

Сабж в окололитературной тусовке[править]

В различной литературе фатальный недостаток является распространенным критерием «злодея»: именно невозможность контролировать какую-то свою черту отделяет хрестоматийного злодея от просто персонажа спорных моральных принципов.

IRL[править]

В реальной жизни нормальных людей «фатальным недостатком» кличут… недостаток, для кого-то из пользователей оказывающимся фатальным. Например, если при резком наборе высоты Спитфаер глохнет (ибо карбюратор), а потом движок намертво заливает топливом, то это самый что ни на есть fatal flaw. И лечится его фатальность костыльным методом, а не «снести и изобрести заново».

  • Конкретно в этом случае инженересса, известная тогда мотогонщица Беатрис Шиллинг, предложила засунуть в патрубок уже имеющегося Спитфаера кольцо в форме монеты с отверстием. Когда поток нормальный, кольцо стоит ребром и не мешается. Если происходит смена высоты, то кольцо встаёт плашмя и приток топлива именно в этот момент нарывается на преграду. Авиаторы так его и назвали, отверстие мисс Шиллинг.

Примечания[править]

  1. Хотя тем не менее баночка в педивикии присутствует Моча.
  2. Проект российской свободной лицензии [1].
  3. Хотя иногда ими движет вполне естественное чувство увеличить профит и независимость от ЧСВ руководителей других компаний
Movax1010h.png Глубокий смысл скрыт в этих неестественных языках
Языки программированияПромышленные: BATC#CC++JavaJavaScript (AJAX) • PascalPerlPHPPythonRubyABAPАссемблерВасикФортран
Эзотерические: BrainFuckHQ9++ErlangForthHaskellLISP (My other car) • PrologTclΤΕΧOracleMySQLGolangВ++
ПрофессииБыдлокодерПрограммистТестировщикХакерХеллоуворлдщикIT-звёзды
Методы и стилиReverse EngineeringАнти-паттернВыстрелить себе в ногуГрязный хакКод (индусский) • КостыльМетод научного тыкаПомолясьСвистелки и перделкиОчередьСпортивное программированиеОбфускацияБета-тестАльфа-тестШаблоныRegReplace
Средства разработкиSublime TextПодсветка синтаксиса кодаUnstable DiffusionAPIPythonTutorCodeWarsDataCamp
ЛюдиИлья КанторЮрий КлючевскийЭдуард Лаас
Прочее++i + ++iDeadline%s640 килобайтCMSDummy modeЕГГОГFoobarGod is real, unless explicitly declared as integerGOTOIfconfigKISSRegExpSICPsql.ruXyzzyДискетаИнжалид дежицеКОИ-8ЛогМанРекурсияСУБДТест ТьюрингаУмение разбираться в чужом кодеФаза ЛуныФатальный недостатокПроблема 2000ТаймстампКэшЗапись в файл без кэша (Perl)Танцы с бубномКодач