Melting Pot of Thoughts

SaaSスタートアップのCTOです。思考の整理のため考えたことをメモとしてアウトプットしていくブログです。

一つのプログラミング言語に固執しないほうがいい理由

私は現在Kotlinというプログラミング言語をよく使っています。

JetbrainsというIDEで有名な会社が2021年に実施したサーベイによると、14%ぐらいがKotlinを直近1年で使ったことがあるようです。
なおJavaは49%、PHPは32%、Goは17%、Rubyは6%、Scalaは3%だそうです。
(Jetbrainsが実施したサーベイなので母集団に偏りはありそうですが、Rubyは日本国内でよく使われていることもありもっと数が多いイメージだったので意外な結果でした。)

KotlinはPragmatic(実践的)な言語だと開発元が公言していますが、実際そのとおりで特に実務で使う上で必要十分な機能がそろったシンプルな良い言語だと感じています。

 

ただし気に入ってはいるものの、あまりKotlinを使い続けること自体には固執していません。
新しいもの作るときにどれで書きたいかと言われるとKotlinで書きたいですが、同時に新しい言語に挑戦してみたい気持ちもあります。

 

 

個人的にはプログラマーは1つのプログラミング言語にあまり固執しないほうがいいと思っています。
毎日使うプログラミング言語に愛が芽生えて『それが最高だ』となるところまではむしろ良いことだと思いますが、『それしか使いたくない』や『その言語で事足りているのでそれ以外の言語を学びたくない』となるとちょっと危険な気がします。
特に後発の言語(Kotlin・Go・Rust等)は先行者の言語の具体的な課題を解決しようとして生まれているため、学べることも多くあります。
もちろん『現在使っているプログラミング言語に習熟した後』というのが大前提になりますが、別のプログラミング言語を書く機会は学びにつながるため、積極的に飛びついたほうがいいという考えです。

 

 

話は少し変わりますが、私が所属する会社では主要言語としてKotlinを採用しているため、「若くて利用人口が少ない言語であるKotlinを使っていることが採用の障壁にならないか?」という質問を受けることがたまにあります。
それに対しては「新しい言語を使うことを避ける人は元々採用ターゲット外なので大丈夫」と答えています。

ちょっと冷たい回答に見えるかもしれませんが、プログラマー以外の仕事で例えるともっと状況がわかりやすいので、例えてみます。

今転職活動しようとしている営業Aさんがいます。
Aさんは社内情報(顧客情報など)の管理にExcelを使っていましたが、転職検討先では情報の管理はSalesforceGoogle SpreadSheetを使っていました。
Aさんは別のツールを使うことを嫌がり、転職をためらっています。

他の例です。

今転職活動しようとしているデザイナーBさんがいます。
BさんはSkecthを今まで使っていましたが、転職検討先ではFigmaを使っています。
Bさんは別のツールを使うことを嫌がり、転職をためらっています。

 

いかがでしょうか?
これらの例を通して言いたいことは決して「古いツールではなく新しいツールを使うべき」という話ではありません。
言いたいことは「日常的に使うツールが変わることは心理的に大きな負担だけれども、そのツールを使って出す根本的な価値こそが重要なので、ツールに固執してはいけない」ということです。

 

違うツールを使うことを楽しむことができれば、ツールに依らない根本的な価値の部分が見えてきます。
そういった理由からプログラマーは一つのプログラミング言語固執しないほうがいいと考えています。