Ruby(1.8)についての雑感。というか落書き。
# 嘘を書いていたら、教えてください。
- スクリプト言語で、かなり遅い(1.9で改善されたし、そもそも実行系が色々出てるので、もう触れなくていい問題かな)。
- 制御構造は、ALGOL族の末裔なので、慣れてるはず。
- クラスベースのオブジェクト指向なので、慣れてるはず。
- ビルトインのライブラリが充実していて便利。
- 破壊的なメソッドが区別されてて分かりやすい。
- 全ての文法が互いによく考慮されており、非常に扱いが良い。
Rubyは非常に動的な言語。Objective-Cに近い感じ(実はSmalltalkに近いのだろうか)。
たとえば、いわゆる「ダックタイピング」。型構造でメソッド呼び出しを縛るC++/Javaなどとは違って、その名前のメソッドがあれば呼んでやれ、ということ。
これはC++/Javaなどから見ると静的チェックがしにくいともいえる。ただ、ちゃんとテストをすれば潰せる問題のはず。
- includeでインスタンスに特定の操作を追加できる。
- 「import Math」とかにちょっと感激。selfにメソッドを追加するんだ!!
- 既存のクラスライブラリもHackし放題。まあ、ほどほどにしとかないと。
行末のセミコロンが必須じゃないのは良いかも。慣れてくると他の言語でセミコロンを打ち忘れそう。
Perlとできることはそんなに変わらないかもしれないけど、よっぽど綺麗なコードが書けるんじゃないかな、と思う。
C
今では、Cは普通のプログラミング言語では無いのかもしれない。OSとか制御とか特殊用途に使われる言語だ、とか書いてしまおう。
この頃はJavaとかRubyから入門する人も増えたと思う。とりあえず初学者がCをやって挫折、というパターンが減ってきたのは良いことと思う。
でも、一度は勉強しといた方が、いろいろな意味で理解が深まるとは思う。
C++
機能豊富、なんでもできるかわりに相互作用が悲惨で、素人には使わせられない。
# なんと適当な書き方だろう、一時期ずっと使っていたクセに。
C++よりもランタイムで行なう部分が大きい(特にGC)し、プログラマの裁量も低いので、ずいぶん扱いやすい。もちろん見方によっては全く逆の意見になる。
単一継承/インタフェースを強要させられるため、どうにもコードがごてごてする。ただし、エンタプライズ開発では、これは悪いことばかりではない。
Perl
Rubyの1ヶ月前らしい。ネイティブPerl人が書いたコードはまさに暗号文で、一行解読するのに一日かかったりする。ちょっと言い過ぎか。
Railsとかだと,StringクラスとかNumericクラスなんかの超基本クラスを魔改造していて,
ひどいよ.
2.days.ago とか.
うん。そういうのも一応聞いた上で書いてる。まあノリが違うといえば、それだけなんだけどねぇ。