Skip to content

母国語プログラミング

oraccha edited this page Jan 15, 2013 · 1 revision

OS/omicron の特徴の一つに日本語識別子,内部コードのフル2バイト(つまり2バイトの固定長)化が挙げられる.これによって制限の少ない日本語プログラミング環境を実現している.この利点を次に示す.

  • 仕様書とソースコードの対応が取りやすい.
  • 意味のある識別子名が利用できるので,不必要なコメントがなくなる.
  • 英語の識別子名を考えることによる,思考の中断がなくなる.
  • ソースコードをドキュメントとして読むことができる.

したがって,ソースコードの可読性が高く,保守に優れている.例えば,CAT の codegen などは好例であり,長年に渡って保守され,利用され続けている.このように母国語によってプログラミングすることは,大学環境において大規模ソフトウェアを開発する際に,非常に有効な手段である.

また,最近 Unix などの世界では,アプリケーションの日本語化(国際化)などが様々な機関や有志の手によって行われている.(Unix でもやってできないことはないが)OS/omicron では,文字コードの問題など,プログラマが煩わされることが少ないと言う点で,Unix/Windows に対して優位(アーキテクチャ的にきれい)であると言える.

  • WindowsNT や Plan9 などは内部コードに [Unicode] を採用している.

しかし,これはあくまで日本語だけを使うことを前提とすればと言う話であり,真の国際化ではない.国際化のアプローチとして次の三つが考えられる.母国語プログラミングとは L10n のことを指すが,OS/omicron で I18n,M17n を実現するにはどのような機構が必要だろうか?

また,OS,言語処理系,実行環境にとってどのようなサポートが必要なのだろうか?

  • L10n(Localization) . 英語以外の特定言語を扱えるようにすること.
  • [I18n] . 多くの言語を(環境変数などで切り替えて)使えるようにすること. localegettextなど.
  • M17n(Multilingualization) . 多くの言語を同時に扱えるようにすること.Muleなど.

意外な盲点だったのが,ネットワークプログラミングである. TCP/IP の世界では ASCII が標準なので,ネットワークアプリケーションではフル2バイトコードから ASCII へ変換する処理が必ず必要になる.このように内部コードは単一アーキテクチャ(OS)で閉じていれば,比較的簡単だが,オープンなシステムであるほど悩ましい問題になる.

UTF-8 は欧米圏の人間が最小限の痛みを伴うフォーマットだが,CJK な我々にとって本当に幸せなのか考えないといけないよなぁ.


CJKエリアとそれ以外で,公開するようなソフトウェアの開発数や,必要となるソフトウェアの数が大きく影響しているのかも.

本当に重要なソフトウェアなら,機械翻訳を使ってでもアクセスしてくるような気はする(そういうふうにしている人がいるらしい).

まずは,設計理由を理解してもらえる英語力.次に,設計理由を説明しても理解してもらうのは難しいとしたらコードを示して,それを先に広く公開する(ここでも英語が必要か)

しかし,ソフトウェアを公開して,議論できるくらい英語ができる人は,母語を使う理由をあまり見出していない気もする.

#大学でも技術英語教育は絶望的なので... --- Hayakawa


  • [http://www-vox.dj.kit.ac.jp/nishi/programming/comment.html どんなコメントをつければよいか] . 西本卓也氏が S.McConnell 氏の "Code Complete" におけるコメントの分類について説明している.
Clone this wiki locally