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」です。
(本記事に個人の観点が多く付いていますので、もしも間違いや意見等ありましたら、筆者までご連絡ください)
分享到:
相关推荐
Dartのようなクロスプラットフォーム,RubyやDartのような実用性,Rubyような强力な距离表现とそれに里付けられた文字列处理,RubyやLuaのようなグルー性,Dartのようグクラウドコンピューティング,Dartのような...
在制品一页Pageスライドを共有するだけではなく1ページにまとめたスライドも一绪に投稿することでスライドを読まなくても内容が把握できるようになっているのがこのサービスの特徴です。动作环境以下の环境で动作す...
「幸せ」とか「嬉しい」と感じていても相手に伝えられていないシーンってたくさんあるだろうなということに気づき,「耻ずかしくてなかなか伝えられない…と考えている人たちの手助けができたら良いな」そんな思いか...
Ruby简介:プロを目指す人のためのRuby入门の练习です
Rubyとこれから仲良くなりたい方にとっては,RubyやWebプログラミングのたのしさを知して旅のスタート地点として。 ある程度Rubyを知った方にとっては,さらにその兴味关心の轮を広げるための场として。 みんなでた...
技术の技术书の共有をとおして初学者からベテランエンエニジニアまで全ての利用者のプログラミンミ学习グのオンラインラットフォームです。チャットでの交流もできるため,単なるレビューの阅覧以上の系がりが生まれ...
ちゃんと最初から最后まで読んだ J践JUnit ―使用JUnit在Java 8中进行实用单元测试。达人プログラマーのユニットテスト技法 清洁建筑达人に学ぶソフトウェアの构造と设计 Team Geek-Googleギークgいかにしてチームを...
これは、中国の企業や開発者が活発に取り組んでいるプロジェクトやフレームワークを示しており、Apache Foundation、CNCF、Linux Foundationなどのプロジェクトの活発さを比較することができます。 これらの分析を...
初期のスクリプトでは,投稿内容をひらがなに変换するため,形态素解析システムのMecabまたはJuman ++のいずれかを使います。初期设定はMecabです。 MacOSの场合,酿造がスンーれば,以下の以下インストールです。...
初心者にもやさしいスライドとレッスンで,ウェブサービスを作りながらプログラミンミ学んでいきましょう。 或者 了解从哪里开始! HTML和CSS とージの作成に使用される言语です。HTMLとCSSを组み合わせることで,...
查找Haiku4Mstdn mastodon上で,俳句を検出するbotのプログラムです。日々のトゥートの中で思いがけず生まれた575に光を当てるべく开発されました。使い方mecabをなんとかして入れる以下を参考にkey.ymlという...
自述文件ツール・ライブラリの名前Anki(英単语登录・暗记アプリ)简単な说明知识の海でどっぷりと暗记してみませんか?Ankiは语学学习での単语暗记をサポートするアをリです。覚えたい単语,忘れたくない単语で自作...
自述文件概要でログリフで情报を共有し合うファラオのためのSNSです。电子邮件NS世界のファラオたちが日常オたちが使っている言语は多岐にわたり翻訳コストがかかってしまう。解决情报交换が可能。また下々のものに...
orz ================================================== ==色んな方から拝借したりしてます。とりあえず,あげておく。除dev_katoさんのdotvimのREADMEから。 要求: 吉特Ruby使用rubyopts编译的VIM高于7.0 安装...
にあるプリスト教会マップは,日本全国にあるプロテスタント教会をマップに表示します。教団教派・グループ・都道府県・名前・住所で検索することができます。教会に行ったことがない方でも,その教会がどのような...
日志存档器 IRC宝ッ常驻させることでチャットログをチャンネル単位単RDBMSし直接记录し,Railsアプリケーションにより记录されたログを整形・表示します。动作环境LinuxまたはOSX Ruby 2.3.0以降级MySQLまたは...
予定管理や顾客管理などの会社内で使用するツールが多岐に渡り,アプリを何度も切り替えたりして面倒な思いをしたことはありませんか? このアプリは顾客管理をはじめ,予定管理(准备中)や在库管理(准备中),职...
このア,リケーションショ动かす场合は,まずはリポジトリを手元にクローンしてください。 $ bundle install --without production 后の后,データベースへのマイグレーションを実行します。 $ rails db:migrate ...
高千穗 2020.11.29后継のプロジェクト(私人)に移転を开始しました。移行を実施しなかったコンテンツの参照のために残して... Raspi:RaspberryPiを利用したプログラム 沙箱:?? 片段:小ネタ集 尖端: ?? Webapps
→ゲストログイン宝タールアドレス,パスワードを入力せずにログインできます アプリ概要 ユーザ同士でオススメの『ルート』を投稿共有できるアプリケーション 制作背景 今の时代Googleマップなどを使用すれば,行き...