Open15

Rustのエコシステム等で発音が難しい単語を収集して読み方をつけていく

yukiyuki

筆者はイギリス英語の発音に親しみがあるので、若干アメリカ英語とは発音が違うケースがあるかも。が、まあおおよそ通じるでしょうと思って書きます。なお、筆者が普段英語で仕事をしている中で「周りはみんなこう読むかなあ」というレベルの話であって、「こう読まなければならない」ではないのでご注意ください。参考程度にどうぞ。

yukiyuki
  • derive
    • duh-rive
    • 英語発音に近い書き方だと「デュライヴ」。
    • カタカナ英語にするなら「デライブ」で十分そう。
    • ちゃんとした英単語です。
yukiyuki
  • Mutex
    • これはミューテックスと多くの本でも表記されているので、そのまま。
yukiyuki
  • Rc
    • 私は「アールシー」と呼んじゃってます。
    • 「リファレンスカウンター」と呼んでる方も多そう。
    • ただし正式名称は「Reference Counted」
  • Arc
    • こっちは「アーク」と呼んでる人が多そうです。
    • 正式名称は「Atomically Reference Counted」
yukiyuki
  • tokio
    • towk-eye-o
    • これを直すと「トキオ」。
    • ただ、海外の方だと「トキョー」って読んでるかも。Tokyo と同じ読みになる。トウキョウと読んでも間違いではなさそうに思います。
    • "I've only ever heard it pronounced as Tokyo, but technically, towk-eye-o should also be correct.": https://www.reddit.com/r/rust/comments/dnq5dh/tokio_pronunciation/
yukiyuki
  • chrono
    • 時刻関連のクレート。
    • 「クロノ」
    • 時間関連を示す英単語で、もともとはギリシャ語の「時間」を意味するクロノスに由来します。
yukiyuki
  • async
    • 読むならエイシンクかな。
    • asynchronous (ay-sing-kruh-nuhs)の略だと思う。ので、最初のasyncを読むと「ay-sink」ってなりそう。
    • なんだけど、普通に「アシンク」と読んでる例も聞く気がする。
  • await
    • アウェイト。
    • なんだけど、「エイウェイト」って言ってる例も聞く。

YouTubeを探すといくつか系統がわかれそうだったので、結果を貼っておきます。

エイシンク+アウェイト(話者はネイティブかな)
https://www.youtube.com/watch?v=ThjvMReOXYM

エイシンク+エイウェイト(話者はネイティブかな)
https://www.youtube.com/watch?v=dOzrO40jgbU

アシンク(話者は東欧系のアクセントかな)
https://www.youtube.com/watch?v=pgzjPeIQ3Us

なんで同じ「a」なのに音が違うんや!英語はクソ!…の前に、そもそも両者は語源が違います。英語は他の地域的に近い言語からいろいろ借用してきた歴史がありますが(e.g. ノルマンコンクエスト)、この違いもそのうちの一つです。スペルと発音が違うものは、だいたい他の言語から借用してきたものです。

ただ、ノンネイティブの感覚で普通に読むとアシンクだし伝わるのでアシンクと読んでも全く問題ないと思います。ネイティブスピーカーの方はどちらかというとエイシンクで読んでる傾向が強いかなと思いますね。

yukiyuki
  • reqwest
    • まず由来っぽいものを推察すると、「request」の音は実質「ruh-kwest」みたいになります。uの部分はqとeに挟まれて実質wの音になる。
    • 「request」だとググラビリティが低いとかライブラリ名として単純すぎるなどで、u→wに置き換えているんじゃないでしょうか(すごい雑学だけど、w→double v→vはラテン語だと実質u→つまりdouble u)。
    • 英語圏だとこのように実質的な音を表すアルファベットに置き換える、みたいなのは結構見る気がします(tokioとかもそうなんじゃないかな)。
    • 音は
      • そのまま読むなら「リクウェスト」。英会話の中だと普通にrequestの発音と同じ😅
      • ただ、元は「request」と実質等価なのだから、「リクエスト」と読んでも問題なさそう。
yukiyuki
  • Opaque (type)
    • オペイク。
    • impl Traitの文脈で見かけることが多いと思う。
    • 原義は「不透明」とかそういう感じ。
    • ただ「不透明型」とするとわかりにくい。

少し例を使って示すと、

fn only_true<I>(iter: I) -> impl Iterator<Item = bool> // <- "opaque type"
where
    I: Iterator<Item = bool>,
{
    iter.filter(|&x| x) // <- "hidden type"
}
  • impl Traitによって不透明にされる型の実態を「Hidden Type」つまり「隠される型」と呼ぶ。
  • これとの対比で、Opaque Typeは「覆い隠す型」とか訳すと意味が通じやすいかも。