Comments 72

Ещё а priori и a posteriori часто встречается в текстах.
Реже de novo встречается

hfinn, JSmitty, nitrosbase
Сразу всем: я правда полтора года собирал из того, что читал. На полный охват не претендую, буду рад любым дополнениям. И еще я забыл упомянуть методиста, которая мне помогла в этой работе — Елизавету Кокорину. Лиза, спасибо!

Я в жизни еще упортребляю «ex tempore» часто. Изначально, это относится к рецептам лекарств, которые надо фигачить свежими и нельзя хранить. Но отлично подходит для описания кулинарии.
PS И самое известное и практически всеми используемое Post Scriptum — PS

Выписал отсюда сокращения, известные мне, но в ваш список не попавшие: A.M., P.M., RIP, AD, C.V., M.A., M.D., Ph.D.


Многие из них были впоследствии переосмыслены как имеющие происхождение в английском, поэтому, наверное, в ваш список и не попали.

Очень хороший пример, мне эти AM/PM вечно даются с трудом.
Во-первых, всегда хочется быстро вспомнить, что AM — это "after meridian" а потом мучительно долго соображать какое же слово будет на букву p со значением "до". И это "ante" так особо и не прижилось.
Во-вторых, проблема неопределённости полуночи/полудня (на английской вики есть подробное описание), которая отдельно никак не запоминается.

Мнемоническое правило для AM/PM: буква A идёт в алфавите раньше, чем P; соответственно, A — это утром, P — вечером.

Лично мне помог запомнить правильную последовательность (утро/вечер) неправильный перевод сделанный мной в ранние годы. Тогда я думал что М это не меридиан, а миднайт, сиречь полночь. вот и получалось что после полуночи(АМ) утро, а до полуночи(РМ) вечер.
Больше 15 лет прошло, а до сих пор в памяти и помогает не ошибаться.

Я в детстве решил, что M — это midday, A — afore и P — past (ну или posle, так было удобнее).

after midnight, prior midnight? :)
Ну, есть в этом некая рация.


Сложнее увязать в голове, что 12AM, 1AM, ..., 11AM — это первая половина дня, потом бац, 12PM, 1PM, et cetera ad infinitum
В русском-то языке между 11 и 12 часами ночи нет такой решительной разницы (хотя, если следить за календарём, она вылезает; и, скажем, расписание поездов и расписание телепрограмм смотрят на это по-разному).
Зато по-русски можно пошутить про "какой урод звонит 1 января в 16 часов утра?!"

after midnight, prior midnight? :)
Нет намного более приземленное after midnight, pre midnight ))

Я чисто по-программистски делаю в уме t mod 12, т.е. заменяю 12 на 0, и получаю что 12AM — это 0 часов пополуночи, а 12PM — это 0 часов полдня.

Я такими ассоциациями запоминал:
PM -> «P» = «П» = «после» = «после полудня»
AM -> нет «П» -> «не после» = «до полудня»
отлично, только я до сих пор путаюсь с 12AM 12PM, а еще некоторые пишут 0:00AM
Думал что я один такой, только у меня постоянно проситься «after morning».
быстро вспомнить, что AM — это «after meridian» а потом мучительно долго соображать какое же слово будет на букву p со значением «до»

У меня точно такая же история с AM/PM.
PS: Только всё же не «meridian», а «meridiem», т.к. первое — английский, а второе — латынь.
Ну да, многие считают, что RIP — rest in peace, и это уже устоявшийся вариант расшифровки, хотя на самом деле изначально это было requiescat in pace и канонично должно записываться как R.I.P.

Я всегда аналогично считал, что sic — это Same In Cited, «как в цитируемом», так как употребляемый всюду луркояз в свое время повлиял на это.
А ещё: «spelling is correct» (точная орфография), «same in copy» (так же в рукописи), «spelled incorrectly» (написано неверно), «spelling incompetent» (неумелая орфография), «said in context» (сказано в контексте), «stupid in context» (глупо в контексте) и другие.

RIP — удачный акроним и для латыни, и для английского. Тем паче, что английские слова там пришли из латыни, а не немецкого или какого кельтского.


Sic — необязательно "так в оригинале", но и просто подчёркивание: "именно так!".
Чтобы замыленный глаз читателя не перескочил через что-то, важное для пишущего/цитирующего.

Ага, довольно долго ломал голову, что же значит "ad hoc polymorphism". Впрочем, сейчас не стало сильно понятнее.

UFO landed and left these words here

Когда ты хочешь нормальные классы с наследованием и полиморфизмом (С++, например), а у тебя только метатаблицы (как в Lua). В итоге оно выливается в ad hoc полиморфизм.

