増亚博—亚洲的中文娱乐平台之の「界面潮流」

「界面」=「インタフェース」。ユーザインタフェース研究の第一人者が、ユビキタス社会やインターフェース技术の动向を読み解く。

第20回 日本语でおk

2008年3月 3日

(これまでの増亚博—亚洲的中文娱乐平台之の「界面潮流」はこちら)

DOS(プロンプト)でもWindowsでもUnixでも英语のコマンドラインが利用されていますし、ほとんどの计算机プログラムやコマンドで“print”のような英単语や英语的な语顺が使われています。たとえば、ある値の平方根を计算して表示するプログラムをRubyで书くと

print sqrt(X)

のようになります。Rubyに限らずJavaでもCでも数式や表示の指示に関しては似たような形式が使われることが多いですが、これは

“display the square root of X”

のような英文をそのままの语顺で计算机言语に変换した形式になっていますし、“print”や“square”のような英単语がほぼそのままプログラミング言语で利用されていますから、この例では英语表现とプログラム表现はかなり类似しているといえます。

DOSやUnixのコマンドラインでもやはり同様の语顺が利用されています。たとえばabc.txtというテキストファイルの中身を并び替えて表示したい场合、Unixではsortというコマンドを使って

% sort abc.txt

のようなコマンドを発行します。この表现も、

“sort (the contents of) abc.txt”

のような英文表记と似た语顺と用语が使われていますから、このコマンドは英语的思考にもとづいているといえるでしょう。

一方、このような処理を日本语で表现する场合は

“xの平方根を表示する”
“abc.txtの内容をソートする”

のように全く逆の语顺になってしまうわけですが、英语的発想にもとづいたシステム上でプログラムを作成するときはこの顺番で考えず、英语の场合と同じように、目的语より先に动词を持ってくる思考を行なう必要があります。

■连続した処理の表现

単纯な计算や処理を行なう场合はこのような素直な英语的発想でプログラムを书けばいいのですが、いくつかの処理が连続する场合は英语的な语顺だとうまくいかない场合があります。前述の式をもう少し复雑にして、平方根の逆数を计算して表示したい场合は

print inv(sqrt(x))

のような式を使うのが普通ですが、処理がさらに连続する场合、後で実行する処理ほど前に记述しなければならないという问题が理解を困难にしてしまうことがあります。平方根を计算してからその逆数を计算して表示するという顺番なのに、全く逆の顺番でプログラムを书かなければならないというのは、英语的かもしれませんが合理的ではありません。

一方、Unixでは処理をする顺番にコマンドを右に并べていくことによって连続的な処理を実行させることが可能です。たとえば、あるテキストファイルのコメント行を削除してから并び替えたい场合、ファイルの中身を出力する“cat”コマンド及びパタンにマッチする部分だけを抽出する“grep”コマンドを利用して

% cat abc.txt | grep -v '^#' | sort

のように、処理をひとつずつ“|”で区切って右に并べられるようになっています。この表现法の场合、処理の顺番とコマンド并びの顺番は完全に一致しているので、実行の顺番について混乱することはありません。

Rubyのようなプログラム言语でも、前述のような関数表记を利用するかわりに、処理をピリオド记号で连结する表记を使うことによって、Unixのコマンドラインと同様に、処理を顺番に并べたプログラムを书くことができます。たとえば前述のプログラムの场合は

X.sqrt.inv.print

のように表现することが可能です。実行内容は全く同じですが、このように表记する场合は処理の顺番とプログラムの并びが一致するので、print inv(sqrt(x))のような表现よりは理解しやすいと思われます。

■日本语によるプログラム表现

このように、処理の顺番とプログラム要素の并びはなるべく一致していることが望ましいと思われますが、前述のような式は英语では简単に表现することができません。あえて顺番通りに记述しようとすると

calculate the square root of x, calculate the reciprocal of the result, and print the result

のようになってしまいますが、これはあまり明解な文章とはいえないでしょう。一方、日本语であれば

Xの平方根の逆数を印刷する

という具合に、処理の流れとプログラムの形式と日本语表现を同じ顺番で简洁に记述することができます。このように、実は日本语は计算机処理の记述にかなり适した言语であるということができそうです。

■日本语で本棚演算

第11回の记事で、本棚.orgに投稿されたデータを利用した「本棚演算」というデータマイニング手法について绍介しました。记事中では例として

  • 増井の本棚に含まれる本のリストを计算
  • その本リストに近い本を持つ本棚のリストを计算
  • そのような本棚の中に含まれている本を计算する

のような演算を绍介していますが、これは本棚や本の集合に対する演算を并べたものですから、日本语表记をほとんどそのまま计算机表现に変换することができます。たとえばRubyで表现すると、最初の例は

"増井".bookshelf.books

のような表记を使うことができますし、3行目まで连结したものは

"増井".shelves.books.similarbooks.shelves.books

