Skip to main content
産学官共同セミナーおよび第10回K-Ruby




  鹿児島大学 学術情報基盤センター
           下園幸一
  simozono@cc.kagoshima-u.ac.jp

                                  1
 アプリケーション開発動向
 Ruby の概要
 Ruby on Rails の概要
 Ruby on Rails で作られたアプリケー
  ション
 個人的に思う Ruby on Rails の問題点
 地域での Ruby および Ruby on Rails の
  コミュニティー
 Ruby & Ruby on Rails 講習会について
                                  2
 業務用アプリはネイティブアプリからWEB
アプリへ
  Visual Basic 等で作成して物がWEBアプリへ
  HTML5やCSS3, JavaScript により画面表現力の
   差はなくなった(WEB上でExcelが動く時代)
  PCがネットワークに接続していなくても
      オフラインで動くWEBアプリもある

      PCの中でWEBサーバ動かしてもよい

  OS、開発言語に依存しない
  デバイスを直接扱うものには弱い

                                 3
 とにかく、動くものを見せろ
    途中での仕様変更バンバン
 「動くソフトウェア」で顧客の要求要件
の確認
    迅速な「動くソフトウェア」作成が必要(週単
     位)


 途中での仕様変更にも耐えられるような
プログラミング環境が必要
    開発生産性、メンテナンス性、一定以上の品 4
   まつもとゆきひろ(Matz)によって開発され
    たオブジェクト指向スクリプト言語
       1995年12月にニュースグループfj上で発表された
 簡単にいえばPerlのような手軽さで「楽し
  く」オブジェクト指向しようという言語
 主な適用分野
     テキスト処理
     システム管理

     ネットワーク・プログラミング

     Webアプリケーション開発

   フリーソフトウエア
                                 5
   不況で時間ができて「Ruby」の開発が始
    まった
1990年に卒業して、ソフトハウスに入りました。決め
ていたのは、東京では働かないということ。田舎育ち
で人が多いのは嫌いだったし、(略)
 ところが、数年すると、バブル崩壊の影響が出始め
て。社内システムも、仕事が減って忙しくなくなって
しまった。でも、マシンはあるわけですから、できる
ことをやろうと思って。それで「Ruby」の開発を始め
たんです。あったらいいなぁと思えるものを、時間が
あったんで作り始めてみた。それだけです。会社で
やっていましたから、同僚には話していました。
(略)
出典:Tech総研「世界のオープンソースRuby開発者まつもとゆきひろ」
                          6
温泉がいいらしい。


鹿児島市内温泉数:72件
               7
   オブジェクト指向言語
     全ての値(データ)が例外なくオブジェクト
     組み込みオブジェクトとユーザ定義のオブジェク
      トが同様に扱える
     必ずしもクラスを定義する必要はない

 型宣言が不要、変数宣言が不要
 例外処理、マルチスレッド
 クラスライブラリが豊富
       ユーザ提供のクラスライブラリが一元管理されて
        いる
                             8
   MRI(Matz’s Ruby Implementation)
     まつもと氏によるC言語での実装
     ソースコード配布
     Version 1.8.x 系列と 1.9.x 系列が混在中
     有志による Windows 版バイナリもある

   JRuby (最新は 1.6.5)
     Javaによる実装
     Javaのクラスを呼び出すことが可能(逆も可)
     本家より速い(JIT/AOTモード)

   IronRuby(最新は 1.1.3)
       .NET Framework 上で動作する
                                       9
test1.rb
class Fixnum
 def + (a)
  self * a
 end
end
               $ ruby test1.rb
puts 1+2+3+4   24
puts 4+2.0     8.0
puts 2.0+4     6.0
               $                 10
   Rails以外にもいっぱいあります
     Camping
     Padrino
     Cramp
     Renee
     Nitro
     Ramaze
     Sinatra
     Waves
     Merb
           Ruby on Rails に統合(Rails 3.0 より)


                                              11
   デンマークのDavid Heinemeier Hansson氏(通称
    DHH)によって開発(2004年7月~)
   MVC(Model-View-Controller)アーキテクチャをサ
    ポート
       プログラマーとデザイナーの分離
       再利用可能なビジネスロジック
   フルスタックなフレームワーク
       ライブラリとユーティリティプログラムがそろっている
   最新技術に対応
       HTML5対応、控えめなJavaScript、RESTful なインター
        フェイス
   オープンソース
   哲学
       DRY(Don’t Repeat Yourself) 同じことは繰り返さない
       CoC(Conversation over Configuration) 設定より規約
                                                      12
   Twitter
       ~2008年くらいまで。その後はScalaやらJavaVM
   楽天
       社内システムに Ruby と Ruby on Rails を採用
   クックパッド
       「たべみる」サイト構築を Ruby 初級者が1カ月で作
        成できたことから、Rubyに移行
   食べログ (Ruby on Rails)
       リニューアル当時; 月間利用380万人。2,900万PV/
        月
   首都圏全域の地域防災システム
       Supreme
       ティージー情報ネットワーク(東京ガス子会社)
                                           13
