私家版・コンピュータ業界でよく出る英語

@tfutada さんの記事[「コンピュータ業界でよく出る英語」](https://qiita.com/tfutada/items/d1b17cd4008876c17bf4)が非常に素晴らしかったので、その記事に追加する形で、自分でも私家版のリストを作ってみることにした。最初は @tfutada さんの記事に[コメント](https://qiita.com/tfutada/items/d1b17cd4008876c17bf4#comment-415cd2bddff4afba173d)したが、リストを更新していった方が良さそうなので、別記事を新たに立てた。

なので、この記事を読む方は、まずこちらの @tfutada さんの記事から読むことをオススメする。
https://qiita.com/tfutada/items/d1b17cd4008876c17bf4

ちなみに、本記事の用例の多くを [Manning](https://www.manning.com) の書籍から引用している。Manning のオンラインライブラリ liveBook が大変素晴らしく、オンラインで全書籍の内容を検索できる。
https://livebook.manning.com/

随時更新中。


## 名詞

#### lingua franca
共通言語。

> XML is the **lingua franca** of large enterprise applications.
> XMLは大規模な企業アプリケーションの共通言語だ。
> ― *Java Testing with Spock*

#### nomenclature
用語体系。lingo/jargonと近い用法。

> In other words, rules are written using a business, not programmatic, **nomenclature**.
> 言い換えると、ルールはプログラミングでなくビジネスの用語体系で記述される。
> ― *Open Source SOA*

#### culprit
犯人、容疑者。バグの原因を議論するときなどに用いる。

> In my experience these are the two main **culprits** that consume a programmer's time while on the keyboard.
> 私の経験では、この2つが、プログラマがキーボードをタイプしているときに時間を消費する主な犯人だ。
> ― *Effective Unit Testing*

#### bandwidth
ネットワークの帯域幅のことだが、自分が新たな仕事を引き受ける余裕のあり／なしを表現するのにも用いる。
動詞で出てくる **snow under** も類似の表現。

> I don't have the **bandwidth** to do the translation myself.
> 自分で翻訳をやっている余裕がないんだ。

#### gut feeling
直感。
障害の原因などを、ひとまず直感で指摘するときなどに用いる。

> My **gut feeling** is that this is a bug, but I'm open to suggestions why it might not be.
> 直感ではバグだと思うけど、そうじゃないという意見があるならぜひ聞かせて。

#### ballpark
概算。大雑把な数字。
とりあえずの数字を言わないといけないときに用いる。形容詞としても使う。

> Our current Windows usage is somewhere in the **ballpark** of 20% or below.
> 我々の Windows の使用状況は、大雑把に言って 20% かそれ以下だろう。

## イディオム

#### i.e.
すなわち。前の語を別の言葉で言い換えるときに使う。
**e.g.** と違い、例示には使わない。

#### e.g.
たとえば。for example / for instance などと同義。
**i.e.** と一見似てるが意味が微妙に異なるので、混同しないように注意。
また、英語では「例」の意味で ex. とは書かないので注意。

#### YMMV
= Your mileage may vary. 効用は人によって異なる。
人によって受け取り方が異なる話題をするときに使う。

> Performance tuning is the kingdom of **YMMV**: there's no one-size-fits-all solution for such a domain.
> パフォーマンス・チューニングはYMMVの世界だ。誰にでも適用できるような解決方法は存在しない。
> ― *Mule in Action*

#### IANAL
= I am not a lawyer. 私は弁護士ではない。
法的な話題で、プログラマが何らかのアドバイスをするときなどに使う。

> **IANAL** but I'm sure GPL is incompatible with BSD.
> 私は弁護士ではないが、GPLはBSDと互換性はないと思うよ。

#### OOTB / out of the box / out-of-the-box
初期設定で。最初から。
独創的な、のような意味もあるらしいが、プログラマ界隈ではもっぱらこちらの意味で使われる。例えば、あるソフトウェア製品が追加プラグインなしでもある機能をサポートしている場合など。

> TensorFlow comes with Recurrent Neural Network models **out-of-the-box**.
> TensorFlow はデフォルトで再帰型ニューラルネットワークのモデルをサポートしている。
> ― *Machine Learning with TensorFlow (MEAP V09)*

#### FWIW
= for what it's worth. 参考までに。FYI (=for your information) と近い用法。
会話の流れで、直接本筋とは関係ないけど、有用だと思われる情報を提供したいときなど。

> **FWIW** here's the link of the presentation.
> 参考までに、そのプレゼンのリンクはこちらです。

#### on steroids
〜の強化版。
筋肉増強剤のステロイドを注入した〜という意味合い。少しヤバイやり方で強化された何らかの技術を指すときに使う（？）。

> Functional programming is a bit like using functions **on steroids**, ...
> 関数型プログラミングはステロイドで強化された関数を使うようなものだ、...
> ― *Functional Programming in JavaScript*

#### batteries included
バッテリー同梱。
幅広く様々なタスクをこなせるよう色々と含まれているライブラリを形容するのに使われる。元々は Python のライブラリの思想を表すフレーズが "Batteries Included" らしい。OCaml にも batteries というライブラリがある。

> The goal of the Swarm project is to provide a **"batteries included"** but optional solution for clustering containers.
> Swarm プロジェクトの目標は、コンテナのクラスタ化に対して「全部入り」だがオプションで使えるソリューションを提供することだ。
> ― *Docker in Action*

#### like a charm
魔法のように。
今まで苦戦していたトラブルが、誰かのアドバイスで設定を一箇所変えただけで解消したときなど。

> I upgraded my laptop to Fedora 26 and it now works **like a charm**.
> 私のノートパソコンを Fedora 26 にアップグレードしたら、魔法のように動くようになった。


## 動詞

#### kick the tires
とりあえずテストする。

> You can **kick the tires** a little on the installation by verifying the version of the CLI that was installed.
> そのバージョンのCLIがインストールされているのを確かめることで、とりあえずインストールが成功したかをテストできる。
> ― *Spring Boot in Action*

#### improvise
即興でやる。adhocと似た意味で使われる。

> Go doesn't provide a set collection, but you can always **improvise**.
> Goにはセット（集合）のコレクションはないが、いつでも自分で作ることができる。
> ― *Get Programming with Go (MEAP V11)*

#### snow under
何かに忙殺される。
名詞で出てくる **bandwidth** も類似の表現。

> I've been **snowed under** with too many meetings.
> ミーティングが多すぎて、忙しすぎる。

#### screw up / mess up
ヘマをやる。めちゃくちゃにする。
何か知らないがデータがグチャグチャになっている場合や、きれいだったプログラムをめちゃくちゃにしてしまった場合など。
"You are screwed up" など人に対して使う場合は、その人が困った状態になっていることを表す。

> Maybe cookies are **messed up**.
> たぶん cookie が壊れてるんじゃない。
> 
> He **screwed up** the code.
> 彼がコードをメチャクチャにした。

#### call it a day
仕事を終える。1日を終わりにする。

> Let's **call it a day**!
> もう仕事を終わりにしよう！

#### triage
（バグチケットやタスク等の）選別をする。
トリアージは救急医療の用語で、大災害などで人命を最大限に救うために患者の優先順位付けをする行為を指すが、プログラミングの世界ではバグチケットの優先順位付けをする際に用いられる。

> It will get reviewed next time we **triage** the outstanding bugs and enhancements.
> 次回、残っているバグと機能拡張をトリアージするときにレビューします。

#### chime in
（話に）割り込む。
メールのスレッドやチャットなどで、誰かが話している話題に横から割り込む場合。

> I just wanted to **chime in**. In my opinion, ...
> ちょっと割り込ませて。私の考えでは、...

#### need love
修正が必要だ。改善の余地がある。
「愛が必要だ」から転じて。

> The whole mechanism would **need a bit of love**.
> そのメカニズム全体にテコ入れが必要そうだ。


## 形容詞

#### heterogeneous
異種混合の。
LinuxやWindowsなど、異なるプラットフォームが混在する環境を指すときに使う。

> Traditional monolithic systems are composed of **heterogeneous** components, of various sizes and complexity.
> 昔ながらのモノリシックなシステムは、様々なサイズや複雑さの、異種混合コンポーネントから構成されている。
> ― *The Tao of Microservices*

#### flaky
フレークのような。当てにならない。
フレークのようにパサパサしていて脆いイメージか。
例えば、CIで、場合によって成功したり失敗したりする当てにならないテストに対して使う。

> **Flaky** tests that fail at random are about as trustworthy as most casinos.
> ランダムで失敗する当てにならないテストは、カジノと同じくらい信用できない。
> ― *Effective Unit Testing*

#### intact
無傷の。
データやオブジェクトの状態が、プログラムによって書き換えられていないことを表現するときに使う。

> Stream queues are useful for keeping the order of output files **intact**.
> ストリームキューは、出力ファイルの順序をそのままにしておくのに便利だ。
> ― *Front-End Tooling with Gulp, Bower, and Yeoman*

#### opinionated
頑固な。独自のやり方に固執する。
色々な方法の解決策が考えられる問題に対して、ある固有のやり方のみを強く推進している（多くの場合、何らかの強い意見に基づいている）ようなフレームワークやライブラリを指すときに、よく使われる。

> It (=Spring Boot) takes an **opinionated** view of the Spring platform so that new and existing users can quickly get to the bits they need.
> Spring Boot は Spring プラットフォームへのある固有のやり方を取ることで、新旧ユーザが必要なことをすぐに始められるようにします。
> ― https://github.com/spring-projects/spring-boot

#### idiosyncratic
独特な。風変わりな。
独特な要素やイメージのある技術を、少し強調気味に表現するとき（？）に使われる気がする。

> JavaScript can be **idiosyncratic**, but it hasn't negated the timeless principles that have existed in software development for years.
> JavaScript はちょっと変わっているかもしれないが、長年のソフトウェア開発に生き続ける不朽の原則を否定しているわけではない。
> ― *AngularJS in Action*

#### vanilla
なにもカスタマイズしていない。
なにもトッピングのない基本のアイスクリームがバニラなところから来ている。
out of the box と用法が近く、ある技術を何もカスタマイズしたりラッパーを付けたりしないで使うときによく用いられる。

> it works on any UNIX-based operating system, including **vanilla** Linux, BSD, and MacOS X.
> 素の Linux や、BSD、MacOS X など、どんな UNIX ベースの OS でも動作する。
> ― *Android in Practice*

YMMV ;-)