2004年1月22日号

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
「続システムはオブジェクト指向 Ruby & Flash」(#001)   
                                                        福井修@Fsys.NET

【○】本日のお題 「人にやさしいプログラミング言語」━━━━━━━━━━

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■■【 はじめに 】
────────────────────────────────────
こんにちは、福井システムリサーチの福井です。
前シリーズ注1)に引き続き「続システムはオブジェクト指向 Ruby & Flash」と
いうテーマで執筆させて頂きます。

RubyFlashのエレガントなオブジェクト指向スクリプトデュエットについて連
載していますが、リッチクライアントの方向は、ますますトレンドになってゆく
気配がします。

このリッチクライアントを実現する方法は、JavaAppletマイクロソフトの
Office System(かつては ActiveX というのもありましたが..)また本命Flashの
ColdFusion連携などいろいろある訳です。

なぜ RubyFlash が良いのかについては、前シリーズで書きましたのでどう
ぞご覧ください。

本連載では、1) 折々のトピックス 2) WindowsRuby したり 3) 前回の応用編
の Ruby&Flash&PostgreSQL での 応用例の少々濃い目の話しを交えながら システ
ムや実装について書き進めたいと考えています。

対象は、サイト企画者やサイト管理者、システム実装者、また プログラミング
に興味がある方で今後の動向をチェックしたい方などを想定致します。

どうぞよろしくお願い致します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ Javaのめまぐるしい変遷
────────────────────────────────────
 プログラミング言語の話題なので、Javaの動向もチェックしておきましょう。
 Java Technology Conference 2004 が2月18日から開催されます注2)が、目玉の
J2SE1.5(Tiger)のコンセプトが ”Ease of Development ”(簡単開発)です。
また何度か取り上げましたが、JSF(JavaServer Faces)もJavaが簡単に開発できる
ようにするツールです。「簡単」になることをことさらに掲げるというのは、現
状はそうではないということです。

Strutsは、サーブレットとJavaServer Pages (JSP) を使用するMVC(Model-View-
Controller)のフレームワークで、JSPサーブレットでの問題をJSPタグの導入
したりパターンを括りだして(フレームワーク化)改善しようとした進化した方
式です。注3)

Strutsが普及し出したところでJSFが華々しく登場し、StrutsJSFの機能の一部
は重複する注4)ので、せっかくStrutsでの開発に慣れて来てもまた変更を迫られ
ます。

また年末にJ2EEの最新バージョン(Ver1.4)がようやく正式に出ましたので、そ
れに対応していないツールは、どんどん時代遅れになってゆきます。

さらに Eclipse はどんどん浸透していますから Eclipseを使いこなしていない
とこちらも時代遅れになってゆきますし。

Java開発の現場は、次々追いかけるのは大変ですね。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ お手軽な Ruby
────────────────────────────────────
 オブジェクト指向スクリプト言語 Rubyの 感動的なところは、何度も語ってき
ましたが、Rubyも バージョンが上がっています。昨年8月12日に 1.8.0 さら
に12月25日に 1.8.1 がリリースされました。

まだ実際にさわっていない方の為に、今回は この最新版をインストールして は
じめの一歩を解説します。是非 体験してみてください。

 ノートPCでWindowsXPを使っているという方は多いと思いますが(私もそうです)
そのケースで WindowsRubyに踏み出してみましょう。

・ ダウンロード
  WindowsRubyを使うにはmswin32版,cygwin版,mingw32版,bccwin32版,djgpp版
  などがありますがまあ Win32版がメジャーです。
  中村(う)さんのサイトからバイナリが入手できます。
  http://www.dm4lab.to/~usa/ruby/#mswin32
  からruby-1.8.1-i386-mswin32.zipをダウンロードします。

・ 解凍
  .zipファイルを解凍するとbin,doc,lib,manのフォルダとREADME.1st,MANIFEST
  ファイルに展開されます。

・ 設置
  c:\Program Files\ruby フォルダを作成し解凍したフォルダ達をそこに配置し
  ます。

・ PATH設定
  システムのプロパティ 「詳細設定」「環境変数」「システム環境変数」
  変数 Path に "c:\Program Files\ruby\bin;"を追加します。
  
・ 動作確認
  コマンドプロンプトの画面で ruby -v と入力します。
  ruby 1.8.1 (2003-12-25) [i386-mswin32]
  と反応があれば、インストールOKです。

・ はじめてのプログラム
  コマンドプロンプトの画面で irb と入力します。
  これで、対話式に Ruby を実行できます。
  ( readline.dll が無いと怒られたりしますが気にしない^^; )  

  irb(main):001:0>
  のプロンプトが出て入力待ちになったら

  p 'Hello Ruby!'

  と入力します。これは文字列 "Hello Ruby!"を出力せよという命令です。
  Enterを押すと
  "Hello Ruby!" と応答し
  =>nil

  と評価結果が出ればOKです。
  対話を終了するには

  quit

  と入力します。

  これで もう あなたは Ruby プログラミングに 踏みだしたのです。 

・ 次は プログラムソースファイルを作成して実行
  エディタ等(Notepad.exe..)で次を入力してソースファイルを作成します。
  先程と同じ

  p 'Hello Ruby!'

  をソースとして入力して、first.rb というファイルを作成してセーブします。

  実行します。
  > ruby first.rb

  "Hello Ruby!" と出力されるはずです。

  簡単ですね。

