179
144

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ライブラリの紹介文でよく見かけるけどいまいち意味が分からない英単語

Last updated at Posted at 2020-06-06

ライブラリの紹介ページや GitHub のリポジトリで登場する「割と見るけど意味はよくわからない単語」をまとめてみました
誤りがあればガンガン指摘してもらえると助かります

opinionated

意味をググると「[形容詞] 自説を固執する」という謎の和訳が出てきて理解を諦める方もいるんじゃないでしょうか
opinionated については色々な記事で紹介されています

プログラミングの文脈に落とし込むと「ライブラリやフレームワークが定義したやり方に利用者(プログラマ)を従わせるような◯◯」というようなニュアンスになります
このニュアンスを掴むと、和訳の「自説を固執する」というのもなんとなくしっくりくると思います

独裁的な意味に聞こえますが別に悪いことではなく、ライブラリが用意したやり方に沿ってコーディングすればいい感じになるよ、と言ったポジティブなニュアンスです

declarative

日本語では「宣言的」という意味です。これも Qiita に解説している記事があります

簡単に言うと「やりたいことをそのまま書けば実現できる・実現したい状態を記述すればライブラリがいい感じにしてくれる」というようなニュアンスになります
まだ抽象的で分かりづらいと思うので、雑で恣意的な例を出します

「Hello world」と書かれたボタンを作りたい場合、 declarative なライブラリであれば

<Button>Hello world</Button>

とすればボタンが作れます。 declarative の対義語である imperative (命令的)なライブラリであれば

// 座標 (0, 0) から (10, 10) に矩形を描く
drawRectangle(0, 0, 10, 10);
// 座標 (0, 5) を始点にして Hello world というテキストを描画する
drawText('Hello world', 0, 5);
// 座標 (0, 0) から (10, 10) をクリック可能な領域に設定する
setClickableArea(0, 0, 10, 10);

のように書く必要があります。一長一短あるのでどちらかが圧倒的に優れている、という訳ではないと思うのですが、最近は declarative なものが好まれている傾向にあるようです

pluggable

プラグイン等の拡張機能をユーザー側が自分で作成して、独自にライブラリやツールを拡張できるような場合に使われます

out-of-the-box

初期設定や面倒なセットアップ無しでインストールするだけで使えるような場合に使われます
ready-to-use も同義語です

-aware

「何かを理解している」「何かを知っている」という意味になります。これは具体例がないと分かりづらいと思うので「semgrep」というツールを紹介します

semgrep は紹介文に「syntax-aware semantic code pattern search for many languages: like grep」と書いてあります。
要約すると「syntax-aware grep」、つまり「構文を理解している grep」です
このツールがどのようなものなのかを知るとニュアンスが掴めるかもしれません

// file.js

function log(msg) {
  var el = document.querySelector(".log");
  el.innerHTML += "<p>" + msg + "</p>";
}

log("msg");

例えばこのような JavaScript コードがある場合、

semgrep --lang javascript --pattern '$ELEMENT.innerHTML' file.js

と実行すると「構文的に HTMLElement.innerHTML となっているような箇所」を探してくれます
今回 document.querySelector の返り値である HTMLElementel という変数に格納されていますが el.innerHTML は構文的には HTMLElement.innerHTML であるので、semgrep はこの部分を見つけ出してくれます

このように semgrep は構文を理解している grep、つまり syntax-aware grep と言えます

semgrep に興味がある方はここから今回紹介した例と同様のデモを試すことができます
https://semgrep.live/9ze

-agnostic

これも意味をググると詰む単語で上位にランクインすると思います。「agnostic 意味」でググってしまうと「不可知論者」という訳の分からない日本語が出てきます
プログラミングの文脈では「何かに依存しない」という意味になります
例えば implementation-agnostic と言えば「実装に依存しない◯◯」、framework-agnostic と言えば「フレームワークに依存しない◯◯」となります。他にも protocol-agnostic 「プロトコルに依存しない」であるとか OS-agnostic 「OS に依存しない」なんかがあります

Stack Overflow に同様の質問があります

おまけ: 使うとかっこいい単語

意味は分かるけどよくでてくるものもおまけで集めてみました。英語でライブラリを公開するときなんかに紹介文でこの単語を使っておけば多分かっこよくなります

割と自由に使っても許されそうな単語

powerful

作ったものがパワフルなときに使います。明確な基準は多分無いので自分がパワフルだと思ったら積極的に採用しましょう

elegant

デザインが優雅であるとか、処理が上品であるとか、何かしらエレガントであると思えるポイントがあるときは使えます

pragmatic

これもよく見ます。「実用的」という意味です。理想論ではなくて現実的に問題を解決している場合に使えそうです

effective

日本語にすると「効果的」です。何かしら手段が省けたり、少しの手間で大きなことが実現できたりする場合に使えそうです

straightforward

結構見かけますね。「わかりやすい」とか「単純である」とか、複雑でない場合に使えそうです

ある程度根拠が必要になる単語

flexible

設定を自由に変えることができるとか、特定のユースケースに固定されないとか柔軟な感じのときに使えます。その名前とは裏腹に powerful elegant ほど柔軟には使えなさそうです。理由を持って何が flexible なのか説明できるようになってから名乗ったほうが良さそうです

faster

既存のツールやライブラリと比較して実行や処理が速い場合に使えます。特に比べるものが無いけど速い場合は fast を使いましょう。ただ faster のほうがキャッチーな感じがするので仮想敵を見つけて faster とした方が良さそうです

lightweight

サイズが軽量であるとかメモリ使用量が少ないであるとか処理が軽量であるとか、何かしら軽いポイントがある場合に使えます。 faster と組み合わせるとかっこいいです

state-of-the-art

「最先端」という意味です。新しい仕組みや理論を採用したときに使うことで他のライブラリと一線を画すことができます

blazing

「燃えるような」という意味ですが、ニュアンスとしては強調表現として使われています。「とても速い」と言うときは very fast ではなく blazing fast と言うとかっこよくなります

おわりに

他にも「よく使われてるけど辞書で調べても意味が分かりにくい単語」や「よく使われていてなんとなくかっこいい単語」をご存知の方いたらぜひコメント欄で教えて下さい

それニュアンス違うんじゃない?って指摘もぜひお願いします

179
144
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
179
144

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?