え? オタク、まだRubyじゃない? 43
ストーリー by kazekiri
世界へ目を向けよ 部門より
世界へ目を向けよ 部門より
本家に、「Why not Ruby?」という記事が掲載されて
います。この記事の投稿者曰く、「最近、私は
Ruby
プログラミング言語で遊び始めたが、Ruby は本当にグレートだと
思う。私は Ruby がオープンソースコミュニティで流行って
いないことが不思議だ?どれくらいの人が Ruby を使って
いるのだろう? …中略… Ruby が良いのか悪いのか? あるいは
オブジェクト指向プログラミングが良いのか悪いのか?
意見を聞きたいものである。」
本家でこのような議論されることはかなり Ruby の認知度が 上がっている証拠だろう。ただ、まだまだメジャーの道は 険しいか?
Re:各言語の強み? (スコア:3, 参考になる)
FYI.
"Quidquid latine dictum sit, altum videtur."
言葉の壁? (スコア:2)
それはそうと、スクリプト言語にオブジェクト指向ってあんまり有効じゃないのか?
There is no spoon.
Re:言葉の壁? (スコア:2, 参考になる)
>Rubyのコミュニティーは日本程盛んじゃないし、サポートの
>点でも不安があるし、
メーリングリストは既に英語(ruby-talk)の方が10倍くらい活発です。
すでにユーザ数でもアクティビティでも海外の方に追い抜かれたと
思ってます。ガンバレ日本。
>それはそうと、スクリプト言語にオブジェクト指向ってあんまり
>有効じゃないのか?
そう思ってる(発言する)人は多いんですが、なんか根拠あるんです
かね。PerlもPythonもPHPも、もちろんRubyも含めて、最近のほぼ
全てのスクリプト言語がオブジェクト指向機能を持ってて、ガンガ
ン活用されている現状を見れば疑問の余地はないと思うんですけど。
まつもと ゆきひろ /;|)
オブジェクト指向とスクリプト言語 (スコア:2, 参考になる)
Re:本家ではPythonも話に出てるようですね。 (スコア:2)
-- wanna be the biggest dreamer
Re:言葉の壁? (スコア:2)
> メーリングリストは既に英語(ruby-talk)の方が10倍くらい活発です。
> すでにユーザ数でもアクティビティでも海外の方に追い抜かれたと思ってます。ガンバレ日本。
日本語圏とそれ以外では人口が違うから…と、これは冗談。
ここ /.JP もそうですが、メッセージが日記などに移動してる感じがしません?
べつに悪いわけじゃないけど…ちょっとつまんないな。
-- wanna be the biggest dreamer
Re:言葉の壁? (スコア:2)
Slashdotに聞け! でタレコんでみては如何?
-- wanna be the biggest dreamer
Re:スクリプトとオブジェクト (スコア:2, 参考になる)
同感.だけど,「いいかげんに作ってもオブジェクト指向になってる」という点が,まさに私が Ruby にはまった理由です.
Perl や C++ していた時は「ちゃんとオブジェクト指向するか,目先の安楽をとるか」みたいな葛藤があったんですが,Ruby するようになってから,「楽ちんな開発とオブジェクト指向とは両立するんだ!」と目から鱗が落ちました.
おかげで,本業のC言語による開発がとっても面倒に感じるようになってしまいました.転職したら Ruby のせい?
------
Yoshige
Re:「使う」と「作る」の間にある溝 (スコア:2, すばらしい洞察)
各言語の強み? (スコア:2, 参考になる)
思いつくだけだと…
ruby
あとはキラーアプリしだい? 本は月刊256本(ちがう)出てますしね。
基本的にトーシロなので外したこといってるかも。
Re:スクリプトとオブジェクト (スコア:2, 興味深い)
個人的には、「OOPの方が憶えとかないといけないことが少ない」と思ってるんですが、どうでしょ。
言語の強み? (スコア:2)
There is no spoon.
本家ではPythonも話に出てるようですね。 (スコア:1)
理由はCut and Pasteがしんどいから。インデント違えるとその時点で失敗だし、複数行コピーした時はインデント調整が死にまくりです。
python-mode(emacsen)ならそのあたり調整してくれるでしょうが、いったいPythonが好きだという人達はどうやって他人のコードをパチってるのでしょう。
# 継承するからパチる必要なしとかいうオチはあってもおかしくない
ということでPost-Perl(Postと言っていいかは疑問)はRubyかなと思う今日この頃。
-- やさいはけんこうにいちば〜ん!
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
でも、うろ覚えなんですけど、Rubyって近々バージョンがあがるとか?
オブジェクト指向とか、よくわからないんですけど、「いい」って話はなんか良く聞くなあ。
-------- SORAMINE Yukino
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
わたしもPythonは Ruby を知る前にかなりがんばっていじったけど、馴染めなかったなぁ。インデントに意味を持たせるってのはいかにも bad idea だと思うのだけど、そうじゃないと思う人はそうじゃないと言い張るし。1年くらいいろいろツールを書くのに無理矢理使ってみたけど、Rubyを知ったところで、そいつらを全部 Ruby で書き直して、ざっくり捨ててしまいました。
もっとも、未だに他人のコードを読む機会はあるのだけど。
スクリプトとオブジェクト (スコア:1)
ただ、オブジェクト指向はやっぱり便利ではあるわけだし、オブジェクト指向のいいとこどり、ってのがバランスいいんでしょうね。
Re:言葉の壁? (スコア:1)
オブジェクト指向そのものの理解が不足してるのではないかと思いますが。
私も自分なりの理解でオブジェクト指向的にコード書いて、便利に使っているつもりなのですが。いまいち、自信がないです。
もっと恥をさらす覚悟でオブジェクト指向ってどんなもんよ?って意見の交換ができる場があると嬉しいです。
あー、それってココなのか。
「使う」と「作る」の間にある溝 (スコア:1)
がオブジェクト指向ではかなり深いんじゃないかと思います.
確かRuby本でも3度泣いてClassを作り直すとか書かれていましたけど, 既存のクラスを使うということは気楽にできるし, スクリプト言語として有効だと思うのですが, 再使用可能なクラスを設計・製造するとなると, よっぽど腰を落ち着けて気合いを入れないと難しいと思います.
その反動か, 私みたいな凡人だと設計が終わった段階で気合いが抜けて, CでもCOBOLでもJavaでもインプリメントはなんでもいいじゃんてな気分になっちゃいますね.
Re:「使う」と「作る」の間にある溝 (スコア:1)
でも、ほとんどの人は「使うオブジェクト指向」でいいじゃんって
思ってます。なんだか気負ってオブジェクト指向設計って考えなく
てもいいじゃんってのは私の思いです。
まつもと ゆきひろ /;|)
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
Semanticな意味をインデントに持たせて、それを合わせるということはしますね。でも、Pythonの場合、インデントがSyntaxとしての意味を持つわけ。Perlの{}みたいな、ね。だから、自分の中でインデントにSemanticな意味を持たせたい時、両者が矛盾するとけっこう辛いんです。まぁ、Pythonのスタイルに慣れなさい、という話なんでしょうけど。
ひょっとすると、開発者間でよくある「インデント論争」を封じるためにこういう文法にしたのかもしれないけれど、使ってて楽しくなかったわけです。
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
って、何か違う人への問いに答えちまったお馬鹿さんです。ごめんね。
これだけだとゴミなのでもうちょい。
例えばほら、スクリプト言語と言えば one-liner ですが、Pythonだとこれが辛いのよ。Rubyでもちょっと辛いとこあるけど。
# わたしが書くスクリプトの70%が one-liner というのは秘密だ(笑)
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
(つまりオートインデント)のに、Pythonではインデントその
ものが意味を持つので、オートインデントは難しいってこと
ではないのかと。
まつもと ゆきひろ /;|)
Re:スクリプトとオブジェクト (スコア:1)
もちろんそうでないときもOOP好きだけど、
じっくりやるときなら頭の中で「非OOP→OOP」変換を
する余裕があるんで、Cでもなんとかなったり。
rubyでばばっと書くときって、既存とか簡単な自作とかのClassを
色々ばばっと使う感じ。
Re:スクリプトとオブジェクト (スコア:1)
Rubyを知ってしまうと、それほどOOPが面倒くさく感じなくなるってのは確かに思います。 以前は、C++やPerlの記述のめんどうくささや 旧バージョン(=CやPerl4)との整合性合わせのための理不尽な約束事が、 OOPそのものの難しさとかんちがいしてました。
でも、たしかにクラス抽出ってしんどいですよね。 まあ、そこらへんはスクリプト言語である利点を活かして、 とっととプロトタイプを作っていろいろ実験してみなさい… ということなのかもしれません。
# なお、個人的には「OOP環境はクラスリファレンスが膨大」というほうが大問題です < 鶏なみの記憶力…
Re:「使う」と「作る」の間にある溝 (スコア:1)
別にユーザが増えても増えなくても、我々には大差ないわけで
ただ淡々と歩み続ければ良いと思ってます
まつもと ゆきひろ /;|)
訂正(Re:各言語の強み?) (スコア:1)
rubyを道具にしてない → rubyしか道具にしてない
Re:言葉の壁? (スコア:1)
そうそう、日記もいいけど
コメントもしないと/.jの存続にかかわるとおもうのよ。
コメントもしよう!!(含自分)
Re:各言語の強み? (スコア:1)
> 弱点:便利なんだかどうなのかよくわからないオブジェクト指向
この点を是正したくてPerl6プロジェクトがスタートしたんだと思う。 ただPerl6はLarry Wall言うところの「マルチパラダイム言語」をめざしていて、 「オブジェクト指向」は複数あるパラダイムのone of themにすぎないという位置づけ。 これが吉と出るかどうか。
> 弱点:いいようなわるいような記述方法
これってTIMTOWTDIは両刃の剣ってことを言ってます? それともPerlのsyntaxが記号だらけってこと?
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
Re:各言語の強み? (スコア:1)
変数はrubyわかりやすいですよね。
しかしなんだ。 Larryにくらべて露出の少ない(気がするだけ?)Guido van Rossumがrubyについて語ったりしないかなー。
Re:スクリプトとオブジェクト (スコア:1)
例えばPerlで-d演算子に相当するものはRubyでなんだったっけ…というとき、 とっさにはDirクラス・Fileクラス・IOクラスのどれだったか思い出せないです。 FileTestモジュールにあるので、思い出せないのも当然なんですが ^^;
ま、それでも3~4hopでたどりつけますし、 そもそもNamazu入れれば良いのに…と言われればそれまでなんですけどね ^^;
Re:本家ではPythonも話に出てるようですね。 (スコア:1)
別にBSDでなくてもRubyはやれますよ(^^;
LinuxでもWinでもそれ以外の幾つかのOSでも。
>Rubyって近々バージョンがあがるとか?
ねんじゅう上がり続けてますけど(^^;
幸運の神様と同じですね。カツモクして掴まえないと
目の前を猛スピードで過ぎて行ってしまう。
消えた他言語との比較 (スコア:1)
Rubyのオフィシャルサイトにあった「他言語との比較」ってリンク切られちゃったんですね。うーん。素敵なジョークだと思ってたんだけどなぁ。すげ残念。
Re:消えた他言語との比較 (スコア:1)
まつもと ゆきひろ /;|)
Re:各言語の強み? (スコア:1)
適当に書けるし、書こうと思えば何でも書けるし、他人にはいじりにくいし。クズ入門書がいっぱい出てるところまで同じ。
Re:スクリプトとオブジェクト (スコア:1)
そりゃあ探し回ります ^^;
でも、演算子を見つけるより、クラスを見つけるほうが速い気がする。つまり、記憶しておく必要性がより低い。
でもそれはオブジェクト指向言語に慣れてるからかも ^^;
Re:言語の強み? (スコア:1)
それは初耳。やはりそうだったのか。
Rubyはオブジェクトの後に述語がずらずら続くので、
日本語の方がなじみがいいとは思っていた。
hash.keys.sort.print
ハッシュのキーをソートしてプリント(日本語)
Perlだと
print sort keys %hash
print sorted keys of %hash(英語)
プログラムって主語が出てこない場合が多い。
英語だと命令文として読むけど、
日本語だと主語がない方がかえって自然に読める。
そこらへんでRubyが日本人になじみやすいとは思ってた。
Re:言語の強み? (スコア:1)
省略しない文法であることが影響しているのではないだろうか。
日本語だと主語を省略しても違和感がない。
Re:本家ではPythonも話に出てるようですね。 (スコア:0)
Re:「使う」と「作る」の間にある溝 (スコア:0)
コアなクラスとか凄くよく出来てるのに。
Re:「使う」と「作る」の間にある溝 (スコア:0)
Re:消えた他言語との比較 (スコア:0)
私ゃまつもとさんが本気で言ってるんだとばかり思ってました。
比較できるほど各言語を知らない人であれば信じちゃうんでは?
それはマズいし、まつもとさん自身、各言語の最新情報に追従できないんで消したんじゃないかと思いますけど。
Re:本家ではPythonも話に出てるようですね。 (スコア:0)