初心者向けRubyが欲しい(Rubyの良くないところ)
気が向いたとき、たまーに、Rubyプログラムを書いています。
最近の作品
>Wikipediaのセクションへのリンク(節リンク)を取得するツール (09/22)
>Dimoraが使いにくいので、CSVファイル(Excel/Calc)に出力するツールを作った (09/06)
で、最近、会社のとあるシステムがASP化されたので、Rubyで自動巡回プログラムを作ろうと思い立ちました。
そのとき
やっぱRubyって初心者向けじゃないよね。
と思いました。
と、同時に、誰か初心者向けRubyを作ってくれないかなー。と思いました。
以下わたしが、初心者向けRubyに望むこと。
rubygemsは、要らない
Rubyが初心者向けじゃない。と強く思うのが、これ。
今回、IEのコントロールプログラムを書こうと思って、「watir」をインストールしようと思いましたが・・・
これが、どうにもこうにも、うまくいきませんでした。
C:\Ruby187\bin>ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [i386-mingw32]
C:\Ruby187\bin>gem install watir
ERROR: Error installing watir:
The 'ffi' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
ruby1.9.2やASR187を試してみたり、下の記事を参考にしてみたもののうまくいかず・・・・
> RubyInstallerのMinGW32なRubyでのgem installでmakeが必要なとき(きたももんががきたん。)
過去にも、exerbやocraのgem install で失敗しまくったりと、rubygemsには悪い思い出しかありません。
そういえば、Debianのメンテナが辞任するときも、Rubygemsを槍玉に挙げていましたね。
>DebianのRubyパッケージメンテナ辞任で騒動に (Rails Hub情報局)
Lucas Nussbaumは、RubyGemsは万人向けツールでないと言ったそうですが、まさにそのとおり。
普通に、バイナリやソースをコピーするとか、インストーラーとかのほうが初心者向けと思います。
Rubygemsは多くのプラットフォームをカバーするための仕組みなのかもしれませんが、Ruby利用者の拡大についていけなくなっていると感じます。
初心者向けパッケージは、Rubygems不要にして欲しいと思います。
何でも入りパッケージが欲しい
なぜRubygemsが必要になるかというと、必要なものが、基本パッケージに含まれていないからです。
watirもocraもRoRも、追加のインストールが必要になります。
何かをやりたい!と思い立ったとき、ライブラリのインストールから始めなきゃいけないのは、生産的ではないと思います。
rubygemsがクソだの何だのの前に、何も追加インストールせずに済む、全部入りRubyが欲しいな。と思います。
Win32もRoRもvRubyも。
ついでに、SQLサーバとhttpサーバもインストールしてもらえると、なお良いと思います。
初心者向けパッケージは一つでいい
Rubyののダウンロードページに行くと、Windows版バイナリだけでも、4種類のリンクが紹介されていて、混乱します。
ぶっちゃけ、初心者にとってみれば、MinGW32だろうが、mswin32だろうが、cgywinだろうが関係ありません。
そのくせ、インターネット上のサンプルコードが、微妙なパッケージの違いで、動かなかったりします。
できれば、「初心者向けRuby」として、単一パッケージで配布して欲しいな思います。
開発環境もつけて欲しい
Rubyをインストールするだけでは、開発環境はついてきません。
RDE? NetBeans? Eclipse?
なんでもいいので、初心者向けパッケージと一体化して欲しいな。と思います。
デフォルトの文字コードはSJISでいいんじゃね?
日本人が日本で開発したRuby。
が、そのわりには、日本語処理が特別扱いされているわけではなく、初心者がつまづく原因になっています。
どうせ初心者は、SJISしか利用しません。
もう、ソースコードも内部処理もファイル出力も、すべてSJISで統一したほうがすっきりするのではないかと思います。
マジックコメントも、無指定(デフォルト)はSJISにしたほうが便利と思います。
いちいちrequireだのincludeするのは面倒
たとえば今日の日付を表示したいとき。
print Date::today.to_s
簡単簡単。と思いきや、これだけではだめ。
require 'date'しないと動きません。
漢字コードなら require 'kconv'
URL操作なら require 'uri'
いちいちrequireするのは面倒。
メソッドを使うたびに、requreしているかどうか確認するのは、面倒だと思います。
いっそ、初心者用Rubyは、あらかじめ、全部requireされているってのはどうでしょうか?
もしくは、動的に自動requireしてくれるとか。
それくらいのCPUパワーは惜しくないと思います。
EXE ファイルを作って欲しい
本体だけで、Exeファイルくらい作って欲しいと思います。
別に、最適化なんて無くてもいい。
遅くてもいい、ファイルサイズが巨大でもいい。
とにかく、他人に配布できる形にならいいので。
以上、私がRubyに望むもの。
自分のことしか考えていない、単なるわがままですが (笑
いまのRubyがこういう仕様なのは、Rubyの歴史の中で生まれた必然だということは理解できます。
多くのユーザーやプラットフォームをサポートする仕組みとしては、現実解なのだと思います。
が、初心者(=Windowsユーザー)に最適化した、本当の意味でのlight weight languageがあってもいいんじゃない?とfocuslightsは思います。

