言語は私たちが世界を認識し、整理する方法に影響を与えます。これは言語相対性という概念として研究されています。言語によって情報のエンコード方法が異なり、注意、記憶、解釈の仕方に影響を与えることがあります。言語構造は、時間・空間・社会的関係といった抽象的な概念をどのように処理するかにも影響します。例えば、文字の向きが異なるアルファベットとアラビア語を読むことは、時間を頭の中でどう並べるかに影響を与えることがあります。子どもの頃、漫画を読み始めたとき、右から左へ読むことに違和感を覚えました。敬語のレベルが細かく分かれている言語もあり、それが社会的な上下関係への感受性を強化します。年上の人を「さん」と呼び、先生を「先生」と呼ぶように。文化が言語を形成するのか、それとも言語が文化を形成するのか。私にはわかりません。
同じことはプログラミング言語にも当てはまります。それぞれの言語は、異なる思考パターンを促します。例えば、私はTypeScriptを学ぶまで、Pythonのラムダ式やmap()を完全には理解できていませんでした。そして逆に、TypeScriptを学んだことで、Pythonのclassmethodやpropertyといった概念がそれまでになかったほど腑に落ちました。複数の言語に触れることで思考のモデルが広がり、問題をさまざまな角度からアプローチしやすくなります。やがてそれは、より言語に依存しない思考へとつながり、構文よりも設計・データの流れ・システムの振る舞いに意識が向くようになります。
