世間のプログラマがPythonだRubyだSwiftだとイマドキのプログラミング言語を使っているのを横目に、今日もせっせとC言語でシステムを開発する「C言語職人」の1日をダイジェストでお送りします。
7時00分:起床
「C言語職人の朝は早い」
と、タイトルで書いたが、朝が早くなるかどうかは出向先による。現在C言語の主戦場は組み込み系開発の現場で、メーカーへの出向(業務請負だったり特定派遣だったり)の形で働くC言語職人がほとんどだからだ。
タイトルはキャッチーさ優先で決めた。今でも後悔していない。
9時00分:出社~仕事始め
眠い目をこすりつつ出社して仕事を始める。C言語は処理速度が速いのが売りの一つだが、C言語職人の処理速度は並だ。特に朝は脳の起動に時間がかかる。
イマドキのプログラマは、「Atom」「Visual Studio Code」「Brackets」といったクロスプラットフォームなエディタをお洒落に使いこなしているのかもしれないが、C言語職人にとってはいまだに秀丸エディタやサクラエディタが大事な友人だ。
必要にして十分だけど、たまに今どきのエディタが気になってIT系ニュースで見かけたら未練がましくブックマークしたりしている。その記事を読み返すことは殆んど無い。
10時00分~12時00分:天敵との戦い
昨日顕在化したバッファオーバーフローによるメモリ破壊系と思われるバグと戦う。熟練のC言語職人であっても容易に倒せる相手ではない。
あまりこの戦いが長引くようだと戦況全体に影響を及ぼすので、早めになんとかしたいところだ。
伝家の宝刀、
「適当なコードを挿入してメモリ配置を変えて、表面上直ったことにする。次に問題が顕在化した時の担当者が自分でなければいいや」
を使えと心の中の悪魔が囁いてくるが、ギリギリのところで職人の矜持がその誘惑を押し留める。
12時00分~13時00分:昼休み
本来であれば1日のうち唯一の安らぎタイムであるはずの昼休みだが、バッファオーバーフローのバグが気になって御飯の味がしない。
13時00分~16時00分:古いシステムの調査
バグ1つの改修にかかりきりになれるほどC言語職人の世界は人材豊富ではない。同時並行で別の仕事も行う。
20年以上前に開発したシステムの改修案件が近々始まるので、事前に調査を行っておく。ドキュメントが整備されていないため、ソースが仕様書だ。「ポインタのポインタのポインタ」などという早口言葉のようなコードを見かけると、さしもの職人も心が折れそうになる。
ふと、職人の眉間の皺が深くなる。何かあったのだろうか。職人の視線の先を追ってみると、こんなコメントが残されていた。
「/* この行を外すと何故か動かなくなる */」
この案件、一筋縄ではいきそうにない。職人の灰色の脳細胞がそう告げている。
「ほらな、昔のプログラマだっていい加減なことやってんだから、お前もバッファオーバーフローの件は適当に流しちまえよ」
心の中の悪魔が再び誘惑してくるが、理性を総動員させて耐えしのぐ。
16時00分~18時00分:新人のコードレビュー
後継者問題に悩まないためにも、新人の育成は重要だ。新人が行うコードレビューにレビュワー側として参加する。
・・・1000行を超える関数が普通にあるが、正気か?
これで本人が処理の流れを理解できているのなら、ある意味職人技と言える。C言語職人の世界の未来は明るい。