日本Ruby会議2008 0th day

参加してきました。

が、Golfコンペ (お題に従って、できるだけ短いプログラムを作る) に熱中しすぎて、ちゃんと講演を聞いていませんでした。

とりあえず、いくつか印象に残った言葉をメモっておきます。

  • まつもとゆきひろ氏: (NaClのSIビジネスにおけるRubyの適用について) 島根のお客さんは、結果さえ出れば文句は言わない (ので、Rubyを使うことへの障壁が低い)。東京のお客さんは、使う技術 (例えばJava) を指定してくることが多い。最近ではRailsの普及から、Ruby/Railsが指定されることも増えてきた。
  • Rubyビジネスコモンズ 最首氏: Javaに対するRubyの優位点の1つとして、学習曲線の早さがある。「Javaが使えます」という技術者でも、個々のフレームワークやそのデザインパターンまでは使いこなせないことが多く、マニュアル化と教育にかかる手間が大きい。
  • CTCの方 (お名前失念): エンタープライズ向けにRubyが普及する条件として、メディア (例: 日経、NHK) をはじめとする社会的評価の影響が大きい。社会的評価は、Rubyコミュニティによる「Ruby愛」を原動力として生まれる。この流れはLinux普及と共通。今後のエンタープライズRubyの普及のためには、Rubyのブランド化 (役員クラスの間で、「Rubyを使うと幸せになるらしい」と認識されること) と、品質面での安心度 (標準規格化)、技術者の流通が上げられる。技術者の流通を促進するために、CTCでは、Ruby技術者認定試験を主催している。
  • 永和システム 角谷氏: Rubyアジャイル開発の組み合わせにより、「ふつうのシステム開発」ができる。「ふつうのシステム開発」とは、投資効果のある、ちゃんと動くソフトウェアを、期待される期間内に提供し、維持・変更し続けられること。お客さんの要件は、最初からきっちりとは決まっていない (ゆるふわ)。イテレーティブかつインクリメンタルな開発により、ドンピシャなシステムを構築することができる。
  • TIS 倉貫氏: 大企業での自社開発ソフトウェアのオープンソース化は大作RPGのようなもの。小ボス (課長)・中ボス (部長)、...と倒していくことでレベルアップする。ラスボスは社長。

あと、どなたの講演か失念しましたが、「コミュニティに対して情報/ノウハウを提供することは一種の投資であって、そこから別の情報/ノウハウを得ることができる」というような話が印象的でした。

Golfコンペ では、参加者が少なく、参加者は全員何かしら賞品をもらっていたようです。私は以下の書籍をゲットしました。

RailsによるアジャイルWebアプリケーション開発 第2版

RailsによるアジャイルWebアプリケーション開発 第2版

以下、Golfコンペ での私の回答結果を晒してみます。それなりに頑張ったつもりですが、まだまだ修行が足りないようです。

問題1: 'hello' と出力

puts'hello'

12バイト (改行込み)

模範回答

puts:hello

10バイト (改行なし)

問題2: 複利計算

a=gets.split(':').map{|i|i.to_i}
s=a[1]
a[0].times{puts s;s=(s*(100.0+a[2])/100).to_i}

87バイト (改行込み)

問題3: 漢数字表記の数値 (<10000) をASCII表記に変換

t=Hash["",1,"",2,"",3,"",4,"",5,"",6,"",7,"",8,"",9,"",1]
$<.each{|i|
n=0
i=~/(.*)(.*)/&&(n+=t[$1]*1000;i=$2)
i=~/(.*)(.*)/&&(n+=t[$1]*100;i=$2)
i=~/(.*)(.*)/&&(n+=t[$1]*10;i=$2)
i=~/.+/&&n+=t[$&]
puts n}

241バイト (改行込み)