1. Dart 入門という検索語の裏にある本当の不安
Dart 入門で検索する人の多くは、次のどれかです。
・Flutterを始めたが、言語として信用していいか不安
・JavaScriptから逃げたい
・Kotlinほど重い設計は避けたい
つまり「楽そうだが、縛られそう」という感覚を持っています。
この直感は正しいです。
2. 言語は「書き方」ではなく「設計の拘束条件」である
ここが最も重要です。言語は開発者を助けるのではなく、逃げ道を塞ぎます。
・型を弱くする → 設計判断を人に任せる
・実行モデルを隠す → スケール時に壊れる
・フレームワーク前提 → 言語から降りられない
この観点で見ると、3言語はまったく別物です。
3. Dart が最初に固定してしまう設計レイヤー
Dartは導入初期から、次を固定します。
・実行モデル(シングルスレッド前提)
・UI主導のデータフロー
・フレームワークとの一体運用
特に重要なのはUIがドメインを支配する構造です。
Flutter + Dartでは、「UIが状態を持ち、状態がロジックを持つ」構造になりやすい。
これにより、
・ドメイン層の独立が難しい
・API分離が後付けになる
・テスト境界が曖昧になる
この時点で、バックエンド的思考は死にます。
4. JavaScriptが最後まで固定しない理由
JavaScript Framework - Project Structuring - RisingStack Engineering" />
JavaScriptは逆です。
・実行モデルは曖昧
・型は後付け
・設計は完全に人依存
これは欠点ではなく、逃げ道として機能します。
・フロントからバックへ移れる
・モノリスから分離できる
・言語を変えても資産が残る
JavaScriptが「汚い」のに生き残る理由は、設計の失敗を後から回収できるからです。
5. Kotlinが「人のミス」を前提に設計されている点

Kotlinは真逆です。
・null安全
・型による制約
・明示的な責務分離
Kotlinは開発者を信用していません。
その代わり、組織を信用しています。
・人が増える
・ルールが守られない
・設計が崩れる
それを前提に、言語側が止めに来ます。これは Dart にはありません。
6. 非同期・型・実行モデルの不可逆差

ここで重要なのは、Dartは「選ばせないが、守ってもくれない」点です。
7. 規模拡大時に起きる破壊点の違い
・Dart:UI層が肥大化し、設計が剥がせない
・JavaScript:設計が壊れるが、作り直せる
・Kotlin:初期が重いが、後で壊れにくい
Dartは中途半端な地点でロックインします。これが最大の問題です。
8. 言語選定で本当に比較すべき唯一の質問
「この言語で作ったものを、3年後に捨てられるか?」
・Dart:Flutter前提なら Yes、それ以外は No
・JavaScript:ほぼ常に Yes
・Kotlin:部分的に Yes
入門時に考えるべきは、学習コストではなく 撤退コスト です。
Dart 入門で本当に理解すべきなのは、Dartが「安全な中間解」ではないという事実です。DartはUI中心開発を高速化する代わりに、設計レイヤーを早期に固定し、後戻りを難しくします。JavaScriptは設計を壊しやすいが逃げ道を残し、Kotlinは初期の自由を奪う代わりに組織的な破綻を防ぎます。どの言語が良いかではなく、どの失敗を許容するかを選ぶ。それが、言語選定の正体です。



