優雅な戦い:スクリプト言語における公開/非公開メンバのデザイン

2025-05-26

ファンタジーコンソールプロジェクトを構築している開発者が、スクリプト言語にモジュールシステムを追加することに苦戦しています。公開と非公開の宣言を区別するための様々なアプローチを検討しています。修飾子キーワード(Javaの`public`と`private`など)、修飾子セクション(C++など)、識別子内の記号(Pythonの下線など)、エクスポートマニフェスト(Schemeなど)、宣言における記号(Oberonの`*`など)などです。最終的に、宣言キーワードにアンダースコアを付けるという斬新な解決策に傾いています(例:`rec_`は非公開レコード、`def_`は非公開関数)。これは型破りですが、簡潔で、使用箇所に記号を繰り返す必要がないというメリットがあります。