Rubyのユーザーを増やすためにできること。
Rubyは素晴らしい言語だ。(ここで愛情表現をしてもいいけどアレな内容になりそうなのでやめる。)
だけど、Rubyユーザーが増えるためには、まだまだ障害が大きい。そしてその中には、非常に些細な問題もあると思う。
例えば、別の言語のユーザーがRubyに触れるのをためらう一つの要因は、やはりその見た目があると思う。
例えば、BASICという言語がある。僕はあの言語はあまり好みではない。そもそもかなり歴史のある言語で、利便性が高いとは言いづらい。
Visual Basicという言語は、BASICの悪い面を数多く引きずっているうえに、余計な概念を導入して、さらにわかりづらくなっていると思う。
上記のような理由で、BASIC系の言語によいイメージを持たない人は多いと思う。また、BASICをそもそも知らなくても、世の中にはC言語に近い記法を持つ文法が普及していて、そちらに慣れている人は多い。
Rubyの文法は、C言語系のものではなく、見た目がBASICやVBに近いと思う。
その原因には、行指向であることと、もう一つはブロックの表記に中括弧を用いないことが挙げられると思う。
現に僕は、do〜endが気に食わなくてRubyではなくPythonを勉強しようと思っている人を知っているし、僕自身その行指向とdo〜end記法を見て学習をためらっていた時期があった。
これは明らかにRuby側で改善できるのではと思う。
Rubyの特徴のひとつは、同じことをいろいろな表現で書けることだと思う。ならば、中括弧を用いたブロック表記法が広範囲に渡ってサポートされていてもいいのではないか。
do〜endは中括弧で置換できるが、if〜then〜endやdef〜end、class〜endなどにおいても中括弧を用いることができれば、些細な理由で素晴らしい言語の習得をためらってしまうという悲劇を減らせるのではないかと考える。
どうだろう?
以下理想のコード。
#こう書けたらいいのになコード #せっかく、いろいろな書き方が許される感じなのに、移行のための文法がないのは損だと思う #- セミコロンも文の区切りとして使えるので、行指向問題は既に解決してる #- 問題は、def〜endなどを中括弧ブロックにできないこと class HelloClass { attr_reader :msg; def initialize(target) { if(target == "") { target = "someone"; } @msg = "Hello, #{target}!\n"; } } hello = HelloClass.new("world"); print(hello.msg);
追記。
ブクマコメより
その書き方はRubyらしさを失っていると思う/別の言語でやってくださいというのが率直な感想
僕の思うRubyらしさは、非常にシンプルなオブジェクト指向をベースにしてるということと、同じことをいろいろな書き方ができるということ、だと思う。
僕は、いろいろな書き方を受け入れてこそのRubyだと思うのだが、違うのだろうか?それに、この文法を採用することによって、より多くの人がRubyの機能の恩恵を受けられるようになるなら、それでいいと思う。