i++

プログラム系のメモ書きなど

プログラマの英語 : enbug の正しい言い換え方と語源の推測

enbugエンバグ)とは「ある変更が(他の箇所で)別のバグを生む」というような意味で使われる用語ですが、これは和製英語であって世界的に標準的な英単語としては存在しません。

例えば英辞郎Weblio といった日本の英語辞書サイトではエントリーが存在しますが、Oxford Dictionaries で enbug と検索すると「"enbug" という単語はイギリス、世界の英語にはありません(No exact match found for “enbug” in British & World English)」と言われます

日本の開発者と付き合いの多い海外の開発者であれば通じる可能性はありますが、なるべく正しい英語を使いましょう、ということで enbug の言い換え方について考えてみます。

名詞として:エンバグに注意!

  • Be careful for (undesirable / harmful / adverse) side effects!
  • Make sure there is no regression!

あまりすっきりとした言い換えではありませんが…そもそも、わざわざ「エンバグ」と言わずに「(新しい)バグ」で済ませられる場合が多いです。

ここでは「副次的な効果としてのバグ(や性能低下)」という意図を出そうと side effect という語を用いましたが、単に "Be careful for new bugs." でも良いでしょう(もっとも、そうなると「バグに注意!」なんて当たり前の事を言われても…という気になりますが)。

また、2つめの例文について、regression は「過去にあった不具合の再発」を指す場合が多いので、新種の不具合も含むエンバグとは意味合いが異なる点に注意が必要です。原文の意図によっては正しくありません。

ちなみにこちらも "Make sure there is no new bug" でも良さそうですが、そんなことを make sure できたら苦労はしませんので、文章としての違和感が1文目よりも更に大きいように思います。no regression の make sure は regression test があれば可能だろう、という前提で書いています。

動詞として:この変更によってエンバグした

  • This change introduced a new bug.

もちろんシンプルに made(make) や created(create) でも間違いなく通じるので、それで全く問題はありません。

個人的に、「意図的に作った訳ではないのだけれど、どこかで作られていつのまにか入ってきていた」というニュアンスを感じるのでここでは introduce を使ってみています。

※「変更」としたので change を使っていますが、場合によって fix や commit に変えて下さい。

enbug の語源

最後に enbug の語源について。

元を辿れなかったので正確には不明です、という点をお断りしつつ、以下の2つの可能性のうちのどちらか、もしくは両方かなと思います。

  • バグを取り除く行為である debug との対比を意識して、同じく「de + 名詞」で成り立っている decode/encode や decrypt/encrypt のパターンに習った
  • encourage(励ます、勇気を与える) や entrust(信頼して託す)のように、「入れる」という意味合いを持つ接頭詞 en- を名詞の bug に加えた