Нет, как раз шаблоны в C++ — в силу их нетипизированности и огромной свободы — это ад-хок.
Что не позволяет, кстати, компилировать шаблоны в объектный код, — а только в некоторую заготовку для компилятора (абстрактное синтаксическое дерево, прекомпилированный заголовок).


Плюсы ооочень медленно двигаются в сторону дженериков / тайпклассов. Которые суть те же интерфейсы, просто с более затейливыми правилами слежения за типами аргументов и результатов, чем классические ООПшные.

Во-первых, почему "нет"? Ваши утверждения не противоречат моему.


Во-вторых, как из свободы следует "ad-hoc-ность"? И что вы называете нетипизированностью?


В-третьих, разве имеет значение для прикладного программиста, на каком этапе компиляции применяются какие правила? Главное, чтобы гарантии языка выполнялись.


И какие дженерики вы имели в виду? У меня сложилось впечатление, что плюсовые темплейты более мощное средство, чем дженерики Java или C#. Но я так, по статьям на хабре сужу

ООП-полиморфизм носит регулярный характер. Сигнатуры интерфейсов зафиксированы, все реализации удовлетворяют им как формально (на уровне типов), так и по смыслу (если не ломают принцип подстановки).


Ад-хок-полиморфизм — непредсказуемый в этом плане.
Из того, что у вас есть функция с именем swap, вы не можете делать никаких предположений о её реализации — ни о сигнатуре, ни об арности, ни даже о том, будет ли в данном контексте это функция, или переменная, или вообще тип.


Языки с типизацией повышенной строгости испытывают боль от перегрузок функций за пределами системы типов.
В некоторых языках она тупо запрещена — например, в ML для сложения целых чисел есть оператор (+), а для вещественных — (+.)
В некоторых придумывают, как сделать перегрузку регулярной. Например, в хаскелле всякое имя принадлежит тайпклассу, который вводит дженерик типов или функций. Всякая перегрузка функции возможна только в составе инстанцирования этого тайпкласса, вместе с определением остальных его элементов. То есть, реализации могут отличаться потрохами, но сигнатуры их однородны.


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

А для прикладного программиста имеет значение, на каком этапе компиляции что применяется.


ООП-библиотеку можно единожды скомпилировать, и дальше дружить её с другими библиотеками — они будут обмениваться между собой указателями на интерфейсы объектов.
Лэяут интерфейса известен — это указатель на структуру, в которой валяется указатель на таблицу виртуальных функций.
Набор функций и их сигнатуры известны, — как вызывать их — понятно.
Поэтому объектный код зафиксирован. Косвенные вызовы рулят.
Библиотеку можно оформить как .dll / .so, и это будет отлично работать.


Библиотеку с шаблонным кодом единожды скомпилировать нельзя.
Каждый раз при подключении её к другим частям, надо анализировать значения всех имён. Объектный код вынужден быть монолитным.
Расплата за это — долгая компиляция плюсовых проектов. Выгода — отсутствие косвенности и богатые возможности для оптимизации.

ad hoc — когда для разных типов в прямом смысле пишутся разные функции. Т.е. "мне нужно, чтобы функция f работала с аргументом типа T — пишу функцию под аргумент этого типа". Противопоставляется параметрическому полиморфизму, который, по сути, обобщённое программирование. Для параметрического полиморфизма "однообразное" поведение для всех типов гарантирует компилятор, для ad hoc — как программист решит, так и будет.

Утиная типизация.
Не систематизируемый и нестрогий полиморфизм — "лишь бы имя совпадало".


Это макроподстановки (разной степени гигиеничности — от препроцессора до шаблонов), перегрузки имён, а также всякие изобретения на коленке, что компилятор позволяет, а программист придумывает.

Спасибо! Очень хороший и полезный список!
По поводу ad hoc, в реальной жизни, без углубления в научные работы, часто встречал в значении «как есть» (в EULA, например, оно еще и с «тонким» намеком: «сделали как сделали, переделывать не будем, отстаньте уже»), или в контексте переноса/копирования данных: что получили на вход, то и записали в файл/переслали в другой интерфейс, без изменений и обработки.

Почти уверен, что вы путаете с As Is. Никогда не видел ad hoc в значении "без изменений". Ад хок всегда означает несмаштабированное решение проблемы по месту, иногда немного костыльное.

