概要
- コードフォーマット問題 は1980年代に既に解決されていた事実
- Ada開発環境Rational R1000 の先進的機能紹介
- DIANA IR によるテキストソース非保存方式
- 現在でも フォーマット論争が続く現状 への疑問提起
- 参考文献リンクとさらなる考察
コードフォーマット問題の歴史とAdaの先進性
- コードフォーマット に関する議論は、実は 1980年代 に既に解決済みの課題
- 高校時代の Mr. Paige (Adaコンパイラ開発経験者)による指摘
- Ada開発環境 では、テキストソースを保存せず DIANA(Descriptive Intermediate Attributed Notation for Ada) という中間表現を利用
- 各開発者が 好みの整形設定 でコード閲覧可能な仕組み
- Rational R1000 ワークステーションの特徴
- インクリメンタルコンパイル
- セマンティック解析
- バージョン管理
- 統合デバッグ機能
- Xerox Alto のようなワークステーションだが、Smalltalkではなく Ada を利用
DIANAとR1000の革新性
- R1000 ではテキストソースを保存せず、 DIANA 形式でプログラムを管理
- コンパイラとIDE がDIANAを直接理解し、任意の整形で表示可能
- スペースとタブ による整形の違いが無意味化
- プログラムツリー直接編集 (現代でいう projectional editing)
- Grady Booch による要約
- 「R1000は事実上DIANAマシンだった。ソースコードはDIANAツリーの整形表示に過ぎなかった」
- フォーマット論争やlinter問題 が発生しない開発環境
DIANA利用の追加メリット
- ハードウェアアクセラレーション によるDIANA処理
- インクリメンタルコンパイル (強い型付け言語では当時画期的)
- 容易なリファクタリング ("refactoring"という言葉が生まれる前)
- 高速な統合 (大規模Adaシステム開発に必須)
現代との比較と課題意識
- 現在では ハードウェアアクセラレーション は不要、 リファクタリングツール も進化
- しかし フォーマット問題 ではむしろ後退
- projectional editing やライブ環境の普及は進まず
- 現代の開発パラダイム に合った新しい解決策の模索が必要
参考文献・さらなる情報
- Experiences with Code Generation (1985)
- https://www2.eecs.berkeley.edu/Pubs/TechRpts/1985/CSD-85-249.pdf
- Ada Compiler Validation Summary Report: Rational Environment (1985)
- https://apps.dtic.mil/sti/tr/pdf/ADA157830.pdf
- Grady Booch’s blog post about the 5th anniversary on Rational's acquisition (2008)
- https://web.archive.org/web/20160304051102/https://www.ibm.com/developerworks/community/blogs/gradybooch/entry/rational_anniversary?lang=en#pagePlaceBar