はじめに

「MITライセンスなら知ってるよ」という開発者の方は多いでしょう。しかし、実はMITライセンスには複数のバリエーションが存在することをご存知でしょうか?今回は、MIT-0、Expat、MIT/X11といったMITライセンスファミリーの全体像と、それぞれの違いを解説します。

MITライセンスの基本については、以下の記事で詳しく解説しています:

MITライセンスファミリーの全体像

実は「MITライセンス」と一口に言っても、複数のバリエーションが存在します:

  1. MIT License(Expat) – 現在の標準版(最も一般的)
  2. MIT-0 – 著作権表示義務を撤廃した版
  3. MIT/X11 License – X Window System由来の歴史的バージョン

MIT License(Expat)vs MIT/X11:名前の混乱を整理する

なぜ「Expat」という名前?

多くの開発者が気づいていないことですが、私たちが普段「MITライセンス」と呼んでいるものは、正確には 「Expat License」 とも呼ばれます。

Expatとは:

  • James ClarkによるXMLパーサーライブラリの名前
  • このライブラリが採用していたライセンスが、現在の「標準MIT」
  • SPDXでは「MIT」と「Expat」を明確に区別している

MITという名前の問題点

なぜ混乱が生じたのか:

1. 複数のMITライセンスが存在した

  • マサチューセッツ工科大学は、歴史的に様々なライセンスを使用
  • X11プロジェクト、Kerberos、その他のプロジェクトでそれぞれ微妙に異なる
  • すべて「MITライセンス」と呼ばれていた

2. 「MIT License」は正式な商標ではない

  • 特定のライセンステキストを指す公式な名称ではなかった
  • 「MITが使っているライセンス」という曖昧な呼び方

3. Expatによる標準化

  • Expatライブラリが採用したライセンスが事実上の標準に
  • これを「Expat License」と呼ぶことで明確化
  • 現在のOpen Source InitiativeのMITライセンスもこれに基づく

MIT(Expat)とMIT/X11の違い

両者はほぼ同じですが、微妙な文言の違いがあります:

MIT/X11 License:

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software...

MIT (Expat) License:

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...

主な違い:

  • 改行位置やフォーマットの微妙な違い
  • 一部の接続詞の表現
  • 法的効果はほぼ同じ

実務上の扱い

SPDXでの識別:

SPDX-License-Identifier: MIT     // Expat版
SPDX-License-Identifier: X11     // X11版

結論:

  • 現代のプロジェクトでは単に「MIT」と書けば、Expat版を指す
  • 新規プロジェクトではX11版を使う理由はない
  • 既存のX11版プロジェクトも、実質的には互換性がある

MIT-0:著作権表示義務を撤廃した究極のシンプル版

MIT-0の誕生背景

MIT-0は2010年頃に提案され、2020年にOpen Source Initiativeに承認された比較的新しいライセンスです。「パブリックドメインに置きたいけど、法的な曖昧さは避けたい」というニーズに応えて作られました。

公式全文はMIT-0 License – SPDXで確認できます。

標準MITとの違い

標準MITから削除された部分:

- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.

この一文の削除により、利用者は著作権表示やライセンス条項を含める義務から解放されます。

MIT-0が適している場面

✅ MIT-0を選ぶべきケース

1. サンプルコード・チュートリアル

# 短いコードスニペット
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

2. 組み込みシステムでライセンス表示が困難

  • ROM容量の制約がある
  • 画面サイズが限定的(128×64のOLEDなど)
  • IoTデバイスでの利用

3. 小規模なユーティリティ関数

  • シェルスクリプトの1行ツール
  • 設定ファイルのテンプレート

MIT-0を避けるべきケース

1. ブランド認知を重視するプロジェクト

  • 著作権表示がないため、作者の認知度向上に貢献しない

2. 企業の法務部門が最新のOSI承認ライセンスを要求

  • MIT-0は2020年にOSI承認されたばかりで、企業によっては採用に慎重な場合がある

3. 本格的なライブラリ・フレームワーク

  • 貢献者の権利を明確にしたい場合は標準MITが適切

MIT-0の採用事例

AWS公式サンプルコード:

  • AWS SDKのサンプルコード
  • CloudFormationテンプレート例
  • 開発者が簡単にコピー&ペーストできるように配慮

MITライセンスバリエーション比較表

項目MIT (Expat)MIT-0MIT/X11
著作権表示義務必須不要必須
OSI承認✓ (2020年)
推奨度★★★★★★★★☆☆★☆☆☆☆
主な用途汎用サンプルコードレガシー

実務での選択ガイド

どのバリエーションを選ぶべきか

標準MIT License(Expat)を選ぶべき場合:

✓ 一般的なライブラリ・アプリケーション
✓ 著作権の帰属を明確にしたい
✓ 企業での採用を想定している
✓ 迷ったらこれを選べば間違いない

MIT-0を選ぶべき場合:

✓ サンプルコード・チュートリアル
✓ 小さなコードスニペット
✓ 組み込みシステムでライセンス表示が困難
✓ パブリックドメイン的な扱いを望む

MIT/X11は新規採用しない:

✗ 歴史的意義のみ
✗ 標準MITを使うべき

シナリオ別の推奨

シナリオ1:React用のカスタムフック

// useLocalStorage.js - 汎用的な小さなユーティリティ

推奨:MIT-0

理由:多くの開発者がコピー&ペーストで使う小さなコードのため

シナリオ2:本格的なUIコンポーネントライブラリ

// 数十のコンポーネント、数千行のコード

推奨:MIT License(標準)

理由:作者の権利を明確にし、ブランド認知も重視

よくある誤解

誤解1:「MIT-0はパブリックドメインと同じ」

誤り: 「MIT-0 = パブリックドメイン」

正解: MIT-0はライセンス(許諾)である

特徴:

  • 著作権は存在する(作者が保持)
  • 免責事項が有効
  • パブリックドメインが認められない法域でも機能

誤解2:「MIT-0なら著作権表示を完全に削除できる」

危険な誤解:

// 元の著作権表示を勝手に削除

正しい理解:

// 元の著作権は尊重
// Original: Copyright (c) 2024 Original Author
// SPDX-License-Identifier: MIT-0

MIT-0は「義務がない」だけで「削除していい」ではありません。元の著作者への敬意として、可能な限り帰属は示すべきです。

誤解3:「Expat」と「MIT」は別物

誤り: 「ExpatライセンスとMITライセンスは別のライセンス」

正解: Expat = MIT(現在の標準版)

  • SPDXでは区別しているが、法的には同じ
  • 「MIT」と書けば通常はExpat版を指す
  • 新規プロジェクトは単に「MIT」で問題ない

まとめ

MITライセンスファミリーには複数のバリエーションが存在しますが、実務では以下のように使い分けるのが適切です:

標準MIT License(Expat):

  • ほとんどのプロジェクトに最適
  • 迷ったらこれを選ぶ

MIT-0:

  • サンプルコード、チュートリアル
  • 組み込みシステムで表示制約がある場合

MIT/X11やその他の歴史的版:

  • 新規採用は非推奨
  • 既存プロジェクトの継承のみ

ライセンスの選択は慎重に行う必要がありますが、ほとんどの場合、標準MITライセンス(Expat版)を選択しておけば問題ありません。


この記事は一般的な情報提供を目的としており、法的アドバイスではありません。具体的な法的問題については、専門家にご相談ください。