-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trait #22
Comments
Я тут из мира Перла заглянул, так там это называется "роль" ("role"). Что-то вроде "этот объект играет роли такие-то...". "Типаж" конечно сбивает с толку, особенно, если ранее с таким термином не сталкивался. "Трейт" понятен сходу, даже если в другом языке программирования это называлось как-то иначе, потому что англоязычная документация в основной своей массе использует термин "trait". |
В Scala так же имеет место быть понятие trait. Слава богу для Scala есть книжки на русском, в качестве примера можем взять "Scala. Профессиональное программирование": в книге переводчиками издательства "Питер" trait переведен как "трейт". Мне импонирует данный термин переводить так же, как в издательствах - просто как "трейт". Еще один аргумент за трейт заключается в том, что я хочу выбрать из двух бессмысленных в моей речи слов сразу базовое слово, а не какое-то дополнительное, которое привязано к базовому.
И дополнительный аргумент против типажа, что в некоторых статьях типаж подается как "класс, тип, вариант" чего-либо, вот например как тут: типажи программистов |
"трейт" - это же не перевод.... |
Чтобы посмотреть кто какой термин использует:
|
А еще не являются переводом такие слова, как «монитор», «парашют», «дисплей», «дизайн», «документ» (и следовательно «документация») и многие другие. |
Вот предположим приняли трейт. чего мне не хочется ) ринемся менять название везде специально, где встретим? |
У нас впереди перевычитка всех книг, так что постепенно везде поменяем. А оставлять несогласованность терминов в рамках одной книги будет ухудшать качество. Ну и в любом случае при первом использовании укажем другие варианты перевода термина. |
Пусть будет Трейт |
В целом, правильнее конечно называть растовские трейты тайпклассами (typeclasses), как они и называются в haskell. Но чтобы не возникало дробления с уже сложившейся экосистемой, лучше оставить типаж, на мой вкус.
|
Предлагаю так
Вот у нас так будет
|
Исходя из понимания авторов термина, типажи (traits) — это композиция элементов поведения или общие черты поведения. По русски может быть так: черты поведения, манеры, нравы. Вполне подходят слова «нрав», «манеры»: «унаследовал нрав ...», «реализовал манеры ...», «на манер ...», «манерность объекта», «нрав объекта ...». Вместо точек — имя/название типажа. Русское «типаж» в этом смысле несколько размывает исходный посыл черт поведения, указывая на любые черты или совокупность признаков. Хотя реализация в PHP, в отличие от Rust, Scala, Perl, под это размытие попадает точно)) Словорь этимологии русских слов: |
Мы ведь пытаемся сделать текст доступным для понимания. Да ты прав. Но вариант с "трейт" точно никого не будет путать. |
Вот кстати интересный момент:
И как я понимаю, к типажам слово trait не имеет никакого отношения в данном контексте. Так что автозамену по тексту не так просто будет сделать. |
принимаются оба варианта. на этом и закрою |
По поводу слова Trait внесу свою лепту: Есть же замечательное слово Черта. Более того, оно даже является прямым переводом. Дословно прямым переводом с английского, если отбросить "технический" аспект вопроса.
Приведенное выше лексическое значение больше подходит к тому, что в Rust называется "Тип Type" (не даром это синоним). Цитата:
Если переводить это на язык метафизический, то получится:
И тут же мы в переводе для слова Trait имеем слово Типаж, - абсолютно созвучный синоним к слову Тип в русском языке, когда в Rust для слова Trait дается такое определение:
У Type может быть множество Trait , что коррелирует с лексическим значением слова Тип (совокупность особенностей). Не считаю при этом, что Trait - это совокупность черт. Это отдельная черта, у которой есть какие-то свойства и методы взаимодействия с внешним миром. Т.е. мы одновременно имеем два синонимичных И созвучных слова (Тип и Типаж), только одно из них обозначает Общность (совокупность поведений), а другое - Частность (отдельно взятое поведение Типа). Мне одному это кажется странным? По поводу использования слова черта - не вижу никаких объективных предпосылок НЕ использовать это слово. |
Ежли зрить в корень, то: "Типаж", "черта", "характеристика" - так себе варианты, поскольку смешивают в себе и то и то (данные и функционал), а надо бы четко отделять одно от другого. "Роль", на мой взгляд - наиболее адекватный перевод "трейт"а. "Для типов Блоха, Заяц, Жеребец реализована роль Скакун". Но, всё же, использование слова Трейт "как есть" выглядит более предпочтительным. Оно вполне русское по звучанию и ближе к коду - то бишь, не требует доп. конвертации в уме а-ля "мы говорим - партия, подразумеваем - Ленин". |
Ещё один немаловажный для русскоговорящего человека момент. По-русски правильнее было бы писать не - "такой-то тип реализует такой то трейт" (ибо тип ничего не реализует, да и не могёт ничего реализовать), а: "для такого-то типа реализуется такой-то трейт". Это важно. Иначе получается - там неясность, тут неточность - и текст становится неудобоваримым. Тип не реализует поведение, но может обладать поведением, для него реализованным. |
Я за устоявшееся слово "трейт". В PHP сделали правильно, назвали трейт трейтом, многие лекторы по Rust(в частности Алексей Кладов), используют слово трейт. В данной книге тоже не надо выделываться и тоже использовать устоявшийся в программистской среде термин. |
как вариант такой вариант допустим и внесён в dictionary уже |
К сведенью: |
Возможные варианты:
The text was updated successfully, but these errors were encountered: