26-言語だけではなく文化も学ぶ

プログラマが知るべき97のこと」の26個目のエピソードは、新しい言語の学習に関する話です。既に何度か登場しているように「達人プログラマ」にはプログラマが知るべき重要な事がたくさん書かれています。その中の1つとして「毎年、新たなプログラミング言語を1つは学ぶこと」というのがあります。現実的には毎年新しいプログラミング言語を習得することは難しいですが、毛色の違うフレームワーク*1や開発手法など少し広い範囲に広げれば十分に可能な事ですし、必要な事だと思います。このエピソードでは、新しい言語を学ぶ事も重要だが、その中で言語の持つ文化を学ぶという事が重要だと述べています。

新しい言語を学び、その勘所を掴んだら、前から知っていた言語の使い方がそれまでと変わっていることに気づき、自分で驚くことがよくあります。

文化を学ぶ事が重要であることは、中々実感できる物ではありません。重要だと言われてもピンと来ないのです。陥りがちなのは自分の育ったホーム言語の文化が絶対と信じ、別の言語を学ぶときにでも他の言語の文化を守ることです。自分の持つ文化に拘りがあるのは大切なことです。しかし、その言語には設計ポリシーがあり思想があります。Rubyを学ぶ時に、Javaの形式張った文化を押しつけても、Rubyの文法や構文しか学ぶ事ができないでしょう。逆にJavaを学ぶ時に、「Rubyならこうかくのに・・・」という姿勢ではJavaから得られる物はありません。これはフレームワークでも同様です。DjagoであればDjangoの、StrutsであればStrutsの、Slim3であればSlim3の、RailsであればRailsの設計思想があります。使う以上は各フレームワークの設計思想に合わせてプログラミングすることで、最大限に活用する事が出来るのは当然でしょう。そのフレームワークがある程度の評価を受けているならば、その思想が自分と合わなかったとしても、そこから得られるものは確実にあります。そのような姿勢で学び続けていると、自分のホーム言語における表現力が高まっている事に驚くのです。
繰り返しますが、新しい言語を学ぶことは重要です。技術的に塩漬けになることを回避するという単純な話ではありません。自分に合う設計思想を持つ言語を探すため、自分のホーム言語の表現力を高めるため、新しい言語を学びましょう。
プログラマは自分の技術や思想に拘りを持つ傾向があります。それは重要な事ですが、他人を認め素晴らしいことを取り込んでいくこともできれば達人プログラマに1歩近づけるのではないのでしょうか?

言語を学ぶというのは、ただ文法、構文を学ぶことではなく、その背景にある文化も学ぶこと

達人プログラマー―システム開発の職人から名匠への道

達人プログラマー―システム開発の職人から名匠への道

  • 作者: アンドリューハント,デビッドトーマス,Andrew Hunt,David Thomas,村上雅章
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/11
  • メディア: 単行本
  • 購入: 42人 クリック: 1,099回
  • この商品を含むブログ (347件) を見る
プログラマが知るべき97のこと

プログラマが知るべき97のこと

*1:Javaをやっている中でGAE/Javaを学ぶなど