のようなプログラムで表现できます。

このような性质を利用すると、本棚演算のようなちょっと面倒な计算についても、日本语文を作るのと同じ要领で计算式を作ることができるようになります。下の例では、「増井の本棚に内容が近い本棚に含まれる本のリストを计算する」という作业を日本语で表现することにより、それをダイレクトに计算机プログラムに変换して本棚演算を実行しています。

日本语表现では、计算结果を表现する名词や计算実行を表现する动词を自然に文末に配置することができるので、こういった连続処理をうまく连结して、常に日本语として正しい计算式を作ることができます。以下の例では、「増井の本棚」に类似する本棚(似た本を多く含む本棚)に登録されている本を集めて登録の多いものから顺に表示するというプログラムを、日本语表现を并べることにことによって作成しています。

enzan1.png

日本语で简単にプログラムを作れたらいいなぁと思うのは日本人としては自然なことであり、これまで様々な「日本语プログラミング」が提案されてきましたが、広く使われているものはほとんど无いようです。

日本语プログラミングといっても、“print”のようなキーワードを日本语にしただけではあまりメリットが感じられませんが、文の构造と计算机処理の流れを一致させやすいといった日本语特有の性质を充分活用すれば、普通の英语的なプログラミングよりも良い结果が得られる可能性があるでしょう。泛用プログラミング言语として日本语を使うことができなくても、本棚演算のような特定领域での利用には明らかに有用ですから、活用法を検讨する価値はありそうです。

フィードを登録する

前の记事

次の记事

増亚博—亚洲的中文娱乐平台之の「界面潮流」

プロフィール

1959年生まれ。ユーザインタフェース研究。POBox、QuickML、本棚.orgなどのシステムを开発。ソニーコンピュータサイエンス研究所、産业技术総合研究所、Apple Inc.など勤务を経て现在庆应义塾大学教授。着书に『インターフェイスの街角』などがある。

过去の记事

月间アーカイブ

ブログ一覧

  • Autopia
  • Compiler
  • Cut up Mac
  • Danger Room
  • Epicenter
  • from Wired Blogs
  • Gadget Lab
  • Intel International Science and Engineering Fair (Intel ISEF)
  • IPTVビジネスはどのようにデザインされるか
  • Listening Post
  • Web2.0时代の情报発信を考える
  • Wired Science
  • yah-manの「イマ、ウェブ、デザイン、セカイ」
  • yomoyomoの「情报共有の未来」
  • それは现场で起きている。
  • ガリレオの「Wired翻訳里话」
  • サービス工学で未来を创る
  • デザイン?テクノロジーによるサステナビリティの実现
  • デザイン?ビジュアライゼーションが変えるマーケティング?ワークフロー
  • マイケル?カネロスの「海外グリーンテック事情」
  • 佐々木俊尚の「ウィキノミクスモデルを追う」
  • 佐々木俊尚の「电脳ダイバーシティ」
  • 合原亮一の「科学と技术の将来展望」
  • 合原亮一の「电脳自然生活」
  • 増亚博—亚洲的中文娱乐平台之×LogMeIn
  • 増亚博—亚洲的中文娱乐平台之の「界面潮流」
  • 大谷和利の「General Gadgets」
  • 小山敦史の「食と人のチカラ」
  • 小岛寛之の「环境と経済と幸福の関系」
  • 小田中直树の「バック?トゥ?ザ?フューチャー」
  • 小田切博の「キャラクターのランドスケープ」
  • 山路达也の「エコ技术研究者に讯く」
  • 後藤和贵の「ウェブモンキーウォッチ」
  • 携帯大学 web分校
  • 木暮佑一の「ケータイ开国论II」
  • 木暮佑一の「ケータイ开国论」
  • 松浦晋也の「モビリティ?ビジョン」
  • 歌田明弘の「ネットと広告経済の行方」
  • 清田辰明の「Weekly image from flickr」
  • 渡辺保史の「コミュニケーションデザインの未来」
  • 滨野智史の「情报环境研究ノート」
  • 白田秀彰の「现実デバッグ」
  • 白田秀彰の「网言録」
  • 石井孝明の「温暖化とケイザイをめぐって」
  • 竹田茂の「构成的アプローチ」
  • 织田浩一の「ソーシャルメディアと広告テクノロジー」
  • 荒川曜子の「それはWeb调査から始まった」
  • 藤井敏彦の「CSRの本质」
  • 藤仓良の「冷静に考える环境问题」
  • 藤元健太郎の「フロントライン?ビズ」
  • 藤田郁雄の「サバイバル?インベストメント」
  • 西堀弥恵の「テクノロジーがもたらす快适な暮らし」
  • 関裕司の「サーチ?リテラシー」
  • 饭田泰之の「ソーシャル?サイエンス?ハック!」
  • 高森郁哉の「ArtとTechの明日が见たい」