INTERACTIVE INDICTMENT

Python がいかに非生産的で、人間を苦しめ、 AI を無駄にし、世界の敵であるか

これはチュートリアルではない。書く快感の裏で積み上がる運用税、壊れた空白、 嘘のパッケージ名、ログに沈黙する失敗、そして空転する知能—— それらを手で壊し、測り、告発するための博物館です。

人類が失った時間(時間)

IndentationError を直している累計

無駄にされた AI トークン

ログだけ渡してトンチンカンを生成

意味不明な依存パッケージ

import 名と配布名が一致しない件数

残存正気度

専用ツールを開くたびに減少

EXHIBIT 01

インデント罠 — 空白がセマンティクス

括弧を捨て、見えない空白に構造を預けた設計。多くのフロントエンド・メール・コピー経路は その空白を「意味のないゴミ」として破壊します。

構造破壊度

0%

構造はまだ保たれている

EXHIBIT 02

書く快感 vs 運用税

「書く瞬間の快感」のために設計され、その快感を最大化する方向へ破壊的変更が繰り返される。 快感スライダーを動かして、10年後のコスト曲線を観察してください。

10年後の運用税207
AI 浪費指数1799
残る快感22

書く快感を最大化するほど、後年の運用税と AI 浪費が指数的に膨らむ。

EXHIBIT 03

依存地獄 — 名前すら嘘

インストール名と import 名が違う。同一ライブラリの複数バージョンは同居できない。 後方互換を語りながら、解決不能な依存グラフを量産する。

apprequestsPILcv2yamlbs4sklearnattrgoogle.protobufnumpy
install ≠ import

7

  • pillow→ PIL
  • opencv-python→ cv2
  • PyYAML→ yaml
  • beautifulsoup4→ bs4
  • scikit-learn→ sklearn
衝突ノード

2

表面的には動いている。名前の嘘は既に仕込まれている。

EXHIBIT 04

AI 浪費シミュレータ

ログを見てもどこが壊れたかわからない。ソースを渡しても無限ループでさらに壊す。 最先端モデルに投げても制限に吸い込まれ、知能そのものが無駄になる。

エラーログ(観測窓)
AI 出力浪費トークン 0
ボタンを押すと、Python の失敗モードがいかに外部知能を空転させるかを再現します。

EXHIBIT 05

専用ツール群 — なければ不明、あっても狂気

言語が自分の構造を人間に直接見せることをやめた結果、理解の窓口がツールに外部化された。 ツールは増え、置き換わり、互いに相容れない。

混乱度 33%
  • pip

    入れたつもり

  • venv

    隔離したつもり

  • virtualenv

    別の隔離

  • pyenv

    本体の版

EXHIBIT 06

可変デフォルト引数 — 定義時に一度だけ

「書くのが短い」ために、デフォルト値が関数定義時に一度だけ評価される。 その結果、list / dict が呼び出しをまたいで共有され、見た目と意味が乖離する。 熟練者ですら踏み抜く、言語仕様のフットガン。

共有 list の長さ

0

問題のコード

def append_item(item, lst=[]):   # 定義時に list が1回だけ生成
    lst.append(item)
    return lst

append_item("a")  # ['a']
append_item("b")  # ['a', 'b']  ← 別呼び出しなのに共有
append_item("c")  # ['a', 'b', 'c']

呼び出しログ(戻り値)

「呼ぶ」を押すたびに、Python が返す list をここに積みます。 罠モードでは、別呼び出しなのに中身が残ります。

EXHIBIT 07

GIL — 並列性の虚偽広告

CPython の Global Interpreter Lock は、同時に Python バイトコードを実行できるスレッドを 実質1本に制限する。スレッドを4本にしても、CPU バウンドな仕事はほぼ1コアで順番待ち。 「並列」と書いて「直列」と読む。

経過時間

0.00s

スレッド

スレッド進捗

  • Thread-10%
  • Thread-20%
  • Thread-30%
  • Thread-40%
論理コア使用(模式)
Core 0idle
Core 1idle
Core 2idle
Core 3idle

GIL 下では純粋 Python の CPU 仕事が Core 0 に集中。他コアは暇。

3.13〜3.14 で free-threaded ビルドが現実味を帯びても、生態系(拡張モジュール・慣習・デプロイ)が 追いつくまで「スレッド=並列」という広告は嘘のままだった。何十年分のワークアラウンド税は戻ってこない。

EXHIBIT 08

例外の沈黙

EAFP の裏側。夜間バッチは緑のまま終わる。壊れたのは単価で、届いたのは請求書。 例外を握ると、人間にも AI にも「どこが壊れたか」が残らない。

沈黙度

—

try:
    recalculate_price(sku)
except Exception:
    pass
send_invoice(sku)   # 昨日の単価のまま

方針を選んでバッチを回すと、緑の完了と実際の損害が並びます。

EXHIBIT 09

型は飾りである

注釈は関数の辞書に入るだけで、呼び出しは止めない。静的チェックは別プロセス。 実行結果は注釈の戻り値と食い違うことがある。

注釈の無力さ

—

def charge(user_id: int, amount: float) -> dict[str, int]:
    return user_id + amount   # 注釈はここを見ない

charge(42, 19.5)
user_id: int
amount: float

引数を選んで呼び出すと、注釈と実行結果のズレが出ます。

EXHIBIT 10

2→3 強制移住

後方非互換を一度に配り、業界に移行税を請求した。2to3 は括弧を足す。 割り算の意味が変わるところは、緑のテストのまま残る。

移行税

0.0人年

残件 6

赤はまだ Python 2緑は直した差分

def settle(items, total):
    print "tax", total
    for i in xrange(len(items)):
        try:
            total += items.keys()[0] / 2
        except ValueError, e:
            print(e)
    name = "請求"
    if isinstance(name, unicode):
        print(name)
    return total
  • print 文

    2to3 対象

    print "tax", total

    SyntaxError: Missing parentheses in call to 'print'

  • xrange

    2to3 対象

    xrange(len(items))

    NameError: name 'xrange' is not defined

  • except E, e

    2to3 対象

    except ValueError, e:

    SyntaxError: invalid syntax

  • unicode 型

    手作業

    isinstance(name, unicode)

    NameError: name 'unicode' is not defined

  • dict.keys()[0]

    手作業

    items.keys()[0]

    TypeError: 'dict_keys' object is not subscriptable

  • 整数の /

    手作業

    / 2 # Python 2 では 2

    5 / 2 が 2 ではなく 2.5。テストは緑のまま金額が変わる

EXHIBIT 11

プロトタイプが本番になる

書き始めの速さで採用される。書き換えコストは後年から請求される。 出口は、入ったときにはもう見積の中にある。

閉じ込め度

0%

書き直し 0.5 日

金曜の夜翌週翌月半年後二年後
rows = open("in.csv").read().split("\n")
print rows[0].split(",")[0]

金曜の夜

動いた。共有したくなる速さがある。

テストはない。仕様は作者の頭の中だけ。

30 行 · 書き直し見積 0.5 日

FINAL VERDICT

告発の確定

展示と設計思想調査に基づく 14 件の罪状。 チェックを外して「弁護」してみても、構造は残る。

有罪確度

100%

14 / 14 認定

判決をXでシェア

判決: 書くのが楽しいだけのカス言語。ただしその楽しさは、他者の時間と AI の知能を燃料にしている。

GUEST BOOK

来館者掲示板

アカウント連携後に書き込めます。Python への告発・共感・反論を残してください。

掲示板ページへ