1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI時代のライブラリファースト開発について語る

1
Last updated at Posted at 2026-08-31

本記事では、筆者が実践している「ライブラリファースト」という開発の考え方を紹介する。仕様にもっとも合った言語・ライブラリを選ぶことを、コーディングでもっとも重視する進め方だ。

AIの進歩で、コードそのものは無尽蔵に吐き出されるようになった。しかし「どの言語で書くか」「どのライブラリを使うか」という選択はまだ人間が判断する必要があると考えている。そしてこの選択は、AIが出力するコードの品質にも直結する。

この言語・ライブラリ・AIの関係は、住宅建築に例えるとわかりやすい。

言語は工務店、ライブラリは工法、アプリは家

lang-shops.png

建築 プログラミング
工務店 プログラミング言語(Python、JavaScript、Rust など)
工法 フレームワーク・ライブラリ(Django、React、Axum など)
作りたいアプリ
施主 あなた(人間)
仲介業者 AI

まず施主がどんな家を建てるか(仕様)を決め、それに最適な工務店(プログラミング言語)と工法(ライブラリ・フレームワーク)を選ぶ。AIは指示された工務店で建てる仲介業者だ。

選択はコストに直結する

言語もライブラリも、選択は結局コストの話だ。仕様に合ったものを選べば、コード量が減り、型でバグを事前に防げ、保守性も上がる。合わないものを選ぶと、同じものを作るのに余計なコードが増え、その分だけ品質を保つ手間も増える。

ライブラリファーストでAIの品質が上がる

家を建てるとき工法選びを重視するように、コードを書くときも工法(フレームワーク・ライブラリ)の選択をもっとも重視する。これが冒頭で触れたライブラリファーストだ。

仕様に合った工法を選ぶと、AIの思考がそれに沿い、考える幅が狭まってコーディングに集中できる。コード量自体も減る。

コードが少なければ、人間のメンテナンスコストが減るだけでなく、AIが把握すべき文脈も減って出力がぶれにくくなる。結果としてアプリの品質が上がる。

言語・ライブラリ選択はまだ人間が決めた方がいい

AIはプロンプトなしだとありきたりな選択に落ち着く習性がある。さらに言語やライブラリを選ぶ判断軸は多種多様で、用途・パフォーマンス・コード量・保守性・コミュニティの規模・更新頻度など、状況によって優先順位も揺れる。

こうした多様な判断軸を踏まえ、仕様にもっとも合った選択をするのは、まだまだ人間が決めた方がいい。

用途から選ぶ

作りたいもの 言語の候補
Webフロントエンド JavaScript / TypeScript
Webバックエンド JavaScript / TypeScript(Node.js)、Python
ターミナルで動くツール Rust、Go
データ分析・機械学習 Python
ちょっとしたスクリプト Python(uv)、シェルスクリプト

バックエンドはRust、フロントエンドはJavaScriptのように、役割ごとに別の言語を組み合わせることもある。どこをどの言語に振るかは、用途を理解している人間が決める。

ブラウザで動くWebアプリという家を建てたいとする。JavaScriptがブラウザと相性がよく、さらに型安全にして堅牢にしたいので工務店はその派生のTypeScript。コンポーネントベースでUIを構築したいので工法はReact、というふうになる。

データを集計・可視化するスクリプトという家を建てたいなら、工務店はPython、データ操作を少ないコードで表現したいので工法はpandasとmatplotlib、というふうになる。

Pythonは工法がもっとも豊富な工務店で、用途によって工法を変幻自在に使い分けられる。

ターミナルで画像表示できるツールという家を建てたいなら、速度とメモリ効率が要るので工務店はRust、ターミナルUIと画像描画を扱えるので工法はratatui、というふうになる。

依存ライブラリ込みで1ファイルとして配布できるスクリプトという家を建てたいなら、工務店はPython。工法はuvのshebang機能を使い、依存管理と実行を1ファイルに完結させる、というふうになる。

人間が押さえる部分と、AIに任せる部分

AI時代の役割分担はこう整理できる。

人間が判断する部分

  • 仕様レベルで何を作るか
  • どの言語を使うか
  • どのライブラリを土台にするか
  • テスト仕様
  • 最終成果物が要件を満たしているかの確認

AIに任せられる部分

  • 個々の関数やクラスの実装
  • 定型的なコードの記述
  • テストの実装

土台の選択まで任せて誤ると、用途に合わない言語やライブラリの上で作ることになる。後からの乗り換えでメンテナンスコストが上がる。この土台選びを人間が重視し、仕様にもっとも合った言語・ライブラリを選ぶ。これがライブラリファーストの実践だ。

まとめ

  • 言語を工務店、ライブラリを工法、アプリを家に例えると、施主(人間)が仕様を決め、AIが仲介業者として工務店に施工を取り次ぐ、という役割が見えてくる
  • 仕様に合った言語・ライブラリを選べばコード量が減り保守性が上がる。合わないものを選ぶとその逆で、選択はコストに直結する
  • 選んだ言語・ライブラリにAIの思考が沿い、コード量も減るため、AIの出力がぶれにくくなりアプリの品質が上がる
  • AIは指示なしだとありきたりな選択をする。多様な判断軸を踏まえ、仕様にもっとも合った選択をするのは、まだ人間の役割だ
  • 筆者はこの考えから、仕様にもっとも合った言語・ライブラリの選択を重視する「ライブラリファースト」を実践している
1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?