プログラマーは不要にならない。残念ながら…

forbesjapan.com

 

暑さにやられてタイムスリップしたのかと思った。

俺が社会に出た30年くらい前に。

まだバブルの頃だ。(しみじみ)

 

 

昔っからなんどもなんどもこういう話は出てきていて、実際にコードを組まずにアプリが作れるっていう触れ込みのツールやらフレームワークやらを使うお仕事もしたことはありますが、そういうツールを使うとむしろロジック部分のコードを書く分量は増えている ような気がするのは気のせいでしょうか。

 

仕事としてプログラムを作ったことがある人はわかると思いますがプログラムのコードって無駄の塊です。必要な部分っていうのは実は案外と少ない。

確かに俺が社会に出て数年の間にお世話になったCOBOLっていう言語で素直にアプリを組むと、まずデータ定義部で1000ステップ越えてみたり、move 文だけでまた1000ステップ越えてみたりそういうところは当時のツールでも省力化できていました。

メインフレームの画面って実は中身はアセンブラという代物で一バイト分ずつ心を込めてコーディングしたりするのですが、そういうのをGUI的な操作で、あくまでも的です、GUIではありませんよ、コードを生成できたりしていました。

データベースとのデータのやり取りもカプセル化されていて、一般的な手順なら部品を組み合わせるだけで作れました。

作れましたが……、実際にそれで納品品質のアプリケーションを組めたためしがない。

 

仕事って話じゃなくて趣味的な話で言えばロジック作るの好きだしコードを書くのも好きなんですけど、仕事って話になると、コードを書く時間って実は大したことはなくて、ほとんどが設計とかテストに時間取られています。

一般的には実装に近い設計から作ったプログラムが仕様通り動き、そもそも与えられた仕様に疑問がある場合はそれを指摘したり、可能なら正しいところに持っていくっていうのがプログラマーの仕事だと思っていて、俺の本当の適正はそこにあるんだろうなって思っているんですが、その範疇で言うと、部品を取り寄せて組み合わせてアプリケーションを作ることができてもたいして時短にはならないんですよね。

それにそもそもその部品にバグがあったらどうするんだと。

部品を作ったのは自分じゃないからバグっても自分のせいじゃないみたいな割り切りをできたとしてもテストしないっていうわけにはいかないでしょうし。

 

さらに言うと、どんなに便利そうな部品をたくさん取り揃えていても、今までの経験上それですべてをまかなえるってことはめったになくて、結局手作りしなきゃいけないところがでてきて、自動化ツールに頼っているとその作りこみが通常より大変だったりするっていう嫌な経験もあります。

なんだよこの手動ツーフェーズコミットって、しかもあきらめてるパターンはあるしみたいなことがあったりします。

 

でもねぇ。経営者受けはいいんですよね。だから導入する会社も多い。

んで、かわいそうなのはそういうツールの専門家になった人です。コンピュータの言語って案外と一つ覚えれば他の言語に応用が効くんですが、それは自分でロジックを作るからなんですよね。部品を組み合わせるだけっていう仕事をしてるとつぶしが効かなくなっちゃう。今のJavaプログラマーにはそういう人も少なからずいるように感じています。

 

自分ではプログラマーを名乗りたいと思ってはいますが、実際にはプログラマー的な仕事はほとんどしなくなちゃってます。それでもやっぱりプログラマーっていう仕事は捨てたもんじゃないと思っているし、まだまだ全然極めてないと思っていて、そういう人間からすると、冒頭の記事には「またか……」という感想しか持てません。