公開日:

システムエンジニア時代には難しかった「言語の壁」を超える道がみえた話

システムエンジニア時代には難しかった「言語の壁」を超える道がみえた話

この記事を読むのに必要な時間は約 5 分です。

人類500万年の間で最大の発明は何だと思いますか?飛行機?人工知能?

実は最大の発明は「言語」です。

普段生活する中では当たり前過ぎて特に意識することもないでしょう。しかし、あなた自身の日常生活もあなたの周りの方の生活も、言語なしでは成り立ちません。

言語にはいくつか種類があります。一番イメージしやすいのは日本語や英語といった「自然言語」です。人と人とがコミュニケーションするときによく使う言語でもあります。

次にシステムエンジニアがよく仕事上使う「プログラミング言語」です。これは人間がコンピュータに対して命令をするときに使う言語です。プログラミング言語自体はコンピュータが認識できるわけではないので、これはさらに機械語に変換され、最終的には「0」と「1」という2種類に変換されます。これはコンピュータの基礎部品である半導体が電気を流すか流さないかという2パターンで動作が変わることと関係しています。

3つ目は一般的な言語のイメージには含まれないかもしれませんが、「数学」です。数学における言語は数式ですね。数学者は数式を使ってコミュニケーションを取るそうです。

人間が使っている言語を大別すると上記3つの言語に分類されます。

私がシステムエンジニアをしていたときは、プログラミング言語の可能性をとても感じていました。大学で情報工学を学び、プログラミングを始めた当初、自分が好きなようにプログラムを書き、好きなような動作をさせることができる点をとても魅力的に感じました。

それもあって、「自分はシステムエンジニアとして、多くの人にとって便利なシステム・製品をつくる。」という想いを持ってシステムエンジニアになりました。

しかし、そこで待ち受けていたのは厳しい現実でした。システムエンジニアたちはプログラミング言語を使いこなすことに対してはそれなりに卓越している人たちが多くいるのですが、言語の壁は思わぬところにありました。それが「日本語」です。

普段当たり前のように使っている日本語を使って、システムエンジニアたちは関係者と仕様を調整したりしながら開発を行っていくのですが、この日本語というものは単語1つ取ってもそれを各人がどのように捉えるのかが違います。ましてや文章になると受け取り方も千差万別となります。

システムを作り終わった後になって「この動作は想定していたものと違う。」、「これは仕様ではなく不具合だ。」と喧嘩のような言い合いが起こることはよくあります。いくらプログラミング言語を活用して便利なものをつくったとしても、みんなにとって望むものとならないこともあることを知りました。

さらに、システムエンジニアたちに多い特徴としてコミュニケーション能力があまり高くない傾向にある点も難点でした。私も含めて無口や人見知りの人が多いので、コミュニケーションのずれを修正するのも一苦労です。

このように、プログラミング言語の進化によって、モノを変化させることはプログラミング言語が無かったときと比べると劇的にできるようになりました。しかし、それは普段の人間関係には使えませんでしたし、日本語だけでのコミュニケーションにも意思疎通に限界がありました。

私はこの言語の限界を、認識技術によって超える道を観ました。それが「イメージ言語」「イメージ模型言語」との出会いです。この言語は非常にシンプルな図・模型を使うのですが、応用範囲がとてつもなく広いのです。さらに日本語よりも細かいイメージを表現することができますし、日常のコミュニケーションにも活用できます。

イメージ言語の内容については、認識技術を学ぶ中で出てくるものですし、言語だけを共有しても使い道はわかりません。もし興味がある方がいらっしゃれば、ぜひ認識技術と出会ってみてください。