京都コンピュータ学院創立25周年おめでとう御座います。創立の当初,微力ながら学院の活動に参画させて頂いたものの一人として心からお祝い申し上げます。私はその頃,アメリカでの6年余にわたる修業を終えて帰国したばかりでしたが,「京都ソフトウェア研究会」という名称で,ソフトウェア技術の普及に努められていた学院の先進性に大きな感銘を受けたものでした。その頃はまだ「ソフトウェア」という言葉を知っている人も極めて稀であるような有様で,学院もどちらかというと「寺小屋」という趣であり,設備も今では想像もできない程不充分なものでありましたが,それだけに教える側も教わる側も,この新しい技術にかける意気ごみには目を見張るものがありました。当時はまだ世の中に殆ど見当らなかったコンピュータ設備を求めて,今は亡き長谷川繁雄先生とあちこち走り回ったことも,今となってはなつかしい思い出であります。
さて,学院も今では我が国でも屈指のコンピュータ専門学校と発展し,数多くの新進気鋭のコンピュータ技術者を社会に送り出して我が国のコンピュータ技術の発展に大きな貢献をされているわけですが,この度はアメリカにボストン校を開設され,その活動も国際的レベルにまで拡げられました。私はかねがねコンピュータ技術の国際性という問題についていろいろ考えることが多かったのですが,それだけに,今度のボストン校開設はエポックメーキングな出来事で,今後の学院の発展に計り知れない程大きな影響を持つものであると考えます。コンピュータ技術というものが国際性を持つということは,当り前と云えば当り前ですが,少し掘り下げて考えますと,他の技術分野と異なり,多分に複雑な問題をはらんでおります。これを正しく認識し,適切に対処することが,我が国のコンピュータ技術の今後の発展における重要なキーポイントになるものと思われますので,ここで紙面を借りて少し述べさせて頂きたいと思います。
逆説めいた話になるが,コンピュータ技術には「非国際的」な面が多分にある。身近な例として,例えば,最近日本でよく出回っているパソコンのどれかをアメリカに持って行くとどうであろうか。結論的には,これらの機種はアメリカでは実用的な意味で受け入れられないのである。理由は簡単である。日本人用に設計されたパソコンはすべて日本語文(漢字,仮名などの文字)が扱えるようになっているわけであるが,そのために文字を2バイト単位で記憶するような機構が組込まれている(英語などの欧米語は1文字1バイトとして扱われる)。したがって,同じ型のOS(例えばMS/DOS)を用いても,日本語版では2バイト文字モードであるため,1バイト文字モードのOSとは互換性がなく,英語用に作成された種々アプリケーション・ソフトウェアを動かすことは出来ない。逆の場合(英語用のパソコンを日本に持って来た場合)も同じ問題が起る。云い換えると,コンピュータというものが,その土地で用いられる言語に依存して異なったものになってしまっているわけである。
1バイト文字か,2バイト文字か,という問題は単なる技術上の問題で,言語への依存性という程大げさなものではないという見方もないことはない。例えば,OSなどに1バイトモードと2バイトモードとの切換えスイッチを用意し,場合に応じて必要なモードを選択することも可能である(実際に,このような機種も現われている)。しかし,私の考えでは,言語の問題はこのレベルに止まらず,もっと深いところまで広がっているように思える。
コンピュータと言語の関係は非常に基本的なものである。これは,コンピュータが他の機械と異なり,「情報」を扱う機械であるという事実に起因する。情報にはいろいろな形態のもの(数値情報,画像情報等々)があるが,最も基本的なものは言語情報,それも文字で表現されたものであろう。コンピュータを操作するには多くの場合言語によって指示をする。例えば,画面の情報をすべて消去するときは Clear Screen(CLS)という英語を用い,編集し終わったデータなどをファイルとして保存したいときは,Saveという英語を用いる。さらに,プログラムを作成するときには,FORTRAN などのコンピュータ言語を用いるが,これなども英語の一種であると考えられる。FORTRAN など,単語の数も限られているので何もとり立てて英語であると考えるには及ばない,と云えないこともない。しかし私はあるとき,あるアメリカ人から「日本人のプログラマは日本語のFORTRAN を使うのか」という質問を受けたことがあった。その人はいわゆるコンピュータの専門家ではなかったのだが,それだけに,「FORTRAN は英語である」という常識的な考えを代表しているのではないかと思われる。コンピュータ言語の英語性については後で少し詳しく述べる。
コンピュータ技術はアメリカで生まれ,主として彼の地で発達してきた。したがって,その言語に関連した機能はすべて英語をベースとして考えられてきた(メモリの最小単位が1バイト,すなわち8ビットであるというのもアルファベット文字を扱うということが一つの理由である)。日本でも初期のコンピュータ利用者はすべてそのような英語ベースのコンピュータを相手にしてきた。ところが十年程前から,日本語(漢字,仮名)を扱う技術が確立し,コンピュータは日本語のメッセージを出し,日本語データも扱えるようになった。これは日本の情報処理分野にとって画期的なことである。コンピュータが情報(特に言語)を扱う機械である以上,日本において日本語が扱えないということは,ある意味では致命的とも云えるが,その障害が取除かれて,日本におけるコンピュータ利用の範囲が一段と拡大したわけである。このような日本語機能はその後も着実に強化され,日本人に適した機種が多く出回るようになり,コンピュータは益々身近なものになってきたのは衆知のとおりである。
ところが,見方を変えるとこれはコンピュータが日本化してきたということである。日本化するということは,先にも述べたように外国の(例えばアメリカ)のコンピュータとの互換性が薄れていくということになる。云い換えると,コンピュータ技術が進歩することの一つの結果として,それが国(正しくは言語)によって分化され,この傾向がさらに続くと,コンピュータは次第に土着化していくことになるということである。果してこれは望ましいことであろうか。
答はイエスであり,ノーでもある。日本の社会でコンピュータが本当に役に立つためには,秀れた日本語機能が不可欠であるので,その意味での日本化はどうしても必要である。ところが日本化の結果として外国機との互換性が薄れると,諸外国との技術交流が困難となり,うっかりすると日本のコンピュータ技術が孤立化する危険性もある。このような事態は避けたいものである。このジレンマはどうすれば克服できるであろうか。
ここに専門のコンピュータ技術者の重大な使命があるものと思われる。一般のコンピュータ利用者(非専門家)にとっては,使い易さということが第一であるので,充分に日本化されたコンピュータが必要である。ところが,専門家はそのようなコンピュータやソフトウェアを作ると同時に,外国との交流などを通じて技術を発展させねばならないので,外国語の,特に英語のコンピュータにも慣れておかねばならない。すなわち,日本語と英語のコンピュータの両刀使いが出来なければならないのである。英語のコンピュータを自由に駆使するためには,かなりのレベルの英語力が要求される。例えば,システムから出される種々のメッセージが理解できねばならないが,これはさ程難しいことではないであろう。しかし,コンピュータには付きもののぼう大なマニュアル類を読むということになると,これにはかなりの英語力が要求される。さらに,ソフトウェア技術の持つ基本的な英語性というものがあり,これは日本語用,英語用の区別なしに現われる問題である。これについて少し述べてみたいと思う。
コンピュータにさまざまな仕事をさせるにはプログラムを作らねばならないが,これはふつう種々のコンピュータ言語( FORTRAN,COBOL,PASCAL等々)で書かれる。ところが,これらの言語は英語をベースにしたものであるので,プログラミングという作業には英語的なセンスが要求されることになる。こういうと,多少なりともプログラミングの経験を持つ人から反論が出るかも知れない。FORTRAN などのコンピュータ言語が英語的であると云っても,それは極初歩的な部分であって,入門レベルの英語力があれば充分ではないか,と。確かに,これらのコンピュータ言語に現われる基本語は,do,if,while 等,数も限られ,意味も簡単であるので,取り立てて英語的なセンスなどというものは一見必要ないように思われる。しかし,この様なことが云えるのは,作ろうとしているプログラムが小さい場合に限られるのであって,大規模で複雑なプログラムを作る場合にはかなり事情が異なってくる。
詳細は避けるが,大規模なプログラムを作成するということは大変困難な作業である。ソフトウェア技術者はこの困難を克服するため,永年にわたっていろいろな技法,方法論を発展させてきた。このような技法,方法論は次第に体系化されて,今では「ソフトウェア工学」という新しい技術分野が形成されている。ソフトウェア工学ではプログラム開発に関する種々の指針が示されるが,その中でも,内容が明確であるようなプログラムの書き方が重要視され,そのためにはプログラムが読み易く(readability),形式的に整っている(structured)ことが不可欠とされている。この「読み易さ」,「形式」とはどういうものであろうか。それは英語としての「読み易さ」,「形式」ということである。
先ず「読み易さ」について考えてみる。既に述べたように,ふつうによく用いられるFORTRAN などのコンピュータ言語の基本語はifやdoなどのように,英語としては極めて簡単なものであるが,実際のプログラムではデータ(変数,ファイル)や手続き(サブルーチン,関数)に名前をつける必要がある。これらの名前は,ifやdoなどと一緒に現われてくるものであるので,読み易さということを強調すると,どうしても英語の名前になる。場合によってはこのような英語名は簡単に頭に浮ぶのである。例えば,「合計」をTOTAL ,「平均」をAVERAGE といった具合である。ところが,「国民総所得」,「国民平均所得」,となるとどうであろうか。今度はそう簡単に英語が出て来ない。一般にある程度以上のプログラムになると,いろいろな役割を持ったデータなどが何十,何百種類と出て来るが,これらに適切な英語名を付けるのは中々困難である。次善の策として一部また全部にローマ字の日本語名を付けるという方法もある(現実にもその方が多いようだ)が,それだとどうしてもちぐはぐにならざるを得ない。
このような名詞型の名前については日本語でもそれ程違和感はないが,論理型(述語型)の変数や関数に対しては,形容詞や動詞受身形の名前が必要になり,このようなものをifやwhile の後に続けると(英語として)自然で読み易い命令文が出来上る。ところが,逆にこの種の名前に日本語を用いると非常に不自然になってしまう。したがって,日本語名でおし通そうとすると,いきおい論理型の変数や関数を避ける傾向になり,ということは,論理型データという便利な機能をむざむざと遊ばせてしまうことになる。論理型の関数などはプログラムのモデュール化などに重要な役割を持つものである。
プログラムの形式(構造)に関して特に問題になるのは階層性であるが,この身近な例は繰返し操作などに現われるネスティング構造である。ネスティングにも一重のものだと別に問題はないが,二重,三重となると混乱しやすくなるものである。このような階層性を明確に,そして出来るだけ自然な形で表現するということがプログラミング作法上の一つの要件になっているが,これもかなり英語的なセンスが要求される。最近,FORTRAN など従来の「手続き型言語」の不便さを解消するものとして,「非手続き型言語」と云われるものがよく用いられるようになっているが,この種の言語は記述性,読み易さを重視して設計されたものであり,その結果として英語臭が非常に強くなっているので,これらの言語を駆使するためには,充分英語に慣れておく必要がある。
ソフトウェア技術の分野で英語というものが何故このような重要性を持っているのか,また,何故日本語でなくて英語なのか,という疑問が出て来る。この問に対する答として,先ず,度々述べたように,コンピュータは情報を扱う機械であり,また情報を与えられて働く機械であるということ,したがってそのような情報を表現するために何らかの言語が必要であるという基本的な事実である。そして,次に,このような言語のモデルとして英語が採用されたのは,コンピュータがアメリカを中心とする英語国で発展してきたという歴史的な原因による。それでは,英語の代りに日本語をベースとしたコンピュータ言語というものも可能ではないか,という提案も出て来る(この種の試みは現実にもいくつかなされている)が,私の考えではこれは非常に困難であると思われる。先ず,コンピュータ言語およびそれによるプログラミング技術というものが英語をベースとして永年の蓄積を持っているので,そのベース言語を日本語に切換えるということは,その蓄積を根底から再検討するという大事業になるからである。さらに,現行のコンピュータというものがどうも日本語の基本構造とうまく噛み合わないのではないか,と私には思われるからである。そして,仮にこの様な日本語ベースのコンピュータ言語が確立し,それに基づいて種々のソフトウェア開発を進めることが可能となったとしても,それは日本のソフトウェア技術の孤立化をまねく危険性をはらんでいる(コンピュータ言語の非互換性は,1バイト文字か,2バイト文字かという表層的な非互換性よりずっと深刻なものである)。
是非はともかく,現代の世界において英語は事実上の共通語として大多数の人々に認められており,政治,経済,学問,産業と,あらゆる分野での国際交流に不可欠なコミュニケーション手段となっている。ソフトウェア技術に英語的な性格が組込まれているという事実は,このような一般情勢が反映されていると見ることも出来よう。すなわち,英語ベースのプログラミング技術というものが,英語国,非英語国の区別なく世界中のソフトウェア技術者の共通資産として認められており,この傾向は今後とも続くものと思われる。
さて結論的に云うと,一方ではコンピュータの日本語機能は着実に強化され,一般の利用者にとってコンピュータは本当に身近なものになってきたわけであるが,反面,専門のコンピュータ技術者にとっては,その技術の最近の目ざましい発展にともなって英語の重要性は益々大きくなってきている。コンピュータ技術というものが,もともと強い国際性を持っている上に,技術そのものに英語という言語の特質が埋め込まれているという,他の分野には見られない特殊性が加わっている点からすると,ことは特に重大である。したがって,これからコンピュータ技術者を目指す若い人々は充分な英語力をつけ,世界各国のコンピュータ技術者に負けないよう頑張って頂きたいものである。 コンピュータは好きだけど英語はどうも,という人が案外多いが,これでは実力を充分発揮することは出来ない。技術的な能力と,語学力は相入れないのではないかという意見も時々耳にするが,そのようなことはあり得ないことである。強いて云えば,中学や高校を通じての受験英語の悪影響か,あるいは,理系・文系を必要以上に区別する行き過ぎた社会通念かに原因があるとしか思えない。このような偏見は是非ぬぐい去って頂きたいものである。
それが故に,創立25周年を迎えられた京都コンピュータ学院の新しい国際教育事業には大いなる期待を寄せるものである。