プログラミング言語と自然言語
3年前にプログラミングを始めてからいくつかの異なるパラダイムに属するプログラミング言語にふれてきた。
これをあたりまえというか、驚くべきことというかは人によりけりだと思うが、同パラダイム内では概念をほとんど共有している。ひとつのプログラミング言語を学べば、そこで学んだ概念は異なるプログラミング言語にも適用できる。
例えば、PythonとRubyは少しの文法的差異を埋めればすぐにある程度のプログラムは書けてしまう。
しかし、パラダイムをまたぐと途端にそれは難しくなる。エキスパートなRubyプログラマでも、関数型言語を学んだことがなければHaskellで流暢にプログラム出来るようになるまでにそれなりに時間を要する。
ところで、自然言語でも似たように考えられるのではないかと思う。たとえば、英語と日本語は文法もかなり違い、これをJAVAとHaskellだとすると、日本語と漢字を共有し、英語と文法的に似ているといわれる中国語をScalaだと捉えることは出来ないだろうか。
すなわち、ネイティブ日本語スピーカーであり、英語もそこそこ話せる僕にとっての中国語は、エキスパートJAVAプログラマであり、週末にはHaskellでモナドモナドしてるあなたにとってのScalaでしかないのだ。
したがって中国語は簡単なはずである。どれほど簡単か試しに勉強してみようと思う。まずはfizzbuzzレベルを目指して。