あまのじゃくスタックの定義
- 主流技術ではなく、あえて代替技術を選ぶ開発哲学
- 定番スタックの対義概念として、著者が名付けたもの
- 著者の選択:
- Ruby: Rails → Sinatra + DataMapper
- JavaScript: Prototype → MooTools
- Python: Django → Werkzeug + SQLAlchemy
- 現在: React/Next.js → Solid/SolidStart
あまのじゃくスタックの困難がもたらした成長
- Stack Overflow に答えがなく、ソースコードを直接分析 → 技術への深い理解
- ユーザー層が少なくコミュニティ支援も乏しい → オープンソース貢献者へと成長し、PR マージの達成感
- 著者の経験:
- Werkzeug の抽象化の低さ → インハウスフレームワークを構築する力を獲得
- 「無駄足」とも呼ばれる過程 → どのスタックでも活用できる根本的な知識
- 利点: 問題解決の過程で得られる深い技術的洞察
後発技術の利点
- 定番スタックの問題点を認識し、改善した設計を経験できる
- 例: Solid の fine-grained reactivity(React の仮想 DOM オーバーヘッドを回避)
- 意外な利点: 技術の「なぜ」を理解し、よりよいアーキテクチャ設計の感覚を身につける
組み立て式スタックの隠れた価値
- 定番スタック: 便利な総合ギフトセット
- Rails(CoC), Django(Batteries Included), Next.js(フルスタック)
- あまのじゃくスタック: 部品ごとに選んで手動で組み立てる
- 著者の事例: Sinatra + DataMapper + Haml + Sass
- 各部品の設定やミドルウェア接続の骨の折れる作業
- 利点: 技術の内部動作原理とレイヤー間の相互作用を完全に理解できる
歴史的な教訓
- 今日の定番も、かつてはあまのじゃく(Rails は Java の代替、React は Backbone.js の代替)
- 利点: 未来の主流技術を先に体験し、理解する先駆者の立場
LLM 時代の逆説的な機会
- 定番スタックの優位はさらに強まる(ChatGPT は Next.js に習熟している一方、SolidStart には不慣れ)
- 利点: LLM が苦手な領域での専門性が、より差別化された競争力になる
- フレームワーク利用者ではなく、真のエンジニアへ成長する道筋
2件のコメント
SQLAlchemyが天邪鬼だと思ったことは一度もなかったので、珍しいですね
たぶん SA というより Werkzeug を見て言われたのではないかと思います。普通は Flask や FastAPI を使いますからね。ORM まで逆張りするのはなかなか難しいです。