Skip to content

私の好きな言語......

2024年3月28日

そういえば好きなプログラム言語がまだはっきりしていない問題があることを思い出した。 プロトコルスタック書く時やminiGCはC(or C++)だし、 研究はCbCとかアセンブラとかだったし、syskanではGoやbashやPerlを書いた。 他にもJava、Pythonなどを講義課題で書いたし、バイトでTypeScriptやRubyも書いた。 なんかその時その時で要求される言語の知識を頑張って取り入れ、 その浅い知識で乗り越えてきた感がある。 単なる遊びで書いていたのはErlangくらいだろうな。 それも全然浅い。まあ、浅い深いという言い回しはあまりにもあやふやであり、 私の単なる感覚でしかないのだが、それでも「深く理解した言語」を道具箱に入れておきたいという欲求がある。

そこではっきりさせたいのは「どの言語を深掘りするか」と「深掘りとは何か」だ。

どの言語を深掘りするか

「その場」で要求されている言語を深掘りすると、「その場」が変化した場合にその都度言語を乗り換えねばならないだろう。「その場」だけ考えた結果が最初に述べたような状態を作り出した。なので「その場」ではなく、もう少し長期的な目で見て考える必要があるだろう。 もちろん、自分が担当する仕事で求められるスキルは十全に持ち合わせている必要がある。 なので、深掘りしたい言語というのは仕事の上で「第二言語」の位置をとるのではないだろうか。 「その場の第一言語」と、「深掘りしている第二言語」という感じで並行的に学習する必要があるということだ。そうでなければ、自己中的な言語の学習となり、無能の烙印を押される可能性が高くなる。

「長期的な目」とは予測的な目である。 その視点を持つのはかなり難しいように思う。今の私では「これからの低レイヤはRust」とか「フロントエンドやるならTypeScript」とかくらいしかいえない。 実はいろんな言語をやっていかないとこの辺はわかってこないようにも思う。

なので、一旦の結論としては「その場で要求される言語を十全に学び、多くの言語に触れ、 そうしていく中で第二言語(深く学びたい言語)を見定める。」という具合だ。 これから会社で働き始めるので、その会社で有用な言語を第二言語にできたら良いな。

第二言語は運が良ければ第一言語になる。 というよりは、第二言語が第一言語に化けやすいように、第二言語を選んでおくのが良いだろう。 「運が良ければ」と言ったのは、やっぱり未来予測は難しいからだ。

深掘りとは何か

やったことないのでわからない。長く付き合うとか、毎日新しい発見をするとかそんな感じ? 自然言語だと「触れる量」が大事らしいので、それをプログラム言語にも当てはめることができる?

一応結論は「たくさん書く」だ。