Rubyを始めませんか?プログラマたち!

 Rubyはオブジェクト指向プログラミング言語の一つです。1993年に日本で生まれ、その後1995年にインターネットを通じて一般公開されました。今年は20歳です。
 名称のRuby は、プログラミング言語 Perl が6月の誕生石である Pearl(真珠)と同じ発音をすることから、誕生石(7月)のルビーを取って名付けられた。
 Rubyはスクリプト言語であり、Perlや、Pythonとの共通点が多いです。Rubyスクリプトの実行はインタープリター方式であり、コンパイルが要りません。
 RubyはJavaより年長ですが、注目を浴びているのはRubyOnRailsの誕生からみたいです。
 RubyOnRails(以下Rails)はRubyで開発したWebアプリケーションフレームワークであり、MVCアーキテクチャに基づいて構築されています。Railsは2004年7月に最初のバージョンが公開してから、徐々に改善され、今年6月25日に4.0.0リリースしました。中国の技術者に聞いたところ、RubyよりRailsのほうを良く知っている方が少なくないです。
 Rubyは、Javaより生産性が高く、Perlより強力、Pythonよりオブジェクト指向の強いとよく言われているが、プログラマの私にとって、一番好きなのはRubyプログラミングの楽しさです。
 私は2000年からコーディングをし始め、使う言語に関わらず、最初からプログラミングを好きになってしまい、Rubyを使うようになってから、プログラミングがまた楽しくなりました。
 プログラミングの楽しさに対し、プログラマたちに聞くと、さまざまな回答が出てくると思うが、まとめてみると、主に以下の四種でしょう。
 1. 難解なパズルを解く喜び
  プログラムの目的がパズルを解くことはそうでしょうし、われわれが良くやっている「ディバッグ」作業もこの分類に属します。問題をうまく解決できれば、達成感や成就感を体得できます。
 2. モノづくりの楽しさ
  言うまでもなくプログラミングは何か新しいものを作り出すという作業です。大げさな言い方ですが、それは世界に一つしかない作品です。設計が同じでも、人が手作業で作るものなので、見た目が同じように見えても、中身が人の数だけあるのです。プログラミング自体は創造性がある仕事であり、作家や画家と大差がないでしょう。
 3. 作品が思い通りに動く感動
  「Hello World!」がうまくできた感動がまだ記憶に残っているでしょう。ウンステップが通ってから、全モジュールがうまく結合できるまで、いろいろな感動があるでしょう。プログラムが期待通りに動くようになったことは、プログラムたちが一番よく感じる楽しさかなと思います。
 4. 誰かに役に立てる満足
  ほとんどのプログラムは誰かのために作られています(自分のためだけに作るプログラムもありますが)。作ったプログラムを使ってもらうことで、ユーザに喜んでもらえるし、自分も満足できます。
 Rubyは特別なものではなく、次世代プログラミング言語を目指しに、徐々に進化しているようですが、今はまだ一般的な汎用プログラミング言語なので、楽しさもこの四種くらいかなと思いますが、他の言語より、Rubyを使うほうがモノづくりの楽しさを良く感じることができます。
 絵を描くことの楽しさを有名な画家に聞くと、多分、作品の評判がいいかどうかと関係なく、作画自体が一番楽しいでしょう。自分の思いを自分好きな方式で表現できることはとってもうれしいことです。この面では、正直なプログラマも同じく、プログラミング自体の楽しさを感じています。
 プログラミング言語はプログラマのツールで、良いツールを利用すれば、作品が良くなれるし、創作過程ももっと楽しくなります。
