92,847,331
NullPointerException と throws 汚染の累計
COSMIC INDICTMENT · JAVA IS THE ENEMY
深刻度 70 以上の罪状はすべて展示へ。上のタブ「崩壊シミュ」では、 Java だけを学んだエンジニアが案件で精神崩壊していくターン制シミュレーションを遊べます。
92,847,331
NullPointerException と throws 汚染の累計
3,771,204,882
Spring 200行スタックトレースで空転
18,447
Maven nearest-wins が生んだ衝突
28.6%
IDE とアノテーションを開くたびに減少
来館 0 · 操作 0
EXHIBIT 01
参照型の既定が「存在しないかもしれない」。コンパイルは通る。テストは通ることがある。 本番の深夜にだけ、銀河が NullPointerException で裂ける。沈黙こそ第一の敵性。
宇宙崩壊度
46%
EXHIBIT 02
意図は「失敗を型で強制する」。結果はボイラープレート、空 catch、ラッパー地獄。 多くの文明が unchecked へ逃げ、checked は儀式と嘘の両方を量産する。
シグネチャ汚染度
22%
public byte[] readConfig(Path path) throws IOException {
return Files.readAllBytes(path);
}
public void boot(Path path) throws IOException {
byte[] raw = readConfig(path);
apply(raw);
}表面的な正しさ
まだ booting 前。checked のコストは呼び出しグラフが広がった瞬間に露呈する。
EXHIBIT 03
1機能に必要な意味は数行。しかし宇宙法(層・アノテーション・生成器)が その周囲に惑星系を強制する。「正しい企業構造」の快感が、認知の重力井戸になる。
意味のあるコード
12
儀式の総行数
133
苦痛倍率
×11
EXHIBIT 04
「正しいアーキテクチャの快感」のために層とアノテーションが積み上がる。 儀式スライダーを動かして、10年後のコスト曲線を観察してください。
企業儀式(アノテーション・層・抽象)を最大化するほど、後年の宇宙税と AI 浪費が指数的に膨らむ。宇宙の敵は「正しさの快感」から生まれる。
EXHIBIT 05
依存はグラフなのに、解決はしばしば「最短経路・nearest-wins」の恣意。javax と jakarta が同居し、 Jackson の版が黙ってすり替わり、ビルドは緑のまま本番で NoSuchMethodException が銀河を裂く。
6
2
表面的には動いている。JAR Hell の種は既に仕込まれている。
EXHIBIT 06
本物の原因は1行。残りは Spring CGLIB・AOP・Tomcat の宇宙塵。 ログだけ渡しても、ソースを渡しても、最上位モデルでも——知能は空転する。 これが「宇宙の敵」の核心:外部知能を構造的に浪費する装置であること。
ボタンを押すと、Java の失敗モードがいかに外部知能を空転させるかを再現します。
EXHIBIT 07 · LOG DOCTRINE
フレームワーク層がスタックを汚染する。汚染が怖いから文化はログを握りつぶす。 その握りつぶしが悪いクセとして定着し、無差別攻撃の時代には隠蔽より大きなリスクになる。 出ていれば早期発見で直せるのに、思想の副作用で観測が殺される。
漏洩度
8%
修復可能性
4%
攻撃到達
93%
MTTR悪化
96%
握りつぶしクセ
98%
ネット実リスク
94%
STEP 1
層がログを汚す
AOP・Filter・CGLIB・JDBC がスタックに乗る。原因1行の横に内部地図と接続の影が並ぶ。
STEP 2
教義が生まれる
『危険だから表に出すな』。秘密と座標を区別せず、ログごと握りつぶすのが正しい顔になる。
STEP 3
悪いクセが定着
本番で握りつぶす → 開発でも握りつぶす → 他言語・他現場にも同じクセを持ち込む。観測不全が人格化する。
STEP 4
無差別時代に破綻
攻撃は山ほど来る。隠蔽しても殴られる。消えたのは攻撃ではなく、早期発見と修復だけ。
因果: Java の層構造思想 → ログが脆弱性カタログ化 → 「表に出すな」教義 →ログを握りつぶす悪いクセ。クセは現場を超えて伝染する。攻撃は無差別に来るから、握りつぶしは負け戦略。
// Java 思想が育てる悪いクセ // 層がログを汚す → 「危険」→ ログを握りつぶす // 握りつぶしが習慣になり、観測不全が「プロの作法」になる HTTP 500 Internal Server Error (Please contact the system administrator.) scanner bots: /wp-admin 404 /.env 404 /actuator/env 401 /api/v1/payment 500 ← 原因不明のまま連続ヒット /api/v1/payment 500 — 無差別スキャンは止まらない。握りつぶしても殴られる。 — クセだけが残り、早期発見は死ぬ。
層が混ぜるもの(分離せよ)
つまり: Java の思想(厚い層・企業運用・「表に出すな」)のせいで、ログを握りつぶす悪いクセがつく。クセは安全ではない。無差別攻撃下では、出ていれば直せる失敗を長く残す装置になる。 フォーカス: 内部パッケージ地図 — クセの本丸。握りつぶし度 98%。
EXHIBIT 08 · TOTAL FRAMEWORK HATE
Java / Spring の層・魔法・握りつぶし・売り逃げ可能な表向きを経験したあと、嫌悪は固有名詞を超える。フレームワークというカテゴリ全体が敵になる。軽い箱も、他言語の箱も、Spring 臭が少しでもすれば同じ袋で拒絶される。
総 FW 嫌悪
38%
カテゴリ崩壊
28%
| Java 圏の一次体験 | 一般化された嫌悪 |
|---|---|
| Spring の魔法 | 『フレームワーク=制御の喪失』 |
| 140行スタック | 『FW は読むな・触るな』 |
| 握りつぶしログ | 『観測できない箱は全部嫌い』 |
| 売り逃げできる表向き | 『儀式の箱は信用しない』 |
| Nest/Angular の Spring 臭 | 言語が違っても同じ袋で拒絶 |
| 繰り返しの苦痛 | ありとあらゆるフレームワークが嫌い |
公開ソースの声
Hacker News · 2023
“When I code in the JVM, I feel like I fight my frameworks and libraries more often than writing actual code. Looking at you in particular, Spring Boot. I had similar experiences in C#.NET and Python…”
JVM 起点 → 他言語でも『FW と戦う』感覚が残る
ソースを開く結論: Java の思想は、個別の Spring 嫌悪で終わらない。 層・握りつぶし・売り逃げ可能な表向きを通じて、ありとあらゆるフレームワークへの嫌悪を学習させる。それが交差言語で観測できる輸出物である。
EXHIBIT 09 · SHIP & FLEE
コンパイルが通り、起動し、200 が返れば「異常なし」。 実行時まで沈黙する失敗、層に埋もれた因果、握りつぶされたログ—— これらが揃うと、表向きさえ綺麗なら納品して逃げられるという企業儀式が成立する。それが Java 圏で再生産される思想である。
表向き健全
100%
埋没リスク
18%
売り逃げ度
0%
表向き(検収・デモ・監視の浅い面)
型は揃った。緑のチェック。
ここだけ見ると「異常なし」。売り逃げの合法面はいつもここにある。
埋没側(実行時・層・握りつぶしログ)
NPE も設定ミスもまだ沈黙。実行時まで嘘はバレない。
思想は言う: 表が静かなら出荷してよい。後で壊れるのは運用と宇宙の問題。
接続: 実行時まで沈黙する失敗 × フレームワーク塵のスタック × ログ握りつぶしの悪いクセ =表向き異常がなければ作りっぱなしで売り逃げできる。Java の思想は「正しさの証明」より「検収面の静かさ」を最適化しやすい。
EXHIBIT 15 · ANNOTATION MAGIC
「Spring is a flow-of-control obfuscation framework」系の議論が示す通り、 制御の流れがアノテーションと proxy に消え、コンパイル成功が安全性の錯覚になる。 売り逃げと AI 浪費の共通燃料。
表向きの約束
@Transactional
付けたメソッドは常にトランザクション
javac: SUCCESS
実行時の真実
self-invocation では効かない。proxy 境界の外から呼ばないと嘘になる。
EXHIBIT 10
言語が自分の構造を人間に直接見せることをやめた結果、理解の窓口が IDE とビルドツールに外部化された。 ツールは増え、置き換わり、互いに相容れない。敵性は「道具なしでは生存不能」という依存構造にある。
JDK
本体の版戦争
Maven
XML で宇宙を解決
Gradle
別の正解(Groovy/Kotlin)
IntelliJ
なければ暗黒物質
SEVERITY ≥ 70 · FULL EXHIBITS
EXHIBIT 14 · CARGO CULT LAYERS
検索でも「なぜコンストラクタで済むのに Factory か」「DTO 地獄」は定番。 パターン名を並べることが設計だと錯覚し、ビジネスの一行が層の奥に消える。 表向きはきれいなパッケージ図——中身は売り逃げ可能な儀式。
EXHIBIT · SEV 91 · SUPPLY CHAIN
便利な共通層が推移的依存の奥に潜む。Log4Shell / Spring4Shell は「誰も直接書いていないコード」が 文明の攻撃面になる構造を露呈した。深刻度 91。
文明曝露
62%
EXHIBIT 12 · COMPATIBILITY TAX
検索で繰り返し出る罪状。後方互換を聖域にしながら、エコシステム規模の パッケージ断裂を一度に強いる。Spring Boot 3 移行が企業の半年を溶かす。
文明税
15%
javax.* の永遠: 何十年も「標準」だった名前空間。後方互換が聖域になる。
EXHIBIT · SEV 85 · COMPAT HANDCUFFS
「安定」の名の長期債務。null・型消去・死なない API・改名政治。 それぞれ単独でも重い。重なると設計の自由度が手錠になる。深刻度 85。
長期債務
100%
EXHIBIT · SEV 80 · JVM / FOOTPRINT TAX
長いコールドスタート、高い常駐、予測しづらい GC ポーズ。 サーバレスや短命プロセスでは構造的不利。「一度温まれば速い」は逃げ台詞になりやすい。深刻度 80。
サービス数
12
推定メモリ
7.6 GB
≈ 650 MB/サービス
コールドスタート
4.8 s
風刺モデル
雲への月次税(相対)
456
GC ポーズ感度 +12ms 級
「本番準備完了」の既定値が RAM と起動時間を先に確保する。売り逃げ後の請求書はクラウドにある。
EXHIBIT · SEV 78 · TYPE ERASURE
後方互換のための 2004 年の妥協が今も残る。ジェネリクスはコンパイルで消え、実行時は raw と 自動挿入キャスト。リフレクションでは型パラメータが取れない。深刻度 78。
型安全の看板
90%
実行時の嘘
25%
// ソース(コンパイル時)
List<String> names = new ArrayList<>();
names.add("cosmos");
String s = names.get(0);// まだ「型がある」フリの時間帯 // javac が守ってくれる……今だけ
看板は綺麗。消去ボタンを押すと、ジェネリクスが半分だけの約束だと分かる。
EXHIBIT · SEV 76 · GOVERNANCE
技術的必然より政治と商標が生態系コストを決める局面が続く。 開発者のキーボードの外で、文明税が確定する。深刻度 76。
政治コスト
40%
商標と名前の制約
Java / javax を巡る権利が、技術的リネームを政治問題に変える。
Java EE → Jakarta EE
移管そのものは合理でも、パッケージ断裂コストは利用側が払う。
版とサポートの迷宮
どの LTS が『社内標準』かで、機能とセキュリティ修正の速度が決まる。
配布ベンダの割拠
同じ言語でもビルド・サポート契約が企業調達の儀式になる。
政治コストが上がっても、業務ロジックの1行は増えない——増えるのは移行と会議だけ。
EXHIBIT · SEV 74 · RESOURCE ASYMMETRY
ヒープは回収される。JDBC・ファイル・ソケットは手動。閉じ忘れは実行時まで静かで、 表向き 200 のままプールが枯渇する。売り逃げ思想と相性が悪い。深刻度 74。
接続プール残
20
リークレート
25%
ヒープ
GC がいつか回収
タイミングは保証されない
JDBC / ファイル
close() を忘れている
手動解放が正史
表向き
HTTP 200 · 検収OK
EXHIBIT · SEV 72 · WORA MYTH
「一度書けばどこでも動く」は標語として強い。現実は JVM 差・ネイティブ・版・コンテナ境界で デバッグが各地に複製される。深刻度 72。
WORA 信仰
78%
デバッグ税
24%
プラットフォームを追加するほど信仰は削れ、デバッグ税が上がる。 書き直しではなく、同じバグの地方巡業が始まる。
CHARGE CATALOG · SEV≥70 COMPLETE
18 件すべてに対応するインタラクティブ展示がある。フィルタで深刻度帯を切れる。
SEV≥70 展示
18/18
本館展示済 · 深刻度 96
これだけ教え、Java だけ戦い、学び直さない人間を量産する。
EXHIBIT 11 · WORST SPECIMEN
言語そのものより危険なのは、「これだけを教育され、Java だけを武器にして戦おうとし、新たに学習しようとしない」人間のほうである。売り逃げ思想と単一武器が重なると、文明は同じ崖を量産する。
文明脅威度
75%
標本の類型
選択中: カリキュラム単一培養
戦場シミュレータ
Java だけ
Spring Boot を立ち上げ、DTO を8枚書き、明日の朝までビルド中。
新たに学ぶ
適切な軽量言語で30分。終わって寝る。
FINAL VERDICT · COSMIC COURT
徹底捜索の結果、罪状は増えた。表向きの静かさと、カテゴリ全体への嫌悪と、改名と供給連鎖まで。
有罪確度
100%
判決: 宇宙の敵。捜索の結果、罪状は足りていた——足りないのは反省だけ。
GUEST BOOK · COSMIC WITNESS
アカウント連携後に書き込めます。Java=宇宙の敵、単一武器教育への告発・共感・反論を残してください。