職業プログラマーの言語「カン」覚

筒井康隆大先生からぱくったあの字を使おうかと思ったんだけれど自重しました。
やじうまWatch 広く使われるプログラミング言語「PHP」を巡る議論に注目集中
PHPがいかに駄目な言語か、という話。


いきなり余談から入りますが、どうも「プログラマー」っていう言葉に持っている感覚が違う人がたくさんいるみたいで気になっていました。仕事としてプログラムをちくちく組んでいる人がプログラマーだと思っていたんですけれど、なんか特別な才能がある人がプログラマーって言われているみたいな風潮があってねぇ。プログラマーってドライバーと同じような言葉だと私は思っています。なので、そういう自分をわかりやすく指す言葉として「職業プログラマー」という表現にしてみました。「プロプログラマー」よりは語呂がいいでしょう?「企業プログラマー」って言うと企業じゃない団体のためにシステムを組んでいる人ハブにしているみたいだしね。


さて、ここから本題。
職業プログラマーはどの言語が好きとか言っていられません。好きな言語で組んでいいみたいなプロジェクトだってまれにあるかも知れませんけれど私は経験無い。言語を決める権限がシステムを作る側にあることはたまーにある。
でも、ほとんどの場合は「この言語でこういうシステム作ってね」っていうお話になります。
だから職業プログラマーには、どの言語が仕様としてすばらしいのかを見抜く能力よりも、どの言語が流行るかを見向く能力の方が重要です。ある言語が流行ればその言語の仕事が増えるわけですよ。その言語を習得していれば具体的には収入を得るチャンスが増えるわけです。
中身ぐだぐだなのにマーケティングテクニックだけである言語が流行ったとしても、その言語を習得していれば仕事にはありつけるんですよね。


なんか、このサイト比較的若い人、学生さんとかがたくさん読んでいるみたいで、なかには学校でプログラム言語を学んでいる人もいるかもしれませんね。今だとC言語なのかなぁ。おれC言語を仕事で使ったこと無いからわからないけれど…。
学校で学ぶ言語って言うのは社会に出てからそれほど役に立たないかも知れないです。しかし、ロジックを組むという作業はたぶん役に立つと思います。言語なんてどうでもいいんですよ。やりたいことができれば。そういう意味ではC言語っていい言語ですよね。OSやコンパイラも作れる言語ですから。ポインタの考え方がある言語の方が汎用性が高い。COBOLPL/I両方使ったけれどPL/Iの方がいろいろできます。その理由はポインタが扱えるってところにあったのかもしれない。ポインタ渡しで呼ばなければならないプロダクトのルーチンがあってそういうのはPL/Iからじゃないと使えない。マニュアルにはポインタ渡しって書いてあったのに実際にはポインタへのポインタ渡しではまったことがあったなぁ。それに比べればBASICとかは汎用性がない。JAVAも。でもJAVAは仕事多いからねぇ…。覚えなきゃ。仕事で何本か組んだけれどJAVAプログラマーで〜すとは言えない。
さっきも書いたけれど実際の仕事では「XXができるひと」みたいな頼まれ方をしますから、仕事の中で勉強するみたいな余裕はあまりないです。ギリギリの所で覚えながら仕事をしていく感じ。実際やってみるとロジックの基本は同じなので言語の仕様と癖さえつかめば後はどうにでもなります。


今おれが使っている言語は言語というと偉い人が「そういうのはスクリプトと言うんだ」といいそうなやつです。PL/SQLっての。大したことできないし特定のベンダーに依存しているけれどそこそこ仕事はある。初心者でも簡単に習得できると思います。ただしSQLを知っていれば。言語としては割とちゃんとしています。エラーがあるとちゃんとこけます。当たり前ですよね。しかしその当たり前が通じないのが…。HTMLとJAVAScript…。つらいんだな。どこでエラーが発生しているのかすらわからないし。いい加減でも動いちゃう。デバッグをコンピュータに依存しているぬるいプログラマーの俺にとってはつらい。机上デバッグ当たり前の猛者にはかないません。確かに初心者でもとりあえず簡単に組めるけれど、ある意味上級者向けです。
アプリの作り方自体はWebブラウザをUIに使うってのがこれからの流れだし正解だとは思います。クライアントにランタイムが必要なアプリは基本的にだめ。ブラウザのプラグイン程度だったらいいけれど。VB使っていた時にVBRJP200に何度泣かされたことか。めんどくさいからねぇ。
おれはPHPってのも使ったこと無いけれど、それを使った仕事をやらざるを得なくなったら覚えるし、痛い目に遭わないように勉強もしますよ。痛い目に遭うっていうことだったら、やっぱりなんでもできちゃうC言語が一番やばいんだろうなぁと思いますけれどね。