2009年2月11日水曜日

シェルでオブジェクト

驚愕。

しているのは俺だけ?


Windows PowerShellで変わるスクリプティング環境
http://builder.japan.zdnet.com/sp/windows-7/story/0,3800092267,20387781,00.htm


今更知ったMicrosoftの底力。
ずっと知らなくてすいません。的な気分になった。

Windowsのシェルの使いにくさときたら、なかった。
Unix系のそれと比べれば、まるで幼稚園児のようだった。
grepもろくに使えない。
lsじゃなくてdirって何?
ふん。所詮はWindows、恐るるに足らず。

みたいに笑えていたのはもはや過去の話。
今、MacとLinuxは震え上がっているに違いない。
シェルがオブジェクト指向になっている。

Windows PowerShellでは

PS> $files = ls

みたいにlsの結果をオブジェクトとして扱える。(ついでに言うと、lsが使える!)
それでもって例えば、

PS> $files.length


とすると、lsで得たファイルの数が表示される。
こんな文法をシェルで見る日がくるとは思わなかった。
Pythonとかみたい。


これにMacやLinuxは勝てるのか。


Linuxはもうbashを離れられない。
Windowsは前のシェルスクリプトがしょぼかったから互換性を保ちつつ革新的な新しさが達成できたが、シェル環境がこれ以上ないほど整えられたLinuxは身動きがとれない。少しbashを変えただけでエラーの嵐が起こる可能性がある。

↓例えば、bashをオブジェクト指向「っぽく」書くことはできる。
http://mediakey.dk/~cc/bash-shell-object-oriented/

でも、定められた言語設計をごまかすことは難しい。
下の方に厳しいコメントが続いていた。


Macはどうか。
まあbashを捨てることはできるかもしれない。
しかし、Applescriptにはインタラクティブシェルがないし、じゃあMicrosoftのようにシェル言語を新しくつくるかというと、
そんな余裕はないだろう。
Objective-Cのように、bashをオブジェクト指向っぽくするのに一肌脱いでくれるなら、みんなKHTMLを巡ってあった確執も忘れてAppleはオープンソースの英雄とたたえられるかもしれない。
俺はObjective-Cは見慣れない感じで嫌いだけど。
それでも、Macのbashはしょぼいって言われている現状を思うと心配。


でも、ここまで書いて思ったのは、
上に「Pythonとかみたい」って書いたけど、
シェルとかマクロ言語とかを捨てて
「Pythonとか」グルー言語を使えばいいのかな?
ちょっと遅そうだけど。


どの方向が正しいのかわからない。
でもとにかく、Windowsが盛り返してきそうな、勢いを感じた。

0 件のコメント: