Что такое foo и bar
Какова история использования «foo» и «bar» в примерах исходного кода?
Почему многие примеры кода, особенно учебники, часто используют имена «Foo» и «Bar»? Это почти стандарт.
14 ответов
Обновление: в Википедии есть список соответствующих аббревиатур, который включает в себя некоторые оригинальные WWII, перечисленные Аткинсоном.
Любой программист поймет мотивацию использования foo и bar для обозначения переменных. Они, конечно, были частью культуры C /UNIX с самого начала, и, как указывает @Walter Mitty, она предшествовала.
Обновление (10/5/2009): Вот описание Аткинсона:
Я думаю, что это фонетическое произнесение фубара.
Название, используемое в примерах, и понимаемое как стоящее за любой предмет, обсуждаемый, или любой случайный член класса вещей, обсуждаемых. Слово foo является каноническим примером. Чтобы избежать путаницы, хакеры никогда (ну, вряд ли когда-либо) используют «foo» или другие слова как постоянные имена для чего-либо. В именах файлов существует общее правило: любое имя файла, начинающееся с имени метасинтетической переменной, является файлом с царапинами, который может быть удален в любое время.
В какой-то мере список предпочтительных метасинтетических переменных является культурной подписью. Они встречаются как в серии (используются для связанных групп переменных или объектов), так и в виде одиночек. Вот несколько общих подписей:
bazola, ztesch:
Стэнфорд (с середины 70-х годов).
foo, bar, thud, grunt:
Эта серия была популярна в КМУ. Другие связанные с CMU переменные включают gorp.
foo, bar, fum:
Эта серия, как сообщается, распространена в XEROX PARC.
fred, barney:
См. Запись для fred. Это, как правило, британцы.
corge, grault, flarp:
Популярный в Rutgers University и среди хакеров GOSMACS.
zxc, spqr, wombat:
Кембриджский университет (Англия).
shme
Berkeley, GeoWorks, Ingres. Произнесено /shme /с коротким /e /.
Snork
Университет Брауна, начало 1970-х годов.
foo, bar, zot
Хельсинкский технологический университет, Финляндия.
blarg, wibble
Новая Зеландия.
toto, titi, tata, tutu
Франция.
пиппо, плуто, бумажно-белое
Италия. Pippo /pee’po /и Paperino /pa-per-ee’-no /являются итальянскими именами для Гуфи и Дональда Дака.
aap, noot, mies
Нидерланды. Это первые слова, которые ребенок учил писать на голландской орфографической доске.
Из всего этого только «foo» и «bar» универсальны (и почти так). Соединения foobar и `foobaz ‘также пользуются очень широкой валютой.
Некоторые термины жаргона также используются как метасинтетические имена; barf и mumble, например. См. Также Commonwealth Hackish для обсуждения многочисленных метасинтатических переменных, найденных в Великобритании и Содружестве.
В статье также приводятся общие примеры таких переменных в разных языках программирования:
Python
рубин
В следующем примере baz, foo и bar являются метасинтактическими переменные и строки, начинающиеся с #, являются комментариями.
Вот ответ Википедии:
Foo вошел в английский язык как неологизм и рассматривается многие из них являются каноническим примером метасинтатическая переменная. [цитата] необходимо] Он широко используется в примеры компьютерного программирования (иногда выражается как «на один раз только «) и псевдокодом. Эрик С. Раймонд назвал его «важным хакеризмом», наряду с kludge и cruft. [1]
«Foo» и «bar», поскольку метасинтатические переменные были популяризированы MIT и DEC, первые ссылки находятся в работе над LISP и PDP-1 и Project MAC с 1964 года.
Многие из этих людей были в MIT’s Tech Model Railroad Club, где мы нашли первое документированное использование «foo» в технических кругах в 1959 году (и вариант в 1958 году).
Оба «foo» и «bar» (и даже «baz») были хорошо известны в популярной культуре, особенно из комиксов Smokey Stover и Pogo, которые будут прочитаны многими членами TMRC.
Кроме того, похоже, что военный FUBAR способствовал их популярности.
Использование одинокого «foo» как бессмысленного слова довольно хорошо документировано в популярной культуре в начале 20-го века, равно как и военный FUBAR. (Некоторое фоновое чтение: FOLDOC FOLDOC файл жаргонов Файл жаргонов Википедия RFC3092 )
ОК, поэтому давайте найдем некоторые ссылки.
STOP PRESS! После публикации этого ответа я обнаружил эту прекрасную статью о «foo» в выпуске 1938 в пятницу 14 января = «http: //tech.mit.edu/V57/PDF/N57.pdf» rel =» nofollow noreferrer «> Технология (« Самый старый и самый большой газета и amp; первая газета, опубликованная в Интернете »), том LVII. № 57, Price Three Cents:
Как ругательство, конечно, «foo!» имеет определенную и, возможно, незаменимую позицию на нашем языке, хотя мы опасаемся, что чрезмерное использование, которому оно подвергается в настоящее время, вполне может привести к его раннему (и, увы, темному) забвению. Мы говорим, увы, потому что правильное использование слова может привести к таким счастливым инцидентам, как следующее.
Это была лекция профессора Слейтера профессора Слейтера в 8.50 Thermodynamics в комнате 6-120. Профессор, прикрыв переднюю сторону доски, установил ручку, которая управляет лифтовым механизмом, показывая тем временем класс, чтобы продолжить обсуждение. Передняя доска медленно, величественно поднялась, показав доску за ней, и на этой доске, написав большие, символы, которые пишут «FOO»!
К тому времени, когда поезд достиг станции, неофиты настолько наполнены рассказами о славе Phi Omicron Omicron, которые обычно называют Foo, что они легкие жертвы.
Не то, чтобы я не потерял своих первых четырех сыновей в Великом и Вселенском Братстве Пхи Омикрон Омикрон, но я действительно хочу, чтобы мой пятый сын, мой ребенок, должен был, по крайней мере, быть предупрежден заранее.
Возмущенная мать пяти.
И Технология в декабре 1938
Общая тенденция мысли лучше всего интерпретировать из замечаний сделанные в конце избирательных бюллетеней. Один голос сказал: «Яне думайте, что я делаю, это любой бизнес Пулвера », а другой просто добавил короткое« Foo ».
Первый документированный «foo» в технических кругах, вероятно, 1959 Словарь языка TMRC :
FOO: священный слог (FOO MANI PADME HUM); чтобы говорить только, когда под вдохновением, чтобы общаться с Божеством. Наша первая обязанность заключается в том, чтобы заставить Foo Counters поворачиваться.
Использование этого слова в TMRC предшествует моему приходу. Счетчик foo может просто случайно мигать огнями или может быть реальным счетчиком с неясным входом.
Более ранние версии этого лексикона вывели «baz» как стенографическое повреждение бара. Тем не менее, Пит Самсон (компилятор лексики TMRC) сообщает, что он был уже текущим, когда он присоединился к TMRC в 1958 году. Он говорит: «Это произошло от« Пого ». Альберт Аллигатор, когда он был досаден или возмущен, кричал« Bazz Fazz! ». или «Rowrbazzle!» Считалось, что макет клуба моделирует (мифические) графства Новой Англии Роверфолк и Бассекс (Rowrbazzle смешивается с (Норфолк /Саффолк /Миддлсекс /Эссекс) ».
За год до словаря TMRC, 1958 ‘MIT Voo Doo Gazette («Юморное дополнение к офису MIT Deans») %20(PDF)%20%20%D1%83%D0%BF%D0%BE%D0%BC%D0%B8%D0%BD%D0%B0%D0%B5%D1%82%20Foocom%20%D0%B2%C2%AB%20%D0%97%D0%B0%D0%BA%D0%BE%D0%BD%D0%B0%D1%85%20%D0%9C%D0%B5%D1%80%D1%84%D0%B8%20%D0%B8%20%D0%A4%D0%B8%D0%BD%D0%B0%D0%B3%D0%BB%D0%B5%20%C2%BB%D0%94%D0%B6%D0%BE%D0%BD%D0%B0%20%D0%91%D0%B0%D0%BD%D0%B6%D0%B0%D1%84%D0%B0%20(%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%BA%D0%B0%20%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D0%BA%D0%B8)%20
%20%D0%A2%D0%B0%D0%BA%D0%B6%D0%B5%20%201964%20%20MIT%20Voo%20Doo%20 (PDF) ссылается на использование TMRC:
Но давайте вспомним, что этот вопрос касается примеров кода, поэтому давайте найдем «foo», «bar» и «foobar», опубликованные в коде.
Итак, Jargon File 4.4.7 говорит о «foobar «:
Вероятно, изначально распространялся через руководства DECsystem от Digital Equipment Corporation (DEC) в 1960-х и начале 1970-х годов; подтвержденные наблюдения там возвращаются к 1972 году.
Таким образом, поскольку «FOO» является именем для себя, «COMITRIN» будет обрабатывать как «FOO», так и «(FOO)» точно так же.
Также включает другие метасинтатические переменные, такие как: FOO CROCK GLITCH /POOT TOOR /ON YOU /SNAP CRACKLE POP /X Y Z
Я ожидаю, что это почти то же самое, что и следующая ссылка «foo» из Project MAC в MIT в январе 1964 AIM-064, или Упражнения LISP Тимоти П. Харт и Майкл Левин:
автомобиль [((FOO. CROCK). GLITCH)]
Он делитсямногие другие метасинтетические переменные, такие как: CHI /BOSTON NEW YORK /SPINACH BUTTER STEAK /FOO CROCK GLITCH /POOT TOOP /TOOT TOOT /ISTHISATRIVIALEXCERCISE /PLOOP FLOT TOP /SNAP CRACKLE POP /ONE TWO THREE /PLANE SUB THRESHER
EXPLODE, как и PRIN1, вставляет слэши, поэтому (EXPLODE (QUOTE FOO /BAR)) PRIN1 как (F O O ///B A R) или PRINC как (F O O /B A R).
Еще несколько напоминаний.
Во второй файл жаргона, касающийся Foo Bar. Я могу проследить его, по крайней мере, до 1963 года, и номер PDP-1 серийный номер 2, который находился на втором этаже здания 26 в Массачусетском технологическом институте. Foo и Foo Bar, а после 1964 года в PDP-6 в проекте MAC.
Джон В. Эверетт напоминает в 1996 году:
Когда я присоединился к DEC в 1966 году, foobar уже обычно использовался как имя файла выброса. Я считаю, что fubar стал foobar, потому что PDP-6 поддерживал шесть имен символов, хотя я всегда предполагал, что этот термин перенесен в DEC из MIT. В те времена в DEC было много типов MIT, некоторые из которых работали с CTSS 7090/7094. Поскольку 709x также был 36-битной машиной, foobar, возможно, использовался в качестве общего имени файла.
У Дика Груена было устройство в его комнате в общежитии, обычная сборка B-аккумулятора, резисторов, конденсаторов и неоновых ламп NE-2, которые он назвал «счетчиком foo». Это было бы около 1964 года или около того.
Использование имен переменных FOO и BAR в качестве примеров происходит по меньшей мере до 1964 года и IBM 7070. Это тоже может быть старше, но именно там я впервые увидел его. Это было в Ассемблере. Каким будет эквивалент FORTRAN? IFOO и IBAR?
Самый ранний ассемблер PDP-1 использовал два символа для символов (18-битная машина), программисты всегда оставляли несколько слов в качестве места исправления для исправления проблем. (Перейти к месту патча, сделать новый код, вернуться назад) Это пространство условно было названо FU: это означало Fxxx Up, место, где вы исправили Fxxx Ups. Когда говорят, это было известно как пространство FU. Позже Ассемблеры (например, MIDAS разрешили три символа тэгов, так что FU стал FOO, и поскольку ВСЕ программисты PDP-1 скажут вам, что это пространство FOO.
Почему во многих примерах функции называют foo?
2 ответа 2
What’s Foo? My uncle found this word engraved on the bottom of a jade statue in San Francisco’s China town. The word Foo means Good-Luck.
Что такое Foo? Мой дядя нашел это слово выгравированным на дне нефритовой статуэтки в «China town» в Сан Франциско. И обозначает (переводится) оно «удача» или «удачи!».
Также в популяризации данных слов сыграла роль военная аббревиатура FUBAR («Fucked Up Beyond All Repair», что можно перевести как «ремонту не подлежит», что относилось к военной технике, либо «Fucked Up Beyond All Recognition» — речь шла о людских жертвах, которые невозможно опознать), которая появилась во время второй мировой войны и по слухам была придумана неким рядовым, которого «задолбали» всякие военные аббревиатуры.
Технари из TRMC клуба в MIT использовали слово «FOO» для обозначения ситуаций когда была необходима аварийная остановка системы. В случае, когда кто-нибудь нажимал один из аварийных выключателей на системном табло вместо времени появлялась надпись «FOO» и поэтому эти выключатели назвали «Foo switches». Позже в этом клубе стали использовать кнопки с подписями «FOO» и «BAR» (уже как дань традиции), и использовались они в самых разных ситуациях.
Впоследствии это стало использоваться в IT мире как «placeholders», то есть для названия переменных/классов в тех случаях, когда это не важно (например в примерах) или когда на ум ничего лучшего не приходит.
«Не баг, а фича» — учимся понимать язык программистов
Понять смысл IT-терминов можно, только узнав, как они употребляются
Программисты говорят на особом языке, в котором полно терминов и сленга. Эта речь не всегда понятна не только обычным людям, далёким от компьютеров, но и начинающим айтишникам — новичкам в разработке.
Есть куча статей, объясняющих смысл терминов, но неподготовленному человеку от них мало пользы. И если вы общаетесь с программистами или собираетесь стать одним из них, то, скорее всего, во всём придётся разбираться самостоятельно. Иначе можете оказаться в ситуации, похожей на ту, что в клипе:
Пишет о программировании, в свободное время создает игры. Мечтает открыть свою студию и выпускать ламповые RPG.
Гораздо проще понять, что значит «пичупидо», если знать контекст, в котором употребляются все эти слова. Поэтому попробую объяснить некоторые термины и сленг на примере истории одного программиста (вымышленного).
Дисклеймер. Все совпадения случайны, а персонажи и ситуации вымышлены. В художественных целях они наделены негативными качествами, поэтому не берите с них пример: это касается как профессиональных качеств, так и отношения к алкоголю, курению и энергетическим напиткам. Также некоторые слова используются и в других сферах.
Новая задача
Ваня — обычный джун в веб-студии. Его работа — поддержка бэкенда сайтов старых клиентов студии.
Джуниор ( англ. junior — младший) в данном случае — младший разработчик в веб-студии. Также бывают мидл- ( англ. middle — средний) и сеньор-разработчики ( англ. senior — старший).
Бэкенд или бэк ( англ. back end — задний край) — серверная часть сайта или приложения, которая нужна для обработки и хранения данных. Его противоположность — фронтенд или фронт ( англ. front end — передний край) — видимая часть приложения или сайта. Если же разработчик занимается сразу фронтендом и бэкендом, его называют фуллстек-разработчиком ( англ. full stack — полная куча / полный набор).
Рабочая неделя Вани начинается с митингов, потому что спринт в его компании длится всего неделю.
Митинг — собрание, на котором обсуждается, что успели или не успели сделать сотрудники, а также чем они будут заниматься в новом спринте.
Спринт — период от одной до четырёх недель, за который сотрудники должны успеть выполнить задачу или задачи. Спринты являются частью Скрам.
Скрам ( англ. scrum) — метод управления проектами. Относится к гибкой методологии разработки эджайл ( англ. agile — гибкий).
На этот раз он получил задачу по добавлению валидации в один из интернет-магазинов. До этого вся валидация была на стороне пользователя.
Валидация — проверка данных, которые вводит пользователь.
До пятницы ещё целая неделя, поэтому с митинга Ваня пошёл сразу в курилку. Достав сигарету, он стал слушать разговор мидла и сеньора:
— Недавно залез в репозиторий, а там одни foobar’ы. Целый час голову ломал, а потом махнул рукой и заново переписал.
— Как наберут новых джунов, так всегда говнокод появляется. Как он вообще код ревью проходит?
— Надо проверить в гитхабе историю коммитов.
Тут Ваня поперхнулся, затушил сигарету и заторопился на рабочее место — от греха подальше.
Репозиторий — хранилище исходных файлов проекта.
Foo и Bar — имена функций или переменных, по которым невозможно понять, зачем они нужны. Использование таких имён допускают в учебниках и документации, но не в реальных проектах, потому что они замедляют чтение и понимание кода другими программистами.
Говнокод — очень плохой код.
Код ревью — проверка кода.
Гитхаб — сервис для хранения репозиториев IT-проектов и совместной работы над ними.
Коммит — запись изменений в репозиторий. Коммит содержит в себе данные об изменениях, комментарий и имя автора коммита.
У стола его уже ждал тимлид:
— Ваня, после того как ты добавил функцию загрузки фотографии в личном кабинете, появился баг. Теперь всё ломается, если ввести промокод.
— Вы уверены, что это из-за меня? Мой код вообще промокодов не касался.
— Уверен. Откати сайт и исправь всё до конца недели — нельзя ждать, пока клиент заметит, что одна из фич пропала.
— Но у меня уже есть задача на эту неделю, я не успею всё исправить.
— Это далеко не первый твой факап, поэтому, если не успеешь, мы поставим новый рекорд — так быстро мы джунов ещё не увольняли.
Тимлид ( англ. team leader — лидер команды) в данном случае — программист, который выполняет роль менеджера. Тимлид редко пишет код, вместо этого он следит, чтобы его команда хорошо справлялась с задачами.
Баг ( англ. bug — жук) — неожиданный результат или неожиданное поведение программы, ошибка.
Откатить ( англ. rollback) — отменить изменения, вернуться к прошлой версии.
Фича ( англ. feature — особенность) — полезная (а иногда забавная) функция / особенность программы.
Исправление багов
Дебажить было сложно, но Ваня не мог облажаться и в этот раз. За год его уже успели уволить из трёх компаний, после четвёртого увольнения его резюме будет испорчено окончательно.
Дебаг (англ. debug — устранение багов) — исправление ошибок в коде программы.
Три дня и три ночи Ваня корпел над кодом, но ничего не выходило. В отчаянии он обратился к коллеге, который проводил код ревью для его коммита в прошлый раз.
— Прости, но если бы я знал, что не так в твоём коде, я бы твой пул реквест не заапрувил.
— Но ты же написал lgtm в комментарии!
— И теперь мне за это прилетело. Слушай, я уже сто раз пожалел, что помог тебе сюда устроиться. Тимлид просёк, что я сквозь пальцы смотрю на твой код, поэтому сейчас проблемы у нас обоих. В случае чего я найду новую работу, а ты — вряд ли. Так что сейчас у тебя отличный повод подтянуть знания.
— Ладно, разберусь как-нибудь.
Апрув ( англ. approve) — подтвердить что-нибудь.
Пул реквест ( англ. pull request) — запрос на подтверждение коммита.
LGTM ( англ. looks good to me — На мой взгляд, хорошо) — сокращение, которое часто встречается на гитхаб в комментариях к подтверждению коммитов. Обычно его используют, когда не получается сказать ничего конструктивного по поводу кода.
Осталось всего два дня, чтобы исправить баг и добавить новую фичу, а у Вани не было почти никаких продвижений. После работы он, как обычно, зашёл в магазин, но вместо энергетиков решил взять пиво, потому что вспомнил о Пике Балмера.
Пик Балмера — шуточная теория, что при содержании алкоголя в крови между 0,129 и 0,138% (примерно 2 бутылки пива) программист получает сверхспособности к написанию кода. Теорию выдвинул Стив Балмер, CEO Microsoft с 2000 по 2014 год.
Бессонные ночи и пиво сделали своё дело, поэтому Ваня заснул прямо за компьютером.
Наутро он не сразу понял, что проснулся, и, лёжа лицом на клавиатуре, продолжал слушать разрывающийся будильник. Прошло всего несколько минут, но Ване они показались вечностью.
Ненавидя себя, он поплёлся на работу. Сев за рабочий стол и посмотрев в код, внезапно понял, в чём была ошибка (известно, что многие проблемы в разработке приложений решаются, когда программист спит). Исправив всё за пару минут, он пошёл к тимлиду.
— Я разобрался с багом.
— Отлично, но странно, что у тебя ушло так много времени. Давай протестируем твой код и выгрузим на прод.
Прод или продакшн ( англ. production environment — рабочее окружение) — компьютер (чаще всего сервер), на котором запускается готовое к работе приложение.
Тестирование прошло успешно. И хотя Ване стало спокойнее, он не спешил радоваться — за полтора дня нужно было успеть выполнить задачу, на которую требовалась как минимум неделя.
К счастью, недавно он начал изучать JavaScript, поэтому мог просто скопировать код валидации с фронта и переделать его для бэкенда.
JavaScript — язык фронтенд-разработки.
Помучившись день, он всё-таки закончил. Тимлид оценил усилия:
— Ну вот, можешь же, когда захочешь. Тебе повезло, что мы не деплоим на прод по пятницам, поэтому у тебя ещё есть время до середины понедельника, чтобы ещё раз всё проверить и поправить.
Деплой ( англ. to deploy) — процесс перевода кода в рабочее приложение, чтобы запустить его на каком-нибудь компьютере.
Воодушевлённый успехом, Ваня ещё раз всё протестировал, поэтому к следующему митингу он был спокоен — больше исправлять старые баги ему не придётся.
По крайней мере на этот спринт.
Заключение
Научила ли чему-нибудь Ваню эта история? Возможно. Но вы наверняка стали на один шаг ближе к пониманию программистов. Или даже к тому, чтобы стать одним из них.
Каково происхождение foo и bar? [закрытый]
откуда они взялись и когда их впервые использовали?
2 ответов
«Foo» и «bar» поскольку метасинтактические переменные были популяризированы MIT и DEC, первые ссылки находятся в работе над LISP и PDP-1 и Project MAC с 1964 года.
многие из этих людей были в технологическом модельном железнодорожном клубе MIT, где мы находим первое документированное использование » foo » в технических кругах в 1959 году (и вариант в 1958 году).
оба » foo » и » bar «(и даже «baz») были хорошо известны в популярная культура, особенно из комиксов Smokey Stover и Pogo, которые будут прочитаны многими членами TMRC.
кроме того, похоже, что военный ФУБАР способствовал их популярности.
использование одинокого » фу » как бессмысленного слова довольно хорошо документировано в популярной культуре в начале 20-го века, как и военный ФУБАР. (Справочную чтении: FOLDOC FOLDOC жаргон Файл Жаргон Википедия RFC3092)
хорошо, давайте найдем некоторые ссылки.
СТОП ПРЕСС! после публикации этого ответа я обнаружил эту идеальную статью о » foo » в пятницу 14 января 1938 редакция Техника («самый старый и самый большой MIT газета и первая газета, опубликованная в сети»), том LVII. № 57, Цена Три Центы:
как ругательство, конечно, » фу!»имеет определенный и, вероятно, незаменимый положение в нашем языке, хотя мы опасаемся, что чрезмерное использование, которому он в настоящее время подвергается, вполне может привести к его падению в раннее (и, увы, темное) забвение. Мы говорим «увы», потому что правильное употребление этого слова может привести к таким счастливым случаям, как следующие.
техническая газета, годом раньше, письмо редактору, сентябрь 1937:
к тому времени, как поезд достиг станции, неофиты настолько наполнены историями о славе Фи Омикрона Омикрон, обычно называемый Фу, что они легкая добыча.
возмущенная мать пятерых детей.
и Техника in Декабрь 1938:
общая тенденция мысли может быть лучше всего интерпретирована из замечаний в конце бюллетеней. Один голос сказал:» Я не думаю, что то, чем я занимаюсь, касается Пулвера», а другой просто добавил: «Фу».»
первый документированный » foo » в технических кругах, вероятно,1959 ‘ s словарь языка TMRC:
Это объясняется в FOLDOC. Составитель словаря Пит Самсон сказал в 2005 году:
использование этого слова в TMRC предшествует моему приходу туда. Счетчик foo может просто иметь случайно мигающие огни или может быть настоящим счетчиком с неясным вход.
более ранние версии этого лексикона производные «баз» как Стэнфордская коррупция бара. Однако Пит Самсон (составитель лексикона TMRC) сообщает, что он был уже текущим, когда он присоединился к TMRC в 1958 году. Он говорит: «это пришло от»Пого». Аллигатор Альберт, раздраженный или возмущенный, кричал: «Базз Фазз! или » Rowrbazzle!»Макет клуба, как говорят, моделирует (мифические) графства Новой Англии из Rowrfolk и Bassex (Rowrbazzle смешался с (Норфолк / Саффолк / Мидлсекс / Эссекс).»
за год до словаря TMRC,1958 ‘ S MIT Voo Doo Gazette («Юмор suplement of the MIT Deans’ office»)(PDF) упоминает Foocom в «законах Мерфи и Финагла» Джона Банжафа (студент-электротехник):
дальнейшие исследования в рамках совместного гранта Foocom и Anarcom расширили закон, чтобы быть всеохватывающим и универсально применимый: если что-то может пойти не так, это будет!
и 1964 ‘ S MIT Voo Doo (PDF) ссылки на использование TMRC:
давайте найдем» foo»,» bar «и» foobar», опубликованные в коде образцы.
Вероятно, первоначально распространялся через DECsystem руководства Digital Equipment Corporation (DEC) в 1960-х и начале 1970-х годов; подтвержденные наблюдения там вернуться к 1972 году.
также включает другие метасинтактические переменные, такие как: Foo CROCK GLITCH / POOT TOOR / ON YOU / SNAP CRACKLE POP / X Y Z
Я ожидаю, что это почти то же самое, что и следующая ссылка на «foo» из проекта MIT MAC в январе 1964 цель-064, или LISP упражнения Тимоти П. Харт и Майкл Левин:
он разделяет многие другие метасинтактические переменные, такие как: CHI / Бостон Нью-Йорк / шпинат масло стейк / FOO CROCK Глюк / пут туп / тук тук / ISTHISATRIVIALEXCERCISE / PLOOP FLOT TOP / SNAP CRACKLE POP / ONE TWO THREE / PLANE SUB THRESHER
для обоих «foo» и » bar » вместе, самый ранний ссылка, которую я мог найти, из проекта MIT MAC в июне 1966 цель-098, или PDP-6 LISP никто иной, как Питер Самсон:
EXPLODE, как PRIN1, вставляет косые черты, поэтому (EXPLODE (QUOTE FOO/ BAR)) PRIN1 как (F O O // / B A R) или PRINC как (F O O / B A R).
@Walter Mitty напомнить, на этом сайте в 2008 году:
Я второй файл жаргона, касающийся foo Bar. Я могу проследить его по крайней мере до 1963 года и серийного номера 2 PDP-1, который был на втором этаже здания 26 В MIT. Здесь использовались Foo и Foo Bar, а после 1964 года-PDP-6 room в project MAC.
Джон В. Эверетт вспоминает в 1996 году:
когда я присоединился к DEC в 1966 году, foobar уже широко использовался в качестве имени файла выброса. Я считаю, что fubar стал foobar, потому что PDP-6 поддерживал шесть имена персонажей, хотя я всегда предполагал, что термин мигрировал в DEC из MIT. В те дни в DEC было много типов MIT, некоторые из которых работали с 7090/7094 CTSS. Поскольку 709x также был 36-битной машиной, foobar, возможно, использовался в качестве общего имени файла.
также было распространено использовать foo для заполнения буфера при редактировании с помощью TECO. Текстовая строка для точного заполнения одного блока диска была IFOO$HXA127GA$$. Почти все программисты PDP-6/10, с которыми я работал, использовали эту же командную строку.
использование FOO и BAR в качестве примера имен переменных восходит, по крайней мере, к 1964 году и IBM 7070. Это тоже может быть старше, но именно там я впервые увидел его. Это было в ассемблере. Каким будет эквивалент целого числа FORTRAN? Ифу и Ибар?
самый ранний ассемблер PDP-1 использовал два символа для символов (18-битная машина) программисты всегда оставляли несколько слов в качестве патча для устранения проблем. (Перейти к патч пространства, сделать новый код, прыгать назад) это пространство условно называлось FU: который стоял для Fxxx вверх, место, где вы исправили Fxxx ИБП. Когда его произносили, он был известен как Fu space. Позже ассемблеры (например, Мидас разрешил три тега char, так что FU стал FOO, и, как все программисты PDP-1 скажут вам, что это было пространство FOO.
на стороне IBM Foo (FU)BAR используется сторона бара в качестве Базового регистра адресов; в середине 1970-х годов программистам CICS пришлось беспокоиться о различных xxxBARs. Думаю, одним из них был ФРАКТБАР.