Имена для метапеременных
Метапеременные — это слова-заменители, которые применяются в технических текстах для обозначения чего-либо, что может стоять на их месте, метапеременные часто используются в программировании.
Есть две легендарных метапеременных — это foo и bar . Они прекрасны — короткие, одинаковой длины, отличаются друг от друга, легко произносятся. А вот если нам необходимо больше метапеременных? Тут уже нету чётких правил. Обычно используются baz и bat. Но они имеют существенный недостаток — очень схожее написание с bar. И еще более схожее звучание (при выступлениях глухие буквы в конце часто съедаются и получается «ба» вместо «бар» и«бат»)
На данном ресурсе сидит огромное количество программистов и я хотел бы предложить отказаться от традиции использовать baz и bat в качестве имени метапеременной, а также обсудить возможность замены их чем-нибудь другим.
Я понимаю, что это уже укореняется, как традиция, но всё-таки, я не понимаю, откуда взялась эта традиция. В больших блоках кода, где постоянно используется две-три похожих переменных начинает возникать путаница, приходится вчитываться в каждую букву.
Предложение высказано после обсуждения в топике «JavaScript. Ядро».
Почему бы не придумать к foo-bar еще набор названий, которые бы отвечали следующим условиям:
— Длина — три буквы
— Кардинально отличаются внешним видом
— Кардинально отличаются произношением
— Легко и чётко произносятся. Должен быть 1 слог.
Например, я предлагаю следующий набор:
Quux использовал т.к. он есть традиционной четвертой переменной, и звучит, имхо, лучше, чем qux. Но при этом выбивается из «ритма» трехбуквенных переменных.
Конечно, первое время они будут непривычны, но со временем устаканится набор разных метапеременных, которые хорошо выглядят в коде. Хотелось бы выслушать ваше мнение.
Источник
Что означает «foo»?
Я надеюсь, что это будет рассматриваться как вопрос программирования, как и в любом учебном руководстве по программированию, вы в конце концов сталкиваетесь с «foo» в примерах кода. (да, правильно?)
что означает «foo»?
Если это означает ничего, когда он начал использоваться так?
ОТВЕТЫ
Ответ 1
Для краткости излагайте только соответствующие определения из этого RFC:
Используется в основном как примерное имя для абсолютно чего-либо, особенно. программ и файлов (особенно файлов с царапинами).
Сначала в стандартном списке метасинтатических переменных, используемых в примеры синтаксиса (bar, baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). [Жаргон]
Ответ 2
foo используется как имя владельца места, обычно в примере кода, означающем, что названный объект или выбор имени не является частью сути примера. foo часто следуют bar , baz и даже bundy , если требуется более одного такого имени. Википедия называет эти имена Метасинтетические переменные. Программисты Python предположительно используют spam , eggs , ham вместо foo и т.д.
Я также видел, что foo используется, когда программист не может думать о значимом имени (вместо замены tmp , скажем), но я считаю, что это неправильное использование foo .
Ответ 3
Поскольку определение «Foo» имеет много значений:
bar, а baz часто объединяются вместе, чтобы делать такие слова, как foobar, barbaz и foobaz. www.nationmaster.com/encyclopedia/Metasyntactic-variable
Основные понятия в CML, обычно отображаемые непосредственно на XMLElements (которые будут обсуждаться ниже). wwmm.ch.cam.ac.uk/blogs/cml/
Измерение общего количества пастбищ в паддоке, выраженное в килограммах пастбищного сухого вещества на гектар (кг DM/га) www.lifetimewool.com.au/glossary.aspx
Сотрудник по прямому наблюдению. Артиллерийский офицер, который остался с пехотными и танковыми батальонами, чтобы установить наблюдательные пункты на передних линиях, чтобы наблюдать за позициями противника и радио, координаты целей к пушкам в тылу. members.fortunecity.com/lniven/definition.htm
— первая метасинтатическая переменная, обычно используемая. Это иногда сочетается с баром, чтобы сделать foobar. Это говорит о том, что foo, возможно, возникло с помощью слангового термина World War II fubar, в качестве аббревиатуры для f ucked/ f ouled u p b eyond a ll r, хотя файл Jargon делает довольно хороший случай. explanation-guide.info/meaning/Metasyntactic-variable.html
Foo — это метасинтатическая переменная, используемая в компьютерной науке для абстрактного представления понятий и может быть использована для представления любой части. en.wikipedia.org/wiki/FOo
Foo — это мир снов (нет его нет) в серии Obert Skye Leven Thumps. Несмотря на то, что в нем много коренных жителей, большинство его нынешних обитателей — от Реальности и известны как гниды. ru.wikipedia.org/wiki/Foo (место)
Также foo. Представление дурака (глупого человека), в акценте г-на Т en.wiktionary.org/wiki/foo
Ответ 4
Ответ 5
Я думаю, это означало ничего не значить. Вики говорит:
«Foo обычно используется с метасинтактическими переменными bar и foobar».
Ответ 6
По-моему, у каждого программиста есть свои «слова», которые используются каждый раз, когда вам нужно произвольное слово при программировании. Для некоторых это первые слова из детской песни, для других — имена, а для других — нечто совершенно иное. Теперь для сообщества программистов есть и эти «слова», и эти слова «foo» и «bar». Использование этого в том, что если вам нужно публично публиковать о программировании, вам не нужно говорить, что вы будете использовать слова арбитража, вы просто напишите «foo» или «bar», и каждый программист знает, что это просто произвольные слова.
Ответ 7
Звук французского fou, (например: amour fou) [сумасшедший], написанный на английском языке, будет foo, не так ли. Else furchtbar → foobar → foo, bar → barfoo → barfuß (босиком). Просто fou. Нога без зубов.
Я согласен со всеми, кто упомянул это, означает: ничего интересного, просто что-то, как правило, необходимо для завершения выражения/выражения.
Ответ 8
Среди моих коллег значение (или, возможно, более точное — использование) термина «foo» должно было служить заполнителем для представления примера имени. Примеры включают, но не ограничиваясь этим, ваше переменное имя, ваше имя объекта или имя_колла.
Сегодня я избегаю использования «foo» и предпочитаю использовать этот тип подстановочной замены по нескольким причинам.
- В мои предыдущие дни я первоначально нашел использование «foo» в качестве места размещения в любом примере, чтобы представлять что-то как f’d-up, чтобы запутать. Мне нужен рабочий пример, а не то, что было foobar.
- Ваши результаты могут отличаться, но я всегда, 100%, каждый раз, никогда не провалился, получил больше последующих вопросов о значении фактической переменной, в которой использовалось «foo».
Ответ 9
foo = Файл или объект. Он используется вместо переменной объекта или имени файла.
Источник
Почему во многих примерах функции называют foo?
Часто вижу в различной литературе, видеоуроках, статьях в интернете и прочем, что демонстративные функции и методы носят название foo .
почему именно foo ? Что это значит?
2 ответа 2
Скорее всего слова foo , bar и baz родились в комиксе Smokey Stover and Pogo в конце 30-х годов 20-го века (как правильно заметил @AnT ) и, благодаря своей популярности, стали использоваться технарями из MIT
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» в Сан Франциско. И обозначает (переводится) оно «удача» или «удачи!».
Вот очень подробный и развернутый ответ на этот вопрос в английской версии StackOverflow. В этом ответе есть воспоминания людей об употреблении слов foo , bar , baz , foobar , которые работали непосредственно в Tech Model Railroad Club (сокращенно TRMC) или, несколько позже, просто в кругу MIT в 1960-1990-х годах.
Также в популяризации данных слов сыграла роль военная аббревиатура FUBAR («Fucked Up Beyond All Repair», что можно перевести как «ремонту не подлежит», что относилось к военной технике, либо «Fucked Up Beyond All Recognition» — речь шла о людских жертвах, которые невозможно опознать), которая появилась во время второй мировой войны и по слухам была придумана неким рядовым, которого «задолбали» всякие военные аббревиатуры.
Технари из TRMC клуба в MIT использовали слово «FOO» для обозначения ситуаций когда была необходима аварийная остановка системы. В случае, когда кто-нибудь нажимал один из аварийных выключателей на системном табло вместо времени появлялась надпись «FOO» и поэтому эти выключатели назвали «Foo switches». Позже в этом клубе стали использовать кнопки с подписями «FOO» и «BAR» (уже как дань традиции), и использовались они в самых разных ситуациях.
Впоследствии это стало использоваться в IT мире как «placeholders», то есть для названия переменных/классов в тех случаях, когда это не важно (например в примерах) или когда на ум ничего лучшего не приходит.
Источник
Какова история использования «foo» и «bar» в примерах исходного кода?
Почему многие примеры кода, особенно учебные пособия, так часто используют имена «Foo» и «Bar»? Это почти стандарт.
Foo и bar происходят от аббревиатуры Второй мировой войны армии США FUBAR, «F-ed Up Beyond All Recognition». Целое семейство этих терминов широко использовалось в ходе кампаний в Северной Африке и на Сицилии (1942-43). Превосходный День битвы: Война на Сицилии и в Италии, 1943-1944 гг., Рик Аткинсон приводит список из них. Например, JANFU — это «Объединенный военно-морской флот F Up», такой как инцидент 11 июля 1943 года, когда флот вторжения для операции «Хаски» сбил 23 армейских ВВС C-47, перевозящих десантников для усиления плацдарма.
Обновление: Википедия имеет список связанных сокращений, который включает некоторые оригинальные Второй мировой войны, перечисленные Аткинсоном.
Любой программист поймет мотивацию использования foo и bar для именования переменных. Они, безусловно, были частью культуры C / UNIX с самого начала, и, как указывает @Walter Mitty, предшествовали этому.
Обновление (05.10.2009): вот описание Аткинсона:
Их повсеместная «гражданственность» заставляла их опасаться боевого усердия. «Мы не были романтиками, наполненными болтовней накидки и меча», — писал Джон Мейсон Браун, лейтенант военно-морского резерва, направляющийся в Сицилию. «Последняя война была слишком близка для этого». Военная жизнь разжигала их иронические чувства и их скептицизм. Единственная грубая аббревиатура, которая захватила пониженные ожидания солдата — SNAFU, «ситуация нормальная, все испорчено» — расширилась до словаря цинизма GI: SUSFU (ситуация не изменилась, все еще испорчена); FUMTU (облажался больше, чем обычно); ДЖАНФУ (совместное соединение армии и флота); JAAFU (совместный англо-американский дебил); FUAFUP (облажался и облажался должным образом); и FUBAR (облажался до неузнаваемости) [Аткинсон, с. 36].
Обновление (23.11.2011): у @Hugo фантастический список невоенных предшественников.
Я думаю, что это фонетическое произношение фубара.
В «Словаре нового хакера» есть очень хорошая статья об этом — и я считаю, что это лучший ресурс для такого рода вещей, чем Википедия:
Имя, используемое в примерах и понимаемое для обозначения того, что обсуждается, или любого случайного члена класса обсуждаемых вещей. Слово foo является каноническим примером. Чтобы избежать путаницы, хакеры никогда (ну, почти никогда) не используют `foo ‘или другие подобные слова в качестве постоянных имен для чего-либо. В именах файлов распространенным соглашением является то, что любое имя файла, начинающееся с имени метасинтаксической переменной, является рабочим файлом, который может быть удален в любое время.
В некоторой степени список предпочтительных метасинтаксических переменных является культурной сигнатурой. Они встречаются как последовательно (используются для связанных групп переменных или объектов), так и в виде синглетонов. Вот несколько распространенных подписей:
foo, bar, baz, quux, quuux, quuuux . использование
MIT / Stanford, теперь встречающееся повсеместно (во многом благодаря ранним версиям этого лексикона!). В Массачусетском технологическом институте (но не в Стэнфорде) баз некоторое время выходил из употребления в 1970-х и 80-х годах. Обычная недавняя мутация этой последовательности вставляет qux перед quux.
Базола, ztesch:
Стэнфорд (с середины 70-х годов).
foo, bar, thud, grunt:
этот сериал был популярен в CMU. Другие переменные, связанные с CMU, включают gorp.
foo, bar, fum:
Сообщается, что эта серия распространена на XEROX PARC.
Фред, Барни:
см. запись для Фред. Это, как правило, британцы.
corge, grault, flarp:
популярный в университете Rutgers и среди хакеров GOSMACS.
zxc, spqr, wombat:
Кембриджский университет (Англия).
Шме
Беркли, GeoWorks, Ingres. Произносится / шме / с коротким / е /.
Университет
Брауна, начало 1970-х годов.
foo, bar, zot
Хельсинкский технологический университет, Финляндия.
blarg, качать
Новая Зеландия.
Тото, Тити, Тата, пачка
Франция.
Пиппо, Плутон, Paperino
Италия. Pippo / pee’po / и Paperino / pa-per-ee’-no / — итальянские названия для Гуфи и Дональда Дака.
aap, noot, mies
Нидерланды. Это первые слова, которые ребенок использовал, чтобы научиться писать по буквам на голландской орфографической доске.
Из всего этого, только ‘foo’ и ‘bar’ универсальны (а baz почти так). Составы foobar и `foobaz ‘также имеют очень широкую валюту.
Некоторые жаргонные термины также используются как метасинтаксические имена; например, бормочет и бормочет. См. Также Commonwealth Hackish для обсуждения многочисленных метасинтаксических переменных, найденных в Великобритании и Содружестве.
В компьютерных науках программисты используют метасинтаксические переменные для описания имени заполнителя или псевдонима, обычно используемого для обозначения обсуждаемого предмета или произвольного члена класса обсуждаемых вещей. Использование метасинтаксической переменной помогает освободить программиста от создания переменной с логическим именем, что часто полезно при создании или обучении примерам алгоритма. Слово foo является основным примером.
Термин «метасинтаксическая переменная» в основном встречается в неформальной литературе. Иногда он также используется в качестве синонима мета-переменной.
Любой символ или слово, которое не нарушает правила языка, может использоваться как метасинтаксическая переменная, но обычно используются бессмысленные слова. То же самое понятие используется в других областях, где это выражено такими терминами, как переменная схемы (см. Логическую форму ).
По математической аналогии: метасинтаксическая переменная — это слово, которое является переменной для других слов, так же как в алгебраических буквах используются в качестве переменных для чисел.
В статье также приведены общие примеры таких переменных на разных языках программирования:
C
В следующем примере языка программирования C имя функции foo и строка имени переменной являются метасинтаксическими переменными. Строки, начинающиеся с //, являются комментариями.
Спам, ветчина и яйца являются основными метасинтаксическими переменными, используемыми в языке программирования Python. [5] Это ссылка на знаменитый комедийный набросок «Спам» Монти Пайтона, одноименный язык. [6] В следующем примере спам, ветчина и яйца являются метасинтаксическими переменными, а строки, начинающиеся с #, являются комментариями.
В следующем примере baz, foo и bar являются метасинтаксическими переменными, а строки, начинающиеся с #, являются комментариями.
Вот ответ Википедии:
Термины foobar, foo, bar и baz являются общими именами-заполнителями (также называемыми метасинтаксическими переменными), используемыми в компьютерном программировании или документации, связанной с компьютером. Они обычно используются для представления неизвестных значений, как правило, при описании сценария, в котором цель неизвестных значений понятна, но их точные значения являются произвольными и неважными. Термины могут использоваться для обозначения любой части сложной системы или идеи, включая данные, переменные, функции и команды. Сами слова не имеют смысла в этом использовании и являются просто логическими представлениями, так же, как буквы x и y используются в алгебре. Foobar часто используется один; foo, bar и baz обычно используются в том порядке, когда требуется несколько сущностей.
Фу вошел в английский язык как неологизм и считается многими каноническим примером метасинтаксической переменной. [Цитата нужна] Он широко используется в примерах компьютерного программирования (иногда выражается как «только один раз») и псевдокоде. Эрик С. Рэймонд назвал это «важным хакерством» наряду с клуджем и храбростью. [1]
При использовании в связке с «баром» он, как правило, прослеживается до аббревиатуры армейского сленга FUBAR («Fucked Up Beyond All Repair»), позже измененной на foobar. Ранние версии Jargon File [JARGON] интерпретировали это изменение как послевоенную боулдеризацию, но теперь кажется более вероятным, что FUBAR сам был производным от ‘foo’, возможно под влиянием немецкого ‘furchtbar’ (ужасный) — ‘foobar’ может на самом деле была оригинальная форма.
Кажется, что само слово «foo» имело непосредственную довоенную историю в комиксах и мультфильмах. В мультфильме Warner Brothers 1938 года режиссера Роберта Клэмпетта «Даффи Док» очень ранняя версия «Даффи Дак» держит знак «SILENCE IS FOO!» . (отрывок)
Источник