プアなWindows作業環境に「これだけは」とお願いするとしたら?
前置き
恵まれた環境にいる人々には想像がつかないだろうが、こんな環境は普通である:
- やや古めの Windows である(今なら Windows 7/半年前まで Windows XP)
- インターネットから原則隔絶された「社内LAN」である
- Windows Update のために、Microsoft サイトの限られた場所にだけ行ける
- ソフトウェアの導入には許可申請が必要
- インターネットの世界からのメールだけは受け取れる、こともある
それでも「許可を受ければ導入出来る」ならまだ幸せな方で、それすら出来ないこともある。つまりは、ソフトウェアは選定する部門が選んだものしか許されない。そんなところだってある。「ソフトウェアの導入に許可申請はいらない」にしても、ルールはある程度あって、自由にというわけにはいかないことも多い。例えば個人でコッソリやる分には良いが皆で使おうとすると大ごとになる、のような。
頼めば導入出来る、として、さて、貴方なら、必要最小限のものとして、何を選ぶだろうか?
何年も前から、ワタシのそれはほぼ決まっている。
絶対にこれだけは
まず「絶対」が以下の通り:
これらさえ揃っていれば、同じ苦痛でも、かなり緩和はされる。
UNIX/linuxな人で、Windows に向き合う人であれば、「なぜに MSYS? Cygwinではなくて?」と思う人はいるかもしれない。ワタシの場合 Cygwin はβ版だった時代(今から15年近く前)には喜んで使っていたが、あるタイミングからあまりの大きさに辟易し出し、MSYSが知られるようになってからはずっとMSYSを選んでいる。「Minimal」というだけあって、正真正銘ミニマルで、「いったいこれだけで何をすれば良いのだ」というほど小さいが、bash、sed、awk、make (となぜか最近は perl) があるので、まぁどうにかなったりする。
仕様は色々気味悪い。置いた場所が / になる、「/」という文字をどんな場所にあっても(文字列の先頭であれば)パスの一部だとみなして勝手に置換する、パーミッションの概念がない、などなど。けれどもどんなに腐っていようと、DOS よりは一億倍はマシである。DOS のバッチファイルに真面目に取り組んでいると、あまりの苦痛に夕日に向かって叫んでしまいそうになる。おかーさーん…。
MSYSは、とにかく持ち運びに便利だ。「置いた場所がルート(/)」という薄気味悪い仕様も、使ってみるとそれがチャームポイントであったりもする。MSYS依存のスクリプトを「MSYSごと」移動して、そのまま動くのだ。便利といえば便利だ。
「ファイル比較ツール」(diff系ツール)はどういうわけだか皆思いいれもしくは刷り込みが強い分野らしく、そういう意味ではテキストエディタに近い領域だ。同僚をみていて気付いたことだが、WinMergeは見栄えが「ダサ」いようで、それが原因で敬遠するらしい。確かに色遣いはちょっとセンスないのかもしれない。また、「編集できるのがコワイ」とのこと。だからわざわざ他のものを使う、と。ただ、WinMergeはそもそも「比較ソフト」ではない。名前の通り「マージツール」である。「ビジュアル patch エディタ」なのである。そしてワタシがはじめてWinMergeをみて感激したのも、視覚的に差分を編集出来たからだ。「そうそう、これが欲しかったのだ」。Ecplise はじめ、最近はWinMergeと同じことが出来るものは増えたが、今でもWinMergeが一番使いやすい。ワタシは結局「自分がどんな作業をしたのか」を新旧で比較することでチェックをし、間違いを見つけ次第WinMergeでそのまま編集してしまう。皆がそうして欲しいと日々思っている。
Pythonではなく Ruby では? は受け付けません。というか「Windows」であることに注意。Ruby はまだ Windows に冷酷過ぎる。UNIX 系ならともかく、Windows で Ruby を使おうとはワタシは思わない。(Cygwinを選ばないが故の必然、ともいえる。)
もっと許されるなら
様子をみて以下が続く:
これがあれば、Excel の操作などを自動化するのが楽になるので、割と一気に気分良くなったりする。
「本当は絶対」と言いたい個人的なもの、は、言うまでもなく(?) Emacs であるが、身の回りにはまず Emacs ユーザはいないので、やる場合はこっそり個人で、となる。
もっと許されるなら、次は
- TortoiseHG(などのリビジョン管理ツール)
であろうか。
もっと欲を言えば、と、
があると嬉しいと思うこともある。何か道具を必要とした際に、Python の速度で我慢出来なくなって、C/C++ で書いちまえ、と思うこともあるので。ただ、これは「チームで」のニーズではなくなる場合が多く、ほとんどの場合説得力がなく望み薄である。
わかってくれとは言わないが
経験的に、こういう環境があるのだ、ということを知らない人々とはなかなかわかりあえない。でも少しは知っておいて欲しい。
ワタシと同じような環境にいる人たちは、いわゆる職業プログラマには大量にいるであろう。どうだろう、お役に立てただろうか?