Lisperから見たRubyの印象は、もしかしてC++使いから見たDのそれと同じじゃなかろうか。
- とりあえず、基本的なテクニックに関しては、対応する文法が組み込まれてるなーと。
- でも、自分の足を撃つのがえらく困難そうだなーと。窮屈だなーと。
- このテクニックは対応する文法すらないじゃないか。これ便利だったのに!
- そもそも、ちょっとしたテクニックを覚えれば解決できる問題に、どうして専用の文法を定義するのかなーと。
Mad web programmerのYuguiが技術ネタや日々のあれこれをお送りします。
Lisperから見たRubyの印象は、もしかしてC++使いから見たDのそれと同じじゃなかろうか。
現在のところトラックバックはありません
Powered by "rhianolethe" the blog system
コメント
はじめまして。
Dに関してそれ程詳しく無いので、あまり偉そうなことは言えませんが、C++な人のブログでDに関して否定的なコメントはあまり見ないところからすると、違うんじゃないかというのが正直なところです。あと、言語仕様の充実度から見てもC++ > Dとは単純に言えないですし。むしろ、C++使いから見たJavaとかの方がしっくり来る気がします。
自由度(頭のいい人にとっての使いやすさ)に振るのか、らくちんさ(頭の悪い人にとっての使いやすさ)に振るのか、っていうのは割とよく議論されることだと思うけど、C++とDに当てはめるのは新鮮だと思った。あ、今年もよろしく
あなたの著書だけでおおよそのことは十分でしたよ。お礼も兼ねて「はじめてのruby」で学んだlisperとしてコメントさせてもらいます。
4つ目はさほど思わないけど、1、2、3は思うかな。付け加えると未整備だな発展途上中だなというところも感じていますね。
まだ、知らない技術などもあるので正確なコメントは出来ないことは先に書いておきますので実はある関数やある技術なのに知らないこと抜けてることがあるかもしれません。今理解している範囲では
マクロがないところで歯がゆく感じたり、applyのような関数がないために、抽象化が限定さてるように感じたりしますね。多値の活用もまだ見せかけレベルに感じているところもあるかな。標準関数から多値を積極的に活用するとプログラミングの変化もでてきます。(注:applyというのは関数に引数を渡す際にリストで渡すことが出来る関数です。引数が抽象化されてもこれとマクロがある故に扱い易いというのがあるんですね。rubyの引数を抽象化してるのは引数にアスタリスクをつけてリストで渡してるだけに、applyみたいなところに未整備な印象を持ってるんですね。applyみたいなあってもおかしくないなと思ってるんですがね。注2:多値を積極的に使ったとすると例えばhash関連のところは変わると思う。キーワードにnilをいれても中身がからなのかnilが入ってるのか?というのがcommon lispなら多値の第二変数の真偽で分かるようになっています。hashにnilを登録ってあまりしないかもしれないけど。)
でも、普通に使うには十分だなということと、rubyならではのテクニックで何とかなる部分も多そうだなという印象も持っていますね。