自分のスタイルに合わせて

こういうものは極力単純化した方が長続きするのは目に見えています。

私の場合、後者の「きれいさちこ」が合っています。そもそも仕事の単位が長くても実働で 2 日くらいだからです。さっそく明後日から実践してみたいと思います。

何かの流行りですか?

残念ながら天才とは呼ばれたことはありません。

私の知能指数は確か 100 以下くらいのはずで、良くもなければ悪くもないです。クラスで知能指数トップだったのは女の子で 180 くらいだったはずですが、彼女がその後何かで活躍したという話も聞きません。

貧乏だったので塾は行っていなかったので何とも言えませんけど、大学から大学院の 6 年間のうち 4 年間は学費免除だったのは事実ですが、親父は学費が免除にならなかった 2 年間について今でも思い出したかのようにうるさいです。もっとも、今親の平均年収がトップクラスの私立の大学に年収 500 万円前後で行かせてくれただけでも感謝しています。

で、こんなことはどうでもいいです。中学レベルなら数学の回答方法なんて数個くらいは別の解を考えていた時期もありました。こんなことを自慢しても自慢にもなりません。

で、大学に行って面白かったのが自分よりも頭のいい奴がいたことですかね。大学生だけで数万人 (自分の田舎町の人口の倍) いるのは凄かった。浪人しているから頭のいい奴、本気で頭のいい奴、天才未満の奴、それが私の財産のひとつです。高校時代は某模試なんかは 90 分の試験時間のうち 60 分くらい暇で仕方がなかったこともありましたが、大学でいろいろな人に会えたことで少し見方が変わったのかもしれません。ネットはさらに広大ですが、本当に頭がいいかどうかを Blog やイベントで推し量るのは難しいので、ここでは語りません。

某巨大企業に入社し、やはり数万人の中で仕事していたわけですが、やはり頭がいい奴がいてくれて面白いです。普通の会話なのに頭の端っこにあるシノプスまで使わないと付いていけないというのは面白くて好きです。文書を難しくしたり専門用語で濁して難しくすることはできますが、普通の会話で凄い人がいると私は面白くなってきます。

そもそも、頭のいい奴なんていくらでもいるわけですよ。その何倍も自分の頭はいいと思っている人がいるわけですが、頭がいいなんていう相対的な比較をしているわけなので、相対的に自分よりも頭のいい奴に会って、自分よりも頭がいいと分かる自分を持つことが重要なんじゃないかなと思います。上があるから上を目指すわけです。ペアプロと同じで微妙な差があることが面白いわけです。

最後に大学時代に先輩に教えられた言葉をひとつ書いて終わりにします。「天才は 1 % の才能と 99 % の努力であるという有名な言葉は、実は掛け算である」というものです。才能とは自分では気がつかないものですが、もともと才能がないものに 99 % の努力をしてもあまり意味がなく、与えられた才能を生かせるものに 99 % の努力をかたむけると 99 % になるかもしれません。100 % の努力とは人間を捨てるくらいなんだろうかと思っています。そもそも 100 % になんかなれなくていいのです。そのくらい天才は稀な存在なのです。(多分)

ダイレクトに Excel ファイル

なるほど、さすが Perl。こんなこともできてしまうのですね。
さすがに Fedoraリポジトリにはないだろうと思い検索したら、なんかあるっぽい。

$ sudo yum -y install perl-Spreadsheet-WriteExcel perl-Spreadsheet-ParseExcel

うほっ。動くぞ。
セルの幅や高さも指定できるのだろうか?

最近の私の動向

とりあえず各アプリケーションへの負荷分散を行っています。特にエディタ (vim) に関してはミニマムにしてプラグインを余計に読まないようにし、ブラウザ (Firefox) もできるだけ負荷を減らしていますが、どうしてもブラウザは負荷がかかりますね。

それはやっぱり Perl では?

それでもあろささんが例示した 三つのステージをたどった言語って思い浮かばないんですが。 強いて云えば Perl と云えなくもないけど。

(引用元の回答というわけではありません。あまり脈略もないです。)
awkPerl は昔から比較されることが多いのですが、awkawk の道、PerlPerl の道を歩んでいて、awk でできることは Perl でもできるものの、お互い良い距離を保った進化をしていると思っています。awk が完全に的を絞った言語ですが、Perl は (結果としてそうなちゃったのかもしれませんが) 汎用言語を目指しています。これは、Perl の "Whipaptitude" (サクサク) と "Manipulexity" (キッチリ) の絵を見たことがあれば、Perl の方向性が垣間見れます。404 Blog Not Found:Whipaptitude and Manipulexityあたりで見られます。この絵で面白いのが、sedawk も負の要素を持っていません。つまり、もともと機能限定である sed, awk はその範囲内で正しく使うと良きツールになってくれることを意味します。
個人的主観で話すと awk は進化していません。これは「進化してはいけない」要素と「進化を妨げる」要素の 2 つがあると考えています。「進化してはいけない」とは、awk があまりにも Unix like OS の根幹を成すツールであるために、後方互換重視であることです。また、「進化を妨げる」とは awk 自身が自分の中で全てを完結できるだけの関数を持っていない、もっといえば、バイナリを扱えないことです。他にもいろいろな障害があると思います。例えば、熱狂的なファンの反発とか・・・、Rogue like RPG が下手にグラフィックを使うと叩かれるのと同じですかね。
進化をやめた言語は終わりというようなことを言われる人もいますが、正しくは awk は進化の必要がないのです。もともとの目的に対して十分な機能を保有しているのです。なぜ、Rogue が進化しないかという議論と同じです。Rogue の場合もソースコードの問題とかもあり、オリジナルが入手できないとか、awk に似ていますが、今ある awk が全てなのです。
ちっぽけなツールかもしれませんが、エンジニア (これは製造やライン管理やプログラマも含めての広義のエンジニア) の味方になってくれることでしょう。

awk の配列

配列と連想配列は、個人的には Perl をやり始めた時の難関であり、awk をやり始めた時の難関でした。(その前に使っていた BASIC では配列を使ったことがなかったので・・・)

そもそも配列とは、ある添字 (数値) を持つような変数の一種であり、良く数学で a1, a2 (1, 2 は下添字) で記載されているようなものです。数学の教科書では級数のような場合に使われ、a1, a2, ... an というような表記を見たことがあると思います。つまり、固定された変数名ではなく、ある不特定な添字を使って数を増減できる変数のようなものです。
どんなメリットがあるかというと、何個の変数になるかわからないものに対して用いることで無駄に長い変数名を考える必要がありません。あるファイルの行の内容を記憶させたい場合など、そのファイルの行数が分からない場合に用いたりします。
この a1, a2, ... an を awk の世界では a[1], a[2], ... a[n] と書きます。

次に連想配列ですが、上の配列で数字が文字列に置き換わっただけだと考えてもらえれば良いと思います。英語では Associative Array で、多分「関連配列」と言った方が分かりやすいかもしれませんが、連想配列と言われ、場合によってはハッシュとか辞書配列とも呼ばれます (まぁ大意そう思ってください)。
例えば、「アメリカの人口」「日本の人口」といったように、同じ「人口」なんだけれど「アメリカ」と「日本」という部分が異なるような場合に用いられます。人口を表す連想配列を population とすれば、awk では population["アメリカ"], population["日本"] と記述できます。

この配列と連想配列は本来は異なるものですが、添字付きの変数という意味では同じです。これを awk では同じに扱うために「全て連想配列」にしています。つまり上で書いた、a[1], a[2] は a["1"], a["2"] と同義になります。しかも、添字の部分に数値演算子や文字列演算子を混在でき、関数定義の引数の部分では変数名のように配列名を扱うことができ、これらを awk がちゃんと自動で解釈してくれます。
もちろん、決してデメリットがないわけではなく、Perl のようなスマートな (?) 記述ができなかったり、配列に比べて連想配列を扱う方が実効速度が遅かったりします。

賛否両論あるものの awk連想配列として扱う方法は初心者に広く受け入れられ、誰でも扱える LL の基盤を築きました。今でも、配列を連想配列として扱う言語はいくつか存在しています。