これからはRuby?それともまだまだPerl? 191
ストーリー by yoosee
どっちの言語ショー 部門より
どっちの言語ショー 部門より
k3c 曰く、 "先日、/.J で Larry Wall 氏へのインタビュー邦訳が掲載され、そこから派生してまつもとゆきひろ氏へのインタビューが実現するなど、いつもアレゲな人々の注目を集めている Perl と Ruby。先日、E-Commerce Times に "What Can Ruby Do for the Enterprise?"という記事が掲載されました。Perlと比較してRubyの長所を紹介していく、という内容になっています。…曰く、「Rubyは最近まで英語のドキュメントが少なかったがこの 1 年半ほどで英語圏でも急速に注目を集めている。インタプリタなので大規模システムの開発には向かないが、次のバージョンはもっと速くなるそうだ。プログラミングは他の言語よりも素早くできる。C 言語による拡張も簡単。Perl 6 も多くの部分を Ruby から採り入れようとしている。これからは Ruby だ!
」(ちょっと誇張)
これに対して use Perl の記事では、MacPerl のメンテナ pudge 氏が "Yeah, but sh influenced the design of Perl, too." などと混ぜっ返したりもしています。…まあそれはともかく、ヨーロッパ Ruby カンファレンスの開催が決定するなど、確かに最近 Ruby の名前を聞くことが増えて来ているように思います。将来的に、Ruby は Web アプリケーション開発などの現場で Perl に肩を並べ、もしかして Perl で構築されたシステムの代替として採用されるようになって行くのでしょうか? 現場の状況はどんな感じでしょうか?"
単に新しいもの好き (スコア:3, 参考になる)
日本人は日本発というのもあるかもしれませんが、どこの国の人だってPerlっぽいけどよりまじめなオブジェクト指向スクリプト言語が出てきたって聞くと、使ってみたくてしょうがないというのが現時点な気もします。
新しいコンピュータ言語としては、おっ!これは面白そうだ、使ってみたいぞ、と思わせる特徴があることが普及するための第一条件じゃないでしょうか。Javaもそういう条件を満たして普及した訳ですし。
そういう意味でRubyは、これは面白いかも!と思うような特徴が結構あって、実際使ってみるとわずか数時間の体験であっても、その魅力を楽しむことができます。
個人的にもPerlをずっと使ってきて、1年くらい前からRubyも使うようになったのですが、まつもと氏の仰る通り「楽しさ」という点ではRubyに軍配が上がると思います。できること・できないこと、という点ではあまり変わりませんが・・・あと「楽をできる」という意味では、うーん微妙なところかなぁ、Perlは資産が莫大ですからね・・・
仕事で使うとなると、楽しさは非常に重要なファクターな気がします。Perl6の方向性を確認していませんが、Ruby及びRiteの開発の方向性として維持して頂きたいと思っています。
CGI用言語として考えてみた (スコア:3, すばらしい洞察)
だから、いかにRubyを使える個人HP用のサーバを増やすかどうかがカギでしょう。使えるところが増えてきたら、Rubyの掲示板とかのバリエーションも増えてきて、自然に普及すると思うな。
でも増やすためには一般人の需要がないといけないんだよな…。一般人にとってはRubyはまだまだマイナーだしな…。
Re:CGI用言語として考えてみた (スコア:2, 興味深い)
ぼくはRubyはまだ使えないのでアレなんですが、 作る人がちゃんとRubyのOOなコーディング手法を理解して、 サイト固有の設定やカスタマイズのしやすさを意識して作れば、 ユーザにとって使いやすいCGIもできるんじゃないでしょうか。
というぼくはさいきんやっとperltootの内容を理解したところで……。 Rubyにもそのうちチャレンジしたいです。
use Test::More 'no_plan';
Re:CGI用言語として考えてみた (スコア:1, 興味深い)
互換性が高いということ、大抵のサーバには最初からインストールされていることが
理由として多いと思います。
Windowsを除く、多くのOSにインストールされていることが多いのは、
CGI用に使ってもらうからではなく、システムの運用で活用するからですよね。
個人ホームページ(のことですよね?)用としてではなく、多くのシステム上で
perl以上に役に立つ、使い勝手の良い環境をRubyが提供しつづければ
perlの代用として普及することも夢ではないと思います。
なお、私はRubyのことを良く知らないので、そういう用途にはどうなのかはわかりません。
私の場合、perlはCGIを作るためではなく、サーバを運用するうえで必要なツールを
短時間で作成するために便利に使うことが圧倒的に多いです。
Re:CGI用言語として考えてみた (スコア:2, 参考になる)
広範囲での Ruby の活用 [momonga-linux.org]、宣言済み。
Re:CGI用言語として考えてみた (スコア:1)
# 自前のヴァーチャルドメインを置いてるのが Cobalt Raq なので、 ID
--- ほしみ
What Can Ruby Do for the Enterprise? (スコア:3, 参考になる)
別にこだわりはないけど (スコア:2, 参考になる)
プログラム言語に優越は存在しないし、比較すること自体がナンセンスなのでは?
Foot to the Home
変なもの部 [slashdot.jp]
Re:別にこだわりはないけど (スコア:2, すばらしい洞察)
ただし、比較する際の前提条件を明確にせずに議論をするのはナンセンス、ということですよね。
Re:別にこだわりはないけど (スコア:1)
<比較する際の前提条件を明確にせずに議論をするのはナンセンス、ということですよね。
はい、その意味でナンセンスという言葉を使いました。「いつ」「どの環境で」「何をするために」「どれくらいの規模で」作るのか、という前提条件なしでの比較は、意味がない、と。
Foot to the Home
変なもの部 [slashdot.jp]
Re:別にこだわりはないけど (スコア:1, すばらしい洞察)
Re:別にこだわりはないけど (スコア:1)
もちろん、ただ比較するだけ、というのは、単なる徒労なのでしょうがね。
#前段には同意。
#ただ、『比較すること自体がナンセンス』という部分に引っかかったもので…
-+- 想像力を超え「創造力」をも凌駕する、それが『妄想力』!! -+-
どっちだっていいだろ (スコア:1, 参考になる)
ディストリビューション間の優劣の宗教戦争に意味がないのと同じだ。
Re:どっちだっていいだろ (スコア:1)
ていうのは聞いてみたいかな。
#別に比較するからって宗教戦争にしなくってもっていう感じで。
-- yuno
Re:どっちだっていいだろ (スコア:1, 参考になる)
Ruby で大規模なコード書いたことないので AC
Re:どっちだっていいだろ (スコア:3, 興味深い)
逆に、関数の入出力仕様とかオブジェクトのインタフェースやプロトコルの設計なんかをしっかりやっとけば、 別にどの言語で作ろうとそう変わらないかな。
# JavaScriptで数万行作って後悔したのでIDで
Re:どっちだっていいだろ (スコア:1, 参考になる)
>数万行を超えるコードにはあまり Perl を使いたくない。
数千行でもいやです。
もともとそんなでかいものを作るように設計された言語じゃないでしょ。>perl
rubyでも大規模開発ってのはやりたくないけれどね(笑
Re:どっちだっていいだろ (スコア:2, おもしろおかしい)
Webあぷりで、そんなんの作りました。
普通に動きます。やる処理が複雑というか、多いのでちょっと遅かったです。
他の人がメンテするの見てると、とても大変そうでした。
(つまり、へたれ癖ありコードだと言うこと)
# ご利用は計画的に。w
Re:どっちだっていいだろ (スコア:1)
「VisualC++とDelphiどっちがいい?」とかのほうがいろいろ正確な比喩になるかな?
ただ、
>逆に小さいモノをその場でやっつけで書くのは(私の場合は)Perlの方が楽。
というように、Perl=「やっつけ用」ってのが骨の髄まで染み付いている人が多くて、
ちゃんと書こうと決めてもいつものやっつけな調子で書いてくれたりして、最終的に
破綻する可能性が高い、という点で規模が大きくなると向いてないとはいえるかも。
両方とも言語仕様的な不足はないんだから、書こうと思えばちゃんと書けるんだけどね。
Rubyはコミュニティの(純粋なOO言語という?)志の高さというかそういうような雰囲気がある
おかげでなのか、ただ人口が少ないせいなのか、そういう人が少ないからまだましなのかも。
Rubyだっていくらでも「やっつけで」書けるんだけどね。
# かなり意識しないとどっちで作っても「やっつけ」になってしまうけどID
Perlなの? (スコア:1)
It's not who is right, it's who is left.
Re:Perlなの? (スコア:2, おもしろおかしい)
「Slashdotに聞け!: これからはRuby?それともまだまだPerl? ひょっとしてPython?」
というストーリーも立ち上げてもらいたい。
んで
「Slashdotに聞け!: これからはRuby?それともまだまだPerl? ひょっとしてPython?COBOLなわけないよね?Adaなんてのもあったな?smalltalk使ってる人いる?FORTRANもまだまだ使ってるかな?BASICも現役か?Schemeもいいよねぇ?ATLはどうかな?」
みたいなのがニョキニョキ
# これ以上思いつかないのでAC
Re:Perlなの? (スコア:1)
Rubyを使う条件 (スコア:1)
# 連鎖しているストーリーはコメントが難しい
-- ラテール部参加者募集中
Rubyに触れる機会 (スコア:1)
一方でRubyを標準で利用出来るようなプロパイダーってあるのかな?
Rubyに触れる機会が現状、Perlに比べるとずっと少ないような気がする。
そのうち出て来るのかな?
しかしみんな良識的だなぁ。
煽り耐性がついてるのかもしれないけど。
Re:Rubyに触れる機会 (スコア:2, 参考になる)
いわゆるISP(接続業者)のオマケ的webスペースだと、使えるとこはあんまりないかもですね。
Re:Rubyに触れる機会 (スコア:1, 参考になる)
Re:Rubyに触れる機会 (スコア:1, 参考になる)
余計なもの (スコア:1, すばらしい洞察)
これからはMacそれともまだまだWindows?<大きなお子さま向けにリナも入れとこ
と同じ問題でしょう。
問題は2つあって担当者の習熟度の問題で慣れが優先される場合と
状況によって適材適所で選択する場合でしょう。
『これから』って勝手決められる問題ではないと思うのですがね。
どちらかというとアンケートネタだと思いますよ
Re:余計なもの (スコア:1)
記事が「余計なもの」である事には同意だけど、タレ込みが煽っている割にはみなさん良識的に答えられているんではないかと。
# もっと感情的な意見が多いかと思いきや、びっくり。
Re:余計なもの (スコア:1, すばらしい洞察)
数年したら次の世代がやらかしてるかもしれんけど :-)
Re:余計なもの (スコア:1, 参考になる)
この前のインタビューで (スコア:1, すばらしい洞察)
人気が出るっていうのは、良いものを作った結果であり、
副作用でしかないわけです。
だから大切なのは、Perl でも Ruby でもどちらを使っても
いいけど、プログラミングを楽しむってことでは?
# これは Ruby のモットーでしたっけ...
どっちを使っても楽しくプログラミングできると思うけどな。
しっくりくるかどうかは人それぞれでしょ。
フレームの素 (スコア:1, おもしろおかしい)
LinuxはFreeBSDに比べて勢いがあるね
Macは値段が高いからPCとは比べられないし
JavaもC#もイマイチだからやっぱりC++
Windowsは今時9Xを使うなんて自殺行為もいいとこだし
Pentium4とAthlonはAthlonが安くてうまい。
DRDRAMはRambusが汚いからDDRにする
OpenGLはDirect3Dに押されて最近聞かない
nVidiaは絵が汚いらしいのでATIにしとく。
Rubyは使う環境がそろっていたら使う
仮名漢はATOKが一番ネ
総論 (スコア:1)
しかし、最近ではmod_perlなどからPHPへの移行が著しいですね。例えば、
http://srad.jp/article.pl?sid=02/06/21/0830229&topic=56&mode=thread
http://srad.jp/article.pl?sid=02/10/30/0741211&topic=56&mode=thread
この辺の記事でしょうかね。実際ISPでもPHPのサポートはどんどん浸透していますし。
一方ワンライナーを始めとしたデータ処理系での用途では、ライバルとしてRubyが台頭してきた訳です。しかもPerlとは違う次元でOOなスクリプト言語です。
そんな訳で、Perlのマーケットとしては本業の競合がRubyであり、新規事業だったCGI市場ではPHPがデファクトになりつつあるということでしょうか。
今後RubyがPHPを逆転する可能性は、現時点ではあまり高いとも言えませんし、あるとしたら.Net対応するといった違った方向性なのかなぁ。
果たしてRubyがPerlに追いつくかどうかという点では、やはり本業勝負になるのではないでしょうかね。作者はシェアがプログラミング言語にとって重要な目標とは認識されていないようですから、もし逆転するとすれば結果としてRubyが普及するというシナリオしかないような気もします。ここ2、3年でRubyはRiteへ、Perlは6へそれぞれ進化するわけで、その方向性の違いによってもかなり話は変わってくるのでしょうけど。
いや、なに言いたいんだかよく分からなくなりました・・・
Re:総論 (スコア:1, 興味深い)
XML 関連は出揃っておらず、CPAN にあたる PEAR ではドキュメントの不整備で廃止になった関数が載っていたりサンプルコードがそのままでは動かなかったり、テストユニットには明らかなバグが残ったままバージョンアップを重ねていたり。
クラス使って書いてますがこれも今夏の PHP5 でどうなることやら。
てんぷらや Movabletype、slashdot が Perl なのを思い出して本屋の駱駝本の前で足が止まる今日この頃。
ユーザー数より良質のコードとノウハウの蓄積による濃さだよなぁ、果たして PHP は十分に濃くなれるのかなぁと一寸考えたり。
紛争をおさめる唯一の手段 (スコア:1)
選択肢は無い (スコア:1)
ベンダ標準のシステムにperl4しか入っておらず, フリーソフトのインストールが禁止されているので否応なくperl4.
いや, それでもまだperl4が使えるだけ恵まれている. ほとんどのシステム管理スクリプトはsh, awk, sedの混沌に沈んでいる. 下手すりゃcshのスクリプトが混ざっていたりする. 大体perlスクリプトが読み書き出来る奴が圧倒的に少ない.
ってえのが現場の実態ってやつです. 稼ぎのための作業に夢を持つのは不幸ですよ.
教えて偉い(?)人! (スコア:1)
>に肩を並べ、もしかして Perlで構築されたシステムの代替として
>採用されるようになって行くのでしょうか? 現場の状況はどんな
>感じでしょうか?
/.もPerl(だよね?)なんだけど…作った人から見て、これの代替をRubyで書く?って訊いてみたら?
私は、RubyもPerlも使ったことがないので何とも言えませんが。
----------------------------------------
You can't always get what you want...
Re:さらに煽り (スコア:1, おもしろおかしい)
さあこいマイナスモデ
Re:さらに煽り (スコア:1)
の
Re:さらに煽り (スコア:1, 参考になる)
>スクリプト言語は Web でしか使わないと思ってる?
甘いね。 [php.net]
Re:さらに煽り (スコア:1)
文字列の取り扱いがへぼいです。
30 分かけてプログラム作って
5 分で処理を終えるより
5 分でフィルタ作って
30 分処理に時間をかけた方が良いですよ。
UNIX 使いは。
# Windows はパイプがヘボイので
# 30 分 PG を作った方が良いかも知れません。
Re:どうせみんなphpが一人勝ちすると思ってんだろ? (スコア:2, 参考になる)
すらど宴会SNS開放中 [e-meet.jp]
PHP 4.1.0 から上げたときにはまった。 (スコア:1)
こんな事すると SESSION が引き継げなかった
PHP 4.3.0.
function hoge( $s ){
GLOBAL $_SESSION;
$_SESSION['afo'] = $s . '1';
}
hoge( 'foo' );
echo $_SESSION['afo'];
Re:PHP 4.1.0 から上げたときにはまった。 (スコア:1)
でも function 内で GLOBAL $_SESSION を
宣言したら session が引き継げなくなるのはショックでした。
# 4.1.x の頃は、宣言していないと使えなかったのに。
Re:PHP 4.1.0 から上げたときにはまった。 (スコア:1)
C で書けと ?
[srad.jp]
Re:どうせみんなphpが一人勝ちすると思ってんだろ? (スコア:1, 参考になる)
いやー、まだまだエンタープライズ関係では普通には使えないですよ。 バッチなどで大量にデータをメモリに読み込むと動作が不安定きわまりないです。 (PHP 4.1系から4.3.0の間では)
こういう点でPerlよりすぐれている(枯れている)スクリプト言語って なかなかないですよね。
# Rubyは仕事で使ったことがないのでACRe:すでに構築されたシステムの代替? (スコア:1)
irb(main):001:0> p RUBY_VERSION
"1.8.0"
=> nil
irb(main):002:0> str = "abcdefg"
=> "abcdefg"
irb(main):003:0> p str[3]
100
=> nil
irb(main):004:0> p str[3].chr
"d"
=> nil
なんだよなぁ。Rubyを選ぶけど。
Re:すでに構築されたシステムの代替? (スコア:1)
私の経験を振り返ってみてRubyにおいてstr[3].chrみたいな感じで、一文字をStringオブジェクトとして取り出す必要があったことはほとんど記憶にないです。それよりも、strをバイナリ列とみなして、str[3]をそのままつかったりとかいった用途のほうが結構あります。
Stringのメソッド群と正規表現を使えば大抵の文字列処理はこなせちゃうんで、インデックスを使って文字を取り出すなんてことはまず考えないです。というかそんな面倒な処理を考え始めたら、まず自分が問題をよくわかってない証拠だと思って別のことを模索するなり気分転換するなりやります。
もともとずっとCでプログラムを書いてたのでRubyを使い始めた当初はこの辺使いづらいなあと感じたことは覚えてますが、いちど流儀を飲み込むとそんなことは忘れちゃいました :)
だったら今のstr[3].chrていうややこしいのでも別にいいかな、と思ったりします。少なくとも私にとっては。
すっげーマイノリティですので (スコア:1)
・・AppleScriptと書いてみる。
※プログラミング仕事じゃないっすよ