|
Linux をいじっていると、「プログラミング言語をなにか覚えたほうがいいかなー」と考えることもあるかと思う。以前は UNIX と C 言語はセットで覚えたもんで、現在でも BSD ユーザーの多くはそのクチじゃないかな。でも、知らないと困るか?という問いに対しての答えは「ノー」だな。困らないはずだ。
ただし、UNIXの楽しさのコアな部分を知らないでいる、ということになるかもしれない。ではスクリプトを含めて、いろんなものを見ていこうぢゃないか。 ■ UNIX コマンド&シェルスクリプト ■ プログラミング言語ではないが、使いこなせばへっぽこプログラマ以上のことは充分できる。しかし、実は意外に使いこなせていない人が多いんだな、これが。あたしゃプロのへっぽこ C プログラマーなんだけど、とうてい全 UNIX コマンド使いこなしてるとは言えない気がする。奥が深いのだ。 当たり前の話だが、とにかくこいつらを押さえないと話にはならない。Linux は GUI ツールの豊富さで人気があるのもわかるが、それだけではいっぱしの管理者になるのはキツイ(GUI ツールを使うのはいっこうにかまわない)。 なんか不便だなー、と思ったらこいつらで自動化するスクリプトを書く癖をつければ上達するはずだ。 ■ Perl ■ 「Perl はいーぞー、みんなどしどしやるよーにぃー」、とよく言われているようだ。ホントーにそーか?そーなのか?はい、そうです。ただし、「いーぞー」「いーぞー」と言っとる人々の半分くらいは CGI で掲示板とか作れるという面で入れ込んでいるのであって、ちょっと違うのだが、まあ、結果的に同じだからいいか。 また、「Perl があれば C 言語はもういらん!」と強く申し述べる人がよくいる。たしかにそうかもしれない。 Perl は結構システムに触る事もできるので、かなり C 言語でできることをカバーできるのは確かだ。しかし、騙されてはいけないぞ。ああ言ってるやつらは C プログラマーなのだ。まったくいやらしいったらありゃしないな。 まあ、それはいいとして、シェルスクリプトで書ききれないことがあったらこいつで書いてみる、という方針でやっていくといつの間にか覚える(といいね)。ただし、へっぽこな CGI を作ると(掲示板とか)、見事なセキュリティーホールとなるが、もちろん本人は気づいていない。これは「いーぞ」のヒトに多かったりする。 ■ Ruby ■ これは趣味の言語だ。Perl ができれば全く必要ない。でも言語仕様的にちょっとカワイイので憎めないヤツだ。工数は Perl より少なく済むのは間違いないが、Perl 熟練者は最初キツイかもしれん。それは C プログラマーが Perl を初めて触るとき以上だ。「似て非なるもの」の凶悪さを再認識するね。 管理ではなくて、ちょっとしたお便利ツールとかアプリケーション作成向き。 ■ Java ■ UNIX システム管理には全く必要ではない。初心者にやさしい、と言われているが、それはチョロ過ぎる例題を教則本に載せているからで、つまりまんまと騙されているのである。Java でたいそうなものをちゃんと作ろうとすればオブジェクト指向についてみっちりとお勉強せねばならない。全くヤなこった。まあ、たしかに非生産的で書き殴りまくりアンチデザインパターンスパゲッティコードを書いている分には「適当に書いてもなんとかなる」言語を実感できる。でも、それでは Java の意味はないのね。 ネットワークアプリとかにはまあ向いてる。あと、クラッキング用のアプレットか(やんないでね)。 ■ C ■ ついに出たか。そうだな、Perl ができれば C はいらないな、ではなくて。 ええと、何に役立つのだったか。
とはいえ、制御構造がわかる程度で、読むのが楽になるということは全くない。わかってるからこそ、かえって一生懸命読むのが面倒になるという副作用もある。ただし、ちゃんと読む気になった場合、ポインタの概念が理解できないと一巻の終わりだ。しかし、「 C はポインタでつまづきました」「 C はポインタが難関だ」というのは催眠術にでもかかっているのであって、何も難しいことはない。「これで克服!」とか言う本のわけのわからないたとえなんか読むとよけい分からなっていくのだ。きっと、全ては C プログラマーがリストラ逃れとか保身のために工作していることなのである。まあしかし、ソース読みで読みたい部分というのは概して C 言語なんか全くわからなくても理解できる部分であったりする。 「C ができなきゃいけないかも知れない症候群」に悩まされなくて済む。たとえへっぽこだとしてもだ。 正直な所役に立ってるのはこれだけだ。まてよ、exploit 開発自体ロクなものではないな。ちなみに exploit 開発ではアセンブラの知識がチョコっとだけ要るが、ほんとにチョコっとでよい。無いに等しくてもよい。 Linux や周辺ツールの開発に関わることは素晴らしいことだ。そうありたいものだ。 やはり、言語の勉強にはよい例題が必要だが、いまだに C の教科書では「逆ポーランド電卓」の世界なのだろうか。そうであれば明らかに陰謀である。 ■ C++ ■ オブジェクト指向版 C のようなものだと思われているが、どうでもいいことだ。あたしゃ個人的に好きなんだけど、もうアルゴリズムとか考えたり、メモリ管理するプログラム書くのが面倒なんで、STL とか使えるこれがいいのさ。まあ、ちと敷居高いかもしんない。職業プログラマじゃなきゃ必要なし。 ■ python, awk ■ Windows のヒトに言ったら「は?」と言われることウケアイだ。 ■ Visual Basic, Delphi ■ ない ■ Lisp ■ Emacs の設定でたまにいじる以外、さっぱりわからん。特性などもよくわからない。 ■ Make ■ 全然言語ではないが、この書式は重要だ。ソースコンパイルの鬼になれば自然と身につくし、覚えればさらにソースコンパイルの鬼となる。 ■ ナントカML ■ メーリングリストぢゃなくて、HTML とか XML とかのことだ。だったら最初からそう書けという気持ちは分かる。すまなかった。で、これも全然言語ではないが、ネスケでもちゃんと見える、Lynx はまあいいとして、w3m でもちゃんと見える HTML を書けるかどうかは結構重要だったりする。XML は Java とか Perl のパーサーの使い方を知っておくと便利なことがあるかもしれないし、永遠にないかもしれない。 |