14
 Ruby   on Railsで10分で作るTwitterもどき
  (ちょっと古いです)
  http://japan.zdnet.com/development/analysis/20
  354695/




                                               15
   環境構築が難しかった
       Ruby 最新バージョン導入とかDBの導入とか
   バージョンがガンガン上がる
       もちろん旧バージョンに固定化もできるが。
   フレームワークの理解
       慣れるしかないのか?
   規約から脱線しないようにする
       慣れるしかないのか?
   IDEは必要ないのか?
       いいのがあまりない。
   Macユーザばっかり
                                  16
http://blog.newrelic.com/2011/09/28/state-of-the-stack-a-ruby-on-rails-benchmarking-report-sept-2011/
                                                                                                    17
18
   日本Rubyの会
       Rubyist Magazineの発行、RubyKaigiの開催
   Ruby Business Commos
       2007年7月 に福岡にて設立。設立2年で参加メン
        バーは700名
   たくさんの地域 Ruby, Ruby on Rails 勉強会
    等
       北海道1, 東北2, 首都圏12, 東海2, 関西中国5, 九
        州2
   Ruby City MATSUEプロジェクト
       島根県松江市が地域の産業振興として進めている
        プロジェクト。
                                           19
 鹿児島Rubyコミュニティ(K-Ruby: Karaimo
  Ruby Community)
 http://www.facebook.com/groups/kagoruby/
       Facebook イヤという人もいるので、そろそろ外へ
        出したほうがよい?
   2011/05/26 設立(第1回 ソフトプラザかごし
    ま)
       参加者20名ほど
   発起人は、増満さん、古屋先生@鹿児島大(で
    いいですよね?)
       増満さんは、中国初のRuby 会議
        「RubyConfChina」 の仕掛人の一人
                                             20
   2011/05/26 第01回 ソフトプラザかごしま
       発表者: 増満(この会の目的等)古屋(Rubyの概要)
   2011/06/29 第02回 鹿児島大学学術情報基盤センター
       発表者: 下園(Ruby on Railsの開発環境について)、小田
   2011/07/28 第03回 同上   発表者: 古屋(RubyとDBの連携)
   2011/08/25 第04回 同上   発表者: 新井、下園(Ruby on Rails のサンプル作成
    ― 認証と国際化 ―)
   2011/09/29 第05回 同上   発表者: 増満
   2011/10/27 第06回 同上   発表者: 増満、小田
   2011/11/24 第07回 同上   発表者: 古屋(BundlerとRails基礎)、増満
   2011/12/15 第08回 同上   発表者: 下園(仮想環境を用いた Ruby on Rails 学習
    /開発環境)、増満
   2012/01/15 第09回 同上
       SASS/COMPASS入門(株式会社W・I・Z 松岡)
       Rubyビジネスコモンズ勉強会参加報告(古屋)
       Ruby on Rails講演会について(下園)
                                                            21
 Windows 上で動く仮想環境(VMware Player or
  VirtualBox)で、Linuxを動かし、Ruby と Ruby
  on Rails の講習会をやる
 本年4月 or 5月頃~ 週1回10回程度
 Ruby プログラミングの基礎とRails でサンプ
  ル開発
       IPA:「OSSモデルカリキュラム導入実証」のテキ
        ストを使おうかな。
 「ソフトプラザかごしま」2F 鹿児島大の部屋
  で
 準備が整ったら正式にアナウンス
                                   22
   Ruby Association による認定制度
       Ruby Association Certified Ruby Programmer
        Silver
            試験時間90分、50問選択式、CBTによる試験
       Ruby Association Certified Ruby Programmer Gold
            試験時間90分、50問選択式、CBTによる試験
     もう一つ上を策定中
     Ruby Association Certified System Integrator Silver
            5名以上のSilver又はGold資格保持者が正社員として所属
             している。
       Ruby Association Certified System Integrator Gold
            5名以上のGold資格保持者が正社員として所属してい
             る。                                         23
 中国経済産業局    地域経済部:「中国地域に
  おけるオープンソースプログラミング言語
  「Ruby」の拠点形成可能性調査」,平成23年
  3月
 IPA:「Rubyの普及を目指した自治体基幹
  業務システム構築」, 平成20年2月
 K-Ruby 資料(主に古屋先生のもの)



                       24