Путаю. Или не путаю… Но не со зла… Действительно встречал ad hoc в значении «как есть» в разных текстах много лет тому назад. Но, видимо, авторы тех текстов тоже не знали, что именно это значит, а слово красивое… А сам я лезть в словарь и смотреть «правильное» значение просто поленился.
Покопавшись в выдаче гугля, все же, Ad hoc в ИТ не столько «костыль» для решения проблемы по месту, сколько одноразовое действие, или действие по запросу, например, какой-то отчет в бухгалтерской системе, который генерится не как остальные отчеты, раз в день или раз в квартал, а только если кто-то затребовал этот отчет.
Но вообще, интересное слово. Очень много разных вариантов использования и значения. Очень похоже, что действительно, мало кто знает официальное значение и просто люди лепят красивое слово куда попало.
Докину в коллекцию:
Как? — de ure, de novo, de facto
Где? — in vitro, in vivo, in situ
CV (curriculum vitae)

Туда же: ab initio ("с начала", "с нуля", "из первых принципов"). Причём есть семантическая разница между de novo и ab initio: первое означает "начать опять с начала", "сызнова", а первое — "начать с самого начала".

Читая эти сокращения и их произношение наткнулся на мысль, что в русском они проще — это всегда производная от русского слова. А тут латынь, да еще и произносится синонимами на английском вместо прямого произношения.
да еще и произносится синонимами на английском вместо прямого произношения

Вспоминается Бред Питт с его «A river derchey» в Бесславных Ублюдках:
A river derchey

Зависит от выпендрёжности автора. Напихать в русскую научную статью латинские сокращения — как нечего делать; просто у нас сложилась определённая своя культура сокращений, самодостаточная.

Бывает так, что какой-то вопрос вызывает любопытство, но руки не доходят его исследовать. Например, значение viz. (да, интуитивно связано с vision), или тот же [sic].

И вот появилась эта статья, которая закрыла сразу множество пробелов. Спасибо. И за песню тоже.

Я думал, что sic — просто для того, чтобы обратили внимание. Не обязательно насмешка.

я всегда мысленно «sic» переводил как «прикинь!»
не верно, конечно, но подходит :)
плюсую, у нас преподаватель матана любил таким способом выделять особо важные места при доказательстве теорем, с тех пор в таком же смысле использую.
Круто, спасибо) Мне, как врачу с курсом латыни это все очень близко)
Там еще были прикольные штуки типа verte! — переверни! Когда текст продолжается на другой стороне страницы инструкции.
NB! на полях — это тоже святое.
как врачу с курсом латыни

Слышал, что ещё серьёзнее преподают латынь юристам. Почему? для чего?
Видимо, как и у врачей. Куча устойчивых фраз и выражений. Грубо говоря, курс профессиональной терминологии.
А ещё латинские заимствования склоняются по правилам латинской морфологии.
matrix — matrices
magnum opus — magna opera
и т. п.
Иногда встречается такое прекрасное как criterias (хотя criteria это и так множественное число, в едиственном — criterion)
Занятно, что «матрица» изначально происходит от слова «матерь», общее для всех индоевропейских языков. На латинском оно обозначало матку, потом возможно через старофранцузский перешло в английский, на котором известный математик Джеймс Сильвестр и ввёл это новое понятие:
I have in previous papers defined a "Matrix" as a rectangular array of terms, out of which different systems of determinants may be engendered as from the womb of a common parent.
magus — magi
В свое время в HoMM3 подобные странности неплохо заставляли задумываться, а правильно ли нам преподают английский :)
> [sic] – «так в оригинале»
В современном тексте без цитат оригинала часто используется в значении
«Это не ошибка и не опечатка, именно так и должно быть. Используйте этот текст/фрагмент именно так, как написано, с точностью до буквы. Не страдайте самодеятельностью, не стройте из себя граммарнаци и не думайте, что вы тут типа самый умный.»
Не латинские, но довольно часто сталкиваюсь:
ASAP — as soon as possible (как только, так сразу)
TLDR — too long don't read (слишком длинно, не читал)
Это уже акронимы, пришедшие из речи военных и интернет-сленга, соответственно. И да, второе правильно писать как tl;dr — «too long; didn't read». Русский «падонкаффский» вариант — «многабукаф, ниасилил».

К первому можно еще вспомнить SNAFU (Situation Normal — All F… Up), FUBAR, и другие вещи. Интернет нам также подарил AFAIK (As Far As I Know), IMHO (In My Humble/Honest Opinion, от которого произошло русское «имхо», а не наоборот), желающие могут нагуглить полный список. Ну или сходить на лурк, в котором еще теплится жизнь, или Know Your Meme, или Urban Dictionary.
Only those users with full accounts are able to leave comments. Log in, please.
Information
Founded

August 18, 2012

Location

Россия

Employees

1001–5000 человек

Registered

30 June 2015

Habr blog