使用言語を指定されるのが当たり前だと思わないほうがいい。
こんにちは、高木です。
ソフトウェアの開発に携わっていると、おかしな錯覚をしてしまうことが少なからずあるようです。
プログラミング言語は顧客から指定されるものだという錯覚です。
確かにSESの案件情報を見ると、最初に言語ありきになっています。
これだと、そのような錯覚に陥るのも無理はありませんね。
ところがよくよく考えてみると、ユーザーにとっては開発に用いた言語なんかどうでもよく、きちんと期待通りに動くものでありさえすればいいはずです。
それであれば、どんなものを作るのかが先にあって、その上で適切なプログラミング言語を選択するのが当たり前の流れです。
こんな当たり前のことにも、言語を指定される状態が何年も続くとだんだん麻痺して気づかなくなってしまうのです。
私の場合、ここ10年あまり、使用するプログラミングを指定された経験はほとんどありません(ゼロではないです)。
もちろん、プラットフォームによっては使用可能な言語にほぼ選択肢がないこともあります。
たとえば、AndroidでCPUがARMでもx86でも使えるようにするにはJavaで書くしかないですし、ローエンドなマイコンであればCかアセンブリで書くしかないといった具合にです。
また、既存のソフトウェアを改造する場合も、顧客からの言語指定はないものの、わざわざ別の言語を使う理由もないので選択肢はなくなったりします。
そうした特別な事情があるわけでもないのに、常に使用言語が指定されているとしたら、自分の立場は本当にそれでいいのかどうか疑ってみたほうがいいでしょう。
箸の上げ下ろしまで口を挟まれるような下請け仕事ばかりやっていると、そのような状況に陥ってしまいます。
おそらくそのような仕事では、使用言語を指定されるだけではなく、理不尽なコーディング規約も押し付けられているのではないでしょうか?
ネット上のQ&Aサイトなどを見ていると、コーディング技法に関する質問に対して、現場ごとにコーディング規約があるのでそれに従うのがベストなやり方だと回答している人をよく見かけます。
こんな発想の人は決して少なくないと思います。
現場ごとのルールに従う必要があるのはその通りです。
けれども、常に既存のルールに従うのが当たり前だと考えるのは問題があります。
1~2年目の経験の浅いプログラマーならともかく、5年も10年も経験を積んだ人や、独立してフリーで活動している人がそんなことを言っているとお気の毒に思えてしまいます。
ルールは自分たちで作って、作った以上はそれに従うのが一番よいのです。
下請け根性が染み付くと、次第におかしな方向に流れてしまいます。
言語選択の不適切さを嘆いたり、コーディング規約の理不尽さに不平を漏らす暇があるなら、それらのお仕着せを受け入れざるをいない自分の立ち位置を見直すべきではないでしょうか?