Обсуждение:Futures and promises

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Комментарий[править код]

Статья имеет перспективы; надо лишь получше постараться =) --Akim Dubrow 20:14, 24 апреля 2015 (UTC)[ответить]

Перевод[править код]

Освещение темы в русскоязычных источниках ОТСУТСТВУЕТ. Перевод слова "future" в качестве "полноправного" существительного (пригодного для описания первоклассной конструкции в языках) по словарю строго однозначен - "преднамеченность". Arachnelis (обс) 09:05, 10 августа 2016 (UTC)[ответить]

  • По какому словарю? В www.multitran.ru/c/m.exe?CL=1&s=future&l1=1 такой перевод был добавлен пользователем "преднамеченность (Alex_Odeychuk)". В С++/boost вроде такое добавляли, может появиться литература. `a5b (обс) 14:10, 10 августа 2016 (UTC)[ответить]
  • Начну с нескольких Чрезвычайно Важных Вещей (ЧВВ).
- 1) Рувикийное понятие «авторетного перевода» УЖЕ официально списано в утиль благодаря выходу русского издания книги «Real World OCaml» Авторитетным Издательством ДМК (СПб). Они пронизали всю книгу НАСТОЛЬКО ГРУБОЙ ошибкой, что некоторое количество статей в рувики становится физически невозможно написать, если копировать выбранный ими вариант перевода. Ошибка (без преувеличения) на уровне как если бы они перевели слово «proton» как «электрон», руководствуясь принципом «да это всё частицы атома, так что какая разница». Недопустимость выбранных ими вариантов русскоязычной терминологии я могу легко доказать, приведя пяток АИ глубоко по предметной области. Они буквально перепутали тёплое с мягким. Отныне мы совершенно смело, и не важно что там в правилах говорится, можем переводить тексты самостоятельно на основании объективной аргументации. Именно её я далее и привожу.
- 2) Я долго гуглил, откуда я взял слово «преднамеченность», и такого слова вообще не нашёл даже в просто русских словарях синонимов. Вряд ли я его выдумал — я таки не первый день на Википедии, знаю правила — может, где-то и попалось, но не факт что авторитетно. Сейчас оно встречается во многих онлайн-словарях, но судя по всему, туда попало уже с рувики, а сюда его вписал Я, так что ссылаться на большинство из них не честно (хотя, это известная Проблема Рекурсии Википедии). Оставляю этот вопрос открытым, но покажу, что большинство других варианты просто неприемлемы.
Со словами «promise» и «delay» проблем не возникает, тут всё просто и почти однозначно, так что я не буду о них говорить.
Итак, варианты перевода «future» как существительного:
- по Лингво 11 и по Мюллеру:
- future 1) а) будущее (время) б) будущее время 2) будущность, будущее (совокупность событий, ожидаемых в ближайшее время) 3); а) товары, закупаемые или продаваемые на срок (часто в спекулятивных целях) б) срочные контракты
- (словарь LingvoComputer) futures — фьючерс (программная конструкция, указывающая на то, что результат некоторого вычисления будет использоваться в программе позже, но само вычисление может планироваться системой в любой произвольный момент времени)
Проанализирую эти варианты.
- Сразу необходимо рассмотреть простой и дебильный вариант шествия на поводу капиталастов, смело разговаривающих одними варваризмами, у которых есть какие-то рыночные фьючерсы (сложные проблемы всегда имеют простые, лёгкие для понимания неправильные решения (с) один из «законов Мерфи»). Во-первых, это сразу неправильная транслитерация, как и «памерСы», «сникерСы», «макроСы» и т. д. В LingvoComputer написано ещё хуже, они вообще умудрились перевести МНОЖЕСТВЕННУЮ форму как ЕДИНСТВЕННОЕ число. Очевидно, что переводчик допустил ошибку по отсутствию квалификации в предметной области — встретил в мануле по примитивному языку первого порядка, поверхностно вник в определение и перевёл транслитерировал как смог. А смог скрывает в дымке всё, и неважные детали, и важные. Нижеследующее показывает в том числе неприемлемость и этого варианта. А вообще, что касается варваризмов, то лично я, когда их слышу, испытываю острое желание строго наказать произнёсшего их, просто взять и вот этими самыми руками поставить его в угол.
- Наконец, подходим к Главному. Пример цитаты из мануала по использованию futures & promises в языке высшего порядка, имеющего теоретико-типовое обоснование, где они являются первоклассными значениями (источники по всякой второсортной фигне типа С++ нельзя ставить выше, так что в случае обнаружения противоречий они будут вынуждены уступить).

There are four different types of future:
concurrent futures
• lazy futures
• promised futures
• failed futures
...
From above we can see that the output is a future, because the thread has not evaluated the computation yet a future is used as a place-holder for the result. When the result is computed it will globally replace the future.
...
If a future fails for example in a call to itself or the future terminates with an exception it is called a lazy future. If a failed future is requested the exception that describes the failure will be returned.


Notable extensions are future-based concurrency and laziness
...
Futures are not limited to the core language, entire modules can be represented by futures, too.
...
Like in the core language, a module future is touched by particular operations:
...
Types (which includes signatures) may reside in structures. The existence of module futures hence implies the existence of type futures. The notion of a type future is a novel concept that, to the best of our knowledge, has not been considered before.

- Начну с артиклей. Для тех, кто проспал все уроки английского и скурил учебник: в английском неисчислимые употребляются только с определённым артиклем. Нельзя сказать «a water» или «an air» — только «the water», «the air». Даже в совершенно абстрактных фразах: «he just threw it into the air» (он просто выбросил это в воздух). Причина такой дискриминации в том, что неопределённый артикль означает — ни-много-ни-мало — выбор случайного элемента из счётного множества конечномерных объектов. То есть «a smth» попросту означает счётную единицу, эквивалент русского корня «един/один». Соответственно, как только мы видим в учебнике «a future», то совершенно определённо речь идёт вовсе не о грядущем времени (которое не просто неисчислимо, а вообще неопределённо, размыто и абстрактно), а каком-то другом, омонимичном понятии. Например, «to assume an air of innocence» (сделать невинное выражение лица) — метафорическое использование (ореол, налёт), не имеющее к атмосфере ни малейшего отношения. Так что правило первое: необходимо из словарных вариантов выбрать вариант, морфологически и семантически конкретный, исчислимый и пригодный для первоклассного использования. Слова «будущее/грядущее», таким образом, сразу вообще отпадают: посление три буквы очень ярко и всесторонне подчёркивают неопределенность, размытость и абстрактность. В качестве подкрепления можно также обратить внимание на использование множественной формы (concurrent futures), принять которую существительное «будущее/грядущее» в самостоятельной роли попросту не способно.
- У лингвистов есть жаргон «здесь мы имеем будущее время», являющийся сокращением от «слово стоит в морфологической форме будущего времени». Лично я не знаю такого языка программирования, в котором семантикой вычисления значения переменной можно управлять посредством синтаксического спряжения глагола, составляющего её идентификатор. Так что в этом направлении рассуждения можно не углублять.
- Далее — примеры показывают недопустимость использования двусоставного термина наподобие «будущее значение». В словосочетаниях «module future» и «type future» слово «future» играет роль прилагательного («модуль-фьючер» и «тип-фьючер», либо «фьючерный модуль» и «фьючерный тип»). Более того, тут ещё идёт беглость речи — «type future» является сокращением от «type module future» («фьючерный модуль-тип»). Тем, кто не в теме, придётся сперва получить понятие о первоклассных модулях высшего порядка (кстати, именно их касается вышеупомянутая ошибка Авторитетного Перевода). Разветвлять терминологию (например, вместо «будущего значения-модуля» сказать просто «будущий модуль») здесь абсолютно недопустимо: первоклассное использование тех или иных понятий — особая фишка, предмет активных исследований и мощное практическое средство, и есть масса научных статей, интенсивно использующих эти вещи — их смысл просто не удастся передать в случае терминологических ветвлений. Правило второе: переводной термин должен быть односоставным и однозначным, как и оригинал.
Т.о. из всех вариантов лингво остаётся только «будущность» — слово, которое лично я не слышал нигде и никогда. Сам Лингво обратно переводит его как «futurity, future» — это явно относится к временнОй абстракции. В каком-то онлайн-словаре синонимов это слово приводится как синоним «будущего», но само является тупиком, то есть поиск его самого в этом словаре даёт «не найдено».
На всякий случай напомню правило Главное для грамотного перевода (важное втройне для технических текстов): обратный перевод должен без подсказок сам по себе однозначно приводить к оригиналу.
По разным словарям синонимом слова «будущее» является также слово «перспектива». В англо-русских оно не соотносится НАПРЯМУЮ с «future», так как имеет собственный перевод «perspective», но по Лингво «perspective» имеет один из переводов «вид на будущее», что по смыслу подходит НАМНОГО лучше, чем само аморфное слово «будущее/грядущее». «Вызов-по-перспективе», «перспективный модуль-тип», «создать перспективу», «переменная имеет перспективный тип» и т. п. — вполне вменяемые термины. Так что если за «преднамеченность» никто так и не вступится, то только оно вобщем-то и остаётся. Уффф, dixi! Arachnelis (обс) 09:12, 7 сентября 2016 (UTC)[ответить]
  • microsoft использует фьючерс [1]. 1) википедийным будет "как это используется в большинстве аи". Когда достойных источников с переводами мало вполне можно использовать оригинал, а вариант(нераспространённый) перевода указывать только в предложении о его существовании. 2) если не находится документальных подтверждений, стоит убрать это из первого определяющего предложения/абзаца куда-нибудь ниже, где про термины. В первом предложении вероятно стоит дать перевод к каждому слову в виде future(рус...), promise(рус...) и delay(рус...) или вовсе отдельным предложением/абзацем в абзац про термины. В вики нужно опасаться утверждений или ввода новых слов или старых к новым понятиям, а "слово (рус. словище)" выглядит именно как утверждение что А это Б(это в первом то определяющем предложении), хотя в тексте статьи можно честно описывать "буквально, может быть переведено, обычно переводится, значит". С английским возникает(и возникало) много новых терминов, значений(вариантов перевода) и ложных друзей, тем более в узкой тематике(бывает и одно en-слово в два-ru, два в три, три в четыре). --Hrum-Hrum (обс) 14:20, 8 сентября 2016 (UTC)[ответить]
  • док от microsoft про С++, а я уже сказал, что убогие языки должны отступить, если то, что хорошо для них, не подходит для более развитых. А по более развитым русских доков я пока не видел. И все варианты по схеме "трансаглС" являются грубой ошибкой. Это как у Голума: "хоббитсы". Можно перечислить сотни случаев упоминания такой ошибки транслитерации, но пока её официально не признают лингвисты, энциклопедия её допускать не может. Arachnelis (обс) 10:06, 9 сентября 2016 (UTC)[ответить]
"Будущность" это действительное словарное слово (как и "преднамеченность", "будущее"), в отличие от попугайских калек с американского вроде "фьючерсов", которые вообще не являются переводом. А то давайте ещё и слово "переменная", например, заменять чем-то вроде "вариэйбла". В том виде, в котором статья находится сейчас, назвать её ничем, кроме мусора, очень трудно. Должен быть сделан, наконец, настоящий перевод. 95.27.64.30 18:18, 27 февраля 2018 (UTC)[ответить]
"словарное" - это общеупотребительное, а тут узкая область. Википедия не должна создавать переводы. Что сначала появится в стоящих работах, то и отобразится здесь. -- $  01:07, 28 февраля 2018 (UTC)[ответить]

Идентификаторы и полнота в разделе "Семантика future в модели акторов"[править код]

В разделе Futures and promises#Семантика future в модели акторов приводится выражение "future <Expression>", а далее объяснение происходящего идёт со ссылкой на какие-то не объявленные E, C, F, R, V. Далее, во фразе "Когда F получает запрос R, он проверяет, был ли ранее получен ответ" - непонятно, как и где он это может проверить. "Если V был получен", того или иного вида, то он посылается в ответ на R - но не сказано, кому. Так же не сказано, что в это время вынужден делать актор, которому понадобилось вычислить выражение <Expression> для продолжения выполнения каких-то своих дальнейших действий. --Nashev 16:16, 12 мая 2017 (UTC)[ответить]