・ さらに 今度は、現在時刻を出力してみましょう。

  p Time.now

  これを 対話式でも ソースファイル作成実行でもやって見て下さい。

  Wed Jan 21 03:14:32 東京 (標準時) 2004

  とか 現在時刻が出力されます。

  これは Timeクラスの nowメソッドを実行しているので、もうあなたは
  オブジェクト指向プログラミングが実践できたのです。

  一行で先端オブジェクト指向プログラミングが実践できるのですから
  なんと人に優しいプログラムなのでしょう (^-^)
  
 
 もっとやってみたくなったら 「Ruby」で ぐぐって注5)みましょう。山ほどヒ
ットしますよ。

 また Javaで 現在時刻を 出力するのはどうすればよいでしょうか。
 次回比較してみましょう。

重装備 Java に対して オブジェクト指向ではより先進なRubyお手軽さが際立ち
ます。既に「簡単」さは ready です。コンパイルが不要という一点でも簡単さ
が長じています。簡単に書けるということは、同じテーマでもかかる時間が少な
くて済みますし、同じ時間では、より深く高度なことができることになります。

人にやさしいプログラム言語の方が、より複雑・高度なことが出来る条件が揃う
のです。
               
 では また次回をお楽しみに
  
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
※ 注釈、資料、参考情報
────────────────────────────────────
注1) 前シリーズの「システムはオブジェクト指向 Ruby & Flash」
1.【 はじめに 】なぜオブジェクト指向なのか そして Ruby&Flash なのか
    http://www.melma.com/mag/02/m00020302/a00000592.html
2.【 基本編 】オブジェクト指向とは
    http://www.melma.com/mag/02/m00020302/a00000602.html
3.【 基本編 】Ruby がなぜすごいのか
    http://www.melma.com/mag/02/m00020302/a00000612.html
4.【 基本編 】Flash ActionScriptオブジェクト指向から見ると
    http://www.melma.com/mag/02/m00020302/a00000621.html
5.【 実践編 】MVCモデル を Ruby&ActionScript で実装する
    http://www.melma.com/mag/02/m00020302/a00000631.html
6.【 実践編 】サーバサイドで Ruby&PostgreSQL 連携
    http://www.melma.com/mag/02/m00020302/a00000641.html
7.【 実践編 】LoadVars連携での ログイン認証
    http://www.melma.com/mag/02/m00020302/a00000651.html
8.【 実践編 】LoadVars連携での DB検索
    http://www.melma.com/mag/02/m00020302/a00000661.html
9.【 応用編 】Ruby&Flash&PostgreSQL での 郵便番号検索
    http://www.melma.com/mag/02/m00020302/a00000671.html
10. 【 応用編 】Ruby&Flash&PostgreSQL での 応用例
    http://www.melma.com/mag/02/m00020302/a00000681.html

注2)Java Technology Conference 2004 featuring Sun? TechDays
    http://www.jtc2004.com/

注3) Struts、オープン・ソースMVC実装
    http://www-6.ibm.com/jp/developerworks/java/010824/j_j-struts.html

注4) Struts、Tiles、JavaServer Facesを統合する
  http://www-6.ibm.com/jp/developerworks/java/040109/j_j-integrate.html

注5) google で検索することを「ぐぐる」と言います。

 
【プロフィール】
福井 修 ( FUKUI Osamu )o-fukui@po.iijnet.or.jp
福井システムリサーチ http://fsys.net/  主幹。システム構築歴27年。
システム構築エキスパート
日本Linux協会、神戸商工会議所情報処理学会、関西IT共同体 会員
関西ソーホ・デジタルコンテンツ事業協同組合デジタルハリウッド神戸校 Java講師

復刻の一覧も挙げておきます。

「システムはオブジェクト指向 Ruby & Flash」
1.【 はじめに 】なぜオブジェクト指向なのか そして Ruby&Flash なのか
   復刻 http://d.hatena.ne.jp/iR3/20060410
2.【 基本編 】オブジェクト指向とは
   復刻 http://d.hatena.ne.jp/iR3/20060411
3.【 基本編 】Ruby がなぜすごいのか
   復刻 http://d.hatena.ne.jp/iR3/20060412
4.【 基本編 】Flash ActionScriptオブジェクト指向から見ると
   復刻 http://d.hatena.ne.jp/iR3/20060413
5.【 実践編 】MVCモデル を Ruby&ActionScript で実装する
   復刻 http://d.hatena.ne.jp/iR3/20060414
6.【 実践編 】サーバサイドで Ruby&PostgreSQL 連携
   復刻 http://d.hatena.ne.jp/iR3/20060415
7.【 実践編 】LoadVars連携での ログイン認証
   復刻 http://d.hatena.ne.jp/iR3/20060416
8.【 実践編 】LoadVars連携での DB検索
   復刻 http://d.hatena.ne.jp/iR3/20060417
9.【 応用編 】Ruby&Flash&PostgreSQL での 郵便番号検索
   復刻 http://d.hatena.ne.jp/iR3/20060418
10. 【 応用編 】Ruby&Flash&PostgreSQL での 応用例
   復刻 http://d.hatena.ne.jp/iR3/20060419