使用できる言語

この間、研究室の留学生に困った質問をされた。
プログラミング言語で何が一番得意?」
うーむ、どれもなにも、使い込んだ言語などないのだが・・・


考えてみれば、何が一番使えるかといわれても困る。
というか、使えるってなんだろう?
文法は知っている、大体の動き方も知っている言語ならそれなりにある。
手続き型、関数型、論理型・・・は少し危ういか。あとはオブジェクト指向アスペクト指向
論理型言語以外はそれぞれまあ一つから二つくらい。
スクリプト言語は生憎そんなに知らない。少しやろうとは思っているのだが。


大体使う言語はケースによって違う。もっとも、ケース云々以前に、講義の課題ではまず言語が決まっていることもあるのでその場合は省略。
さて、まず候補に挙がるのは手続き型。基本的なファイル入出力と計算程度なら大体これ。あとはシステムに関わることを(あまり複雑なことはできないので)簡単な範囲でする場合は手続き型・・・というかC言語
次に、計算だけをする場合。再帰ばかり使うような計算(特に数値以外)だと関数型。ちょうど型なしと型付きの言語を一つずつ知っているので使い分ける。
論理型・・・は今のところ使ったことがない。条件だけがわかっているときに解探索には使えると思うが、今のところそれを必要としたためしがない。
オブジェクト指向デザインパターンの勉強などのとき。あくまで勉強前提なので、いわゆる実装用ではない。この理由では大体Java。実装の場合、Cが手軽なのでC++の場合もある。これも本が使うから、などの理由が多い。
アスペクト指向?研究で使う。以上。横断的関心事が関心事になるような大きなコードを書いたことがないので、使う必要性を感じたことはない。でも研究している。


やっぱりもっと実装すべきだなあ・・・
軽くスクリプト言語をやったら実装のほうをやってみるかな?
後輩にプログラミングコンテストの結果を自慢されたことだし・・・