わりとぶっちゃけて書くプログラマから見たプログラマという職業(言語編)
それなり以上にできる人って基本的にどんな言語でもそれなりにできるイメージ。
逆に本気で一つしか知らない人でできる人を見たことがないという話ですが。
ちょっと前に書いた暗黙知の話と似たような話なんですが、ぶっちゃけ一つ感覚的に理解できるところまで来れば他の言語って細かいところに目を瞑れば書き方が違うだけですからね。
イメージ的にはヨーロッパ圏の言葉とか、ああいう感じ。
大まかには単語だとかちょっとした表現が違うだとか変化の仕方が違うだとか、そういうことでしかない。
細かいところを見始めると言語特有の面倒事があるのも似たようなものですけども。
なんにしても少し掘り下げた話をすると、一つの言語しか知らない人ってどこからどこまでが何による制約なのか知らない人が多い、というか大半ですね、今まで見てきた限りでいうなら。
機器的な制約の場合もあればOS的な制約、当然言語的な制約もあるのにどれがどれなのかわかってない。
結果的にコード上に潜まないタイプのバグに弱いというパターン。
OSが変わればAPIの変化もあるんだから一つの言語しか知らないならせめてそれくらい知ってろよ、と、思わなくもないんですがそういう人ほどそういうのを知らないのはなんなのかと。
なめんなと。
しかも普通に複数言語持ってる人に言語の知識で負けるパターンとか、作業速度で負けるパターンとか、よくあるのが困りどころ。
まあ一つの言語しか知らないってほとんどの場合が学習意欲がないという場合とイコールだから仕方ないねと思わなくもない。
と、言ったところで複数言語持ってる人が学習意欲高いのかと問われれば別にそんなこともなく。
単に業務上必要だから覚えてるとか業務でやったから覚えてるとかそういうレベルな場合が多い。
というか、一回やればどんな言語でも動作が大体同じなのってわかると思うんだけどなぁ、と。
書き方が違うからそっちに気をとられるとかそういうことなんですかね。
まあ、宣言の仕方からして全然違うという場合もあるものの、結局入れ物の名前決めてるだけじゃねぇかと思わなくもない。
言語ごとの最低限の違いっていうと、
・クラス(エクステンド)の書き方
・メソッドの書き方
・変数の宣言方法
・defineの切り方
・API
くらいじゃないか、と。
それくらいならググれば一発で出てくるんだから多少言語変わったくらいならどうとでもやりようあるでしょうに、とか思いますけどね。
そしてこれだけできればとりあえずの学習(と、場合によってはバグ修正とか)できるんだから、とか思わなくもない。
さらにいうなら、このあたりは中身は同じなんだからそもそも学習する必要があるのって書き方だけで、それ以外の部分を新しく覚えればいいだけなんだからそこまで難しくもないだろというのもある。
まあ、本当に最低限で考えれば、ですが。
OSに合わせた独自言語とか一部のフレームワークとかになるとライフサイクルとか考えないといけなくなってきますけどね。
これは作ったら勝手に呼ばれるヤツでこの順番で呼ばれて、こういうときにはコレが呼ばれる、とか。
まあ、ログでも出しながら一度動かしてみればすぐわかることなんですけども。
閑話休題。
とりあえずweb系とサーバ用とクライアント用の三つくらい抑えておけばいろいろと捗りますよね、とは思いますがね。
さらに欲張るならクライアントでも今だとスマホ用一つ(というか実質どちらか)とPC用二つくらいあると心強い。
そこまで行けば食いっぱぐれることはあまりないと思います。
買い叩かれたり急に呼ばれたりはあるかもしれませんが。