«前の日記(2007年04月18日) 最新 次の日記(2007年04月20日)» 編集

Matzにっき


2007年04月19日 [長年日記]

_ [言語] lisp-1 and lisp-2

最近、「CommonLispはLisp-2で、SchemeはLisp-1である」という文章を読んだが、 恥ずかしながらLisp-1とかLisp-2ってなんのことだかわからない。 Lisp 1.5なら知ってるんだけど。

ので、調べてみた。

で、その結果、名前空間がひとつ(関数と変数に区別がない)のがLisp-1で、 区別があるのがLisp-2であるということだそうだ。なるほど。

だとすると、PythonやJavaScriptはLisp-1で、RubyはLisp-2だな。

_ [言語] The shortcomings of scripting | InfoWorld | By Andrew Binstock

スクリプト言語に欠けているもの、という話。

  • スケーラビリティ
  • パフォーマンス
  • 開発ツール(IDE)
  • コミュニティ

まあ、最後のものはともかく(Javaよりも開発者が少ないという意味らしい)、 残りについては自覚はしている。次第に改善されるんじゃないかな。

_ [Ruby] Ruby: let's get an AST - fAST

Ruby 2.0ではぜひAST(Abstract Syntax Tree)が欲しい、という話。

一度公開しちゃうと変更できなくなって面倒だから、 という非常に開発者の都合で公開していないんだが、 やっぱりAST機能欲しいんかねえ。

いっそ、RubyのソースコードからS式を吐くフロントエンドを作るというのはどうだろう。 で、S式からYARVバイトコードを作るとか、Gaucheに喰わせるとか。

その場合、Rubyってのは本当にLispの一種になっちゃうね。 なんとなく先祖帰りな雰囲気。

_ [Ruby] Twitter, Rails, Hammers, and 11,000 Nails per Second − Thought Palace

「毎秒、11,000アクセスというのはすごいけど、それDBアクセスいらなくね?」という話。

確かに毎秒11,000回DBにアクセスすると大変なことになりそうだけど、 Twitterの性質をよく考えてみると、そもそもDBに格納する必要のない情報ではないだろうかと。 ActiveRecordのおかげでDBアクセスが簡単になって、 DBを単なるストレージのように扱えるが、本当はSQLデータベースに向いてない使い方も されているんではないだろうか、という指摘。

あと、毎秒11,000アクセスってのは純粋にものすごい数で、 それってAPの設計の見直しでもうちょっと下げられるような気もする。

_ [Ruby] Why was Rails only possible with Ruby? - O'Reilly Ruby

「なぜRailsはRubyでしか可能にならなかったのか」という話。 TurboGearとかDjangoの人とかは「Pythonでもできたぞ」とか言いそうだけど。

それはRubyismのおかげだそうで、で、「Rubyismとはなにか」ということは、 『Rubyisms in Rails (Digital Short Cut) - $9.99』を読むとわかるんだそうだ。

そうかぁ。 $9.99かぁ。

_ [Ruby] InfoQ: Adding Properties to Ruby Metaprogramatically

Rubyのメタプログラミング機能を使ってプロパティやプラガブルタイプを実現する、 という話。

ところで、例題に

property :speed {|v| v >= 0 && vn< 300  } 

というコードがあるが、これはSyntax Errorになる。 これはRubyのパーザーが「:speed {|v| v >= 0 && vn< 300 }」をメソッド呼び出しと 解釈しようとするからだが、数値、文字列、配列、シンボルなど 識別子以外のものの後ろのブレースの優先度が高すぎるのが原因だ。

ということで、1.9の文法を少々いじって、文法エラーでなくすことにした。


«前の日記(2007年04月18日) 最新 次の日記(2007年04月20日)» 編集