« 2ちゃんねるはなぜ潰れないのか? | トップページ | 詭弁論理学 »

2007年9月18日 (火)

たのしいRuby第2版

以前のentryにも書きましたが、個人的にもっとも親しい言語はCで、他にはJavaを少々やるくらいで、スクリプト系の言語はどちらかというとあまり得意ではなかったのですが、最近RubyやらPythonやらがLLというキーワードで流行りつつあったことと、Rubyの生産性はCの数倍などという言葉に惹かれて、Rubyの勉強はじめてみました。Webに情報があるとはいえ、やはり書籍の方が勉強しやすいということで、「たのしいRuby第2版」を借りて読んでみました。なので、CとJavaの経験が多少ある僕の感想を書いてみます。

話が脱線しますが、Webと違って書籍のメリットは、

  • 携帯性が高い(電車でもトイレでもスタバでも読める)
  • 読むのに疲れない(体勢を動かしながら読み続けられる)
  • 情報の密度が高い
  • 「編集」「組版」という、プロの手によるブラッシュアップがされている

ことだと思います。Webだけで勉強するよりも間違いなく効率的だったともいます。

さて、この本書ですが、まず一番の感想は

  • 読んでいて、自然にRubyの概要が理解できる。そしてタイトルどおりたのしい。

ということです。これはRuby自体の言語設計が分りやすいということと、本書の記述内容自体もすばらしいからだと思いました。1冊の入門書で、ファイルやディレクトリのオープン/クローズ、オープンしたストリームの操作方法、URLを指定してのリモートファイルの取得まで、やりたいことはほとんど記述されています。これは半分はRuby自体の言語のパワーのせい、もう半分は著者の力量だと思います。

  • Rubyは、プログラマを、言語の都合でやらざるを得ない決まりきった手順から開放し、本当にやりたいことに意識を集中させてくれる

と思いました。やりたいことは組み込み関数や、標準ライブラリ(モジュール、クラス)として提供されているので、非常に気楽にやりたいことを実装することができます。スクリプト言語なので、コンパイルも不要です。

[lucy@fedora7 wgetlike]$ more wgetlike.rb
#!/usr/bin/ruby
require "open-uri"

open("http://www.google.co.jp"){|io|
  puts io.read
}

立った数行、これだけで、Googleのトップページのhtmlが表示されます。すごいパワフルだと感じました。Cで実装しようとしたら、socketをつないで、httpヘッダを送り込む必要があったでしょうか。それとも、wgetコマンドをsystem関数でコールするからもっと短いでしょうか?ひとついえることは、すでに潤沢なCPUとメモリーというリソースがある今、比較的高価な人的リソースに最適化された言語があっても良いだろうということです。そしてRubyはそのひとつなのだと思います。

もちろん、低レイヤの技術を馬鹿にするつもりは全然なくて、低レイヤも高レイヤも重要だと思います。むしろ、今僕が一番関心があるのは、低レイヤの知識です。ただ、低レイヤの技術(マシン語とか、論理回路とか)って女子の琴線には触れることがなさそうなんですよね。。。386のアーキテクチャについて優しく教えてくれる美人女子大生とかいないかなぁ。

低レイヤといっても、アノードとかカソード波動方程式とか、半導体の物理にまでは、現時点では興味が持てませんので悪しからず。

|

« 2ちゃんねるはなぜ潰れないのか? | トップページ | 詭弁論理学 »

コメント

はじめまして。9月に入ってからこのブログを拝見させてもらっています。
私も最近ブログをはじめたんですが、るーさんのようにソースコードを載せるにはどうしたらいいんですか?よかったら、ご教授ください。

P.S 更新楽しみにしています。

投稿: Student | 2007年9月24日 (月) 21時38分

コメントどもです。最近はコード書きたい/載せたいと思いつつ、書籍ネタばっかりです。
で、ソースの載せ方ですが、ブログの投稿ページで、「→“」「”←」こんな感じのボタンがありません?それぞれ「引用の開始」と「引用の解除」ボタンで、引用したいソースの前後で押すといい感じになります。

投稿: るー | 2007年9月24日 (月) 23時37分

ありがとうございます。参考になりました。

投稿: Student | 2007年9月25日 (火) 11時58分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/207693/16495813

この記事へのトラックバック一覧です: たのしいRuby第2版:

« 2ちゃんねるはなぜ潰れないのか? | トップページ | 詭弁論理学 »