本来であれば、プログラミングは人類の思考を機器が識別できる形式で表現することで、思考が主、表現が従という主従関係になるはずなのです。プログラミング言語の制約により、思考が表現しにくいことや、うまく表現できないことが良くあり、思考と表現の関係が逆になってしまうケースも少なくないです。
 Rubyは開放感を持ち言語で、他の言語より、われわれの考えをもっと自然に表現できます。
 Rubyはシンプルな文法で、読みやすく、手軽に本格的なプログラミングが可能です。
 Rubyはあまりプログラマを束縛しなくて、ちゃんと思い通りにコーディングすることが可能です。
 Rubyを利用すれば、もっと賢い設計、もっと理解しやすいプログラムを創作することが可能です。
 Rubyistになってから7年経った私は、まだRubyプログラムを書きし続けたい、まだRubyのことを勉強し続けたいと感じているのは、Rubyでのモノづくりの楽しさです。
 すべて言語をよく知るわけではありませんが、経験があるJava/C++と比べると、Rubyのほうは楽しいです。Rubyの理解が深くなるほど、JavaかC++かを使いたくなくなります。モノづくりなので、自由発揮ができないと、やる気がなくなるからです。
 「シンプル」、「生産性が良い」、「テキスト処理が強力」など特徴がよく言われていますが、Rubyにキーワードを付けようとしたら、私は「魔法」、「個性」、「芸術」を挙げます。
 「魔法」のことは、普通な考え、普通な手法で実現できないことです。他の言語でできないことは、Rubyでいろいろ実現可能になって、素晴らしいでしょう。黒魔法と白魔法の論争があるのですが、「魔法」を作る・使うのは人間だから、「魔法」を作る時に使う道具と関係がありません。
 「個性」のことは、自分の作品に特徴を付けることが可能です。条件判断と繰り返す処理など言語の基本要素でも、Rubyがいろいろな書き方を提供しているので、自分が好きな設計や、書き方を自由に選択することが可能です。「すべての道はローマに通ず」なので、最適な道の選択で迷うかもしれませんが、「選択できない」から「選択可能」にすること自体はRubyの優越性だと思います。
 「芸術」のことは、Rubyのおかげで、プログラムをますます善美に尽くすことが可能になります。簡潔かつ美しい文法なので、リファクトリングすることより、コードを徐々にきれいになることだけではなく、設計が徐々に賢くなれます。設計・コードが良くなるほど、メンテナンスしやすくなり、継続的な保守が要るプログラム・サービスと相性が良いです。
 Rubyに魅力あるところは山ほどで、簡単に言い尽くすことが無理です。
 Rubyはスクリプト言語なので、小規模なプログラムをすばやく作成することが可能です。「5分でのRailsアプリ」など記事がネット上にたくさんあります。
 大規模案件では、新たにやることがたくさんあるので、言語を選択する際に生産性はとっても重要な指標ですし、様々な仕様変更があるので、変化に対応するための最大の柔軟性が必要になるから、Rubyは可能の限り、採用するべきだと思います。
 プログラムは生き物です。命を持っています。生きているものと死んでいるものが分かれています。使わなくなっているプログラムは死んでいる状態になり、価値もなくなってしまいます。プログラムの命を守り、継続したいなら、状況の変化に応じて変化を続けないといけません。
 プログラムの命を維持するためには、Rubyの効率性と柔軟性が大きな武器になります。特に、立ち上げ時には規模の読めないスタートアップサービスには適しています。
 逆に、当初の仕様で変更無く作りきり、いったん完成したら二度と更新しないようなプログラムだとしたら、Rubyのメリットはあまり享受できないでしょう。
 もちろん、Rubyは万能ではなく、この記事でもRubyが最良プログラミング言語と主張するつもりがありません。
 プログラムを作成するために、いろいろなツール(プログラミング言語/IDE/...)が生まれました。
 コンピュータやネットワークの発展に伴い、プログラミング言語が徐々に進化しています。
 それぞれのプログラミング言語は、いろいろな局面でその良さを発揮していて、応用分野を制限せずに、プログラミング言語間の優良比較が難しいでしょうし、各言語はそれぞれがいろいろな特徴が持っていて、汎用な評価基準がないから、全般の対比もやりづらいと思います。
 プログラミングを楽しむ目的なら、好きな言語を選べばいいです。どの言語にしようかと迷っているあなたに、筆者がお薦めしたい言語が「Ruby」です。
 モノつくりの目的なら、生産性が良い言語を選ぶべきです。どの言語にしようかと迷っているあなたに、筆者がお薦めしたい言語が「Ruby」です。

(本記事に個人の観点が多く付いていますので、もしも間違いや意見等ありましたら、筆者までご連絡ください)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值