Rubyの長所を徹底分析!他言語との比較からわかるRubyの素晴らしさ

Rubyの長所を 徹底分析!


Rubyってなにが長所なんだろう?
他の言語と比較した場合のメリットを知りたい!

こんにちは。

プログラミング言語を新しく学ぶとき、知っておきたいのが「学ぼうとしている言語がほかと比べてどんな点が長所なのか?」という部分です。

他の言語と比較することで学ぶ理由や使い方が見えてきます。そして、比較元の言語を知っていればそれとの違いを意識した学習ができ、効率化が図れます。

そこで、この記事ではRubyについて、同系統のスクリプト言語同士の比較を行っていきます。

最後にRubyの長所をまとめた項を設けてあるので、手っ取り早くRubyの長所だけ知りたい方は目次からジャンプしてみてください。

さっそく行ってみましょう。

PerlとくらべたRubyの長所

画像:Shutterstock

まずはPerlとRubyの比較です。もしかしたらPerlについて知らない人もいるかも知れないので、簡単に説明をしておきます。

PerlはRuby開発当初の目標でもあった

Perlは1987年生まれのスクリプト言語です。もう生まれてから30年以上経つ言語ですが、記事執筆時点での最新バージョン5.28.2が2019年4月19日にリリースされており、まだまだ精力的に開発が進められています。

Perlというと、インターネットが爆発的に広まった2000年代後半にCGIで一世を風靡した言語でした。CGIはWebサーバ上でプログラムを処理した結果を表示させる機能の名称ですが、このプログラムを記述する言語としてPerlがよく使われたのです。

今ではすっかり下火な印象のPerlですが、なぜRubyの長所の説明でPerlが出てくるかというと、PerlはRuby開発時の当初の目標であったからです。Rubyの作者Matz氏によると、RubyはPerlを代替可能であることが初期の段階から重視されていたとのこと。

名前もPerl(真珠:6月の誕生石)とRuby(ルビー:7月の誕生石)でかなり意識しているのが見て取れますね。

決定的に異なる部分は?

Perlの多くの部分を踏襲したRubyでしたが、1点決定的に異なる部分があります。それがRubyが純粋なオブジェクト指向言語である、という点です。

今ではプログラミング手法の一大スタンダードであるオブジェクト指向プログラミングですが、本格的に流行し始めたのは1995年にJavaが誕生してからです。

時系列を確認すると、Perlの誕生は1987年、Rubyの誕生は1995年。Perlにとってオブジェクト指向に関する機能全般は完全な後付なのです。

対してRubyは最初から純粋なオブジェクト指向言語として設計されており、非常に素直にオブジェクト指向プログラミングを行うことができます。このため、Perlと比較した場合のRubyの長所は純粋なオブジェクト指向言語であるかどうか、という点でしょう。

PythonとくらべたRubyの長所

画像:Shutterstock

つづいて、Rubyの公式のライバルともいうべきPythonについて見ていきましょう。

Pythonの特徴

Ruby公式リファレンスの用語集に以下のような説明があるくらいには、RubyはPythonを意識しています。

Python

Rubyのライバル。「年を経た蛇」。matzがPythonに満足していれば Rubyは生まれなかったであろう。一番気になっているのは名前の長 さ(6文字)である。

引用:Ruby公式リファレンス 用語集

Pythonが生まれたのは1991年。Rubyよりも4年前に誕生しました。Zen of Pythonに象徴されるように「コードの読みやすさ」「効率性」「誰が書いても同じような記述で簡単にかける」という点を徹底的に重視したのがPythonの特徴です。

この点がRubyとPythonの対立ポイントとしてよく取り上げられます。

先に書いたとおり、RubyはPerlの多くを踏襲しています。そして、Perlが掲げていたポリシーにやり方はひとつじゃない(There’s More Than One Way To Do It.)という物がありました。

これは、プログラミングをする人が書きやすい方法をできるだけ多く提供する、ということを意味し、結果として同じ内容の処理に対して多くの表現方法が発生する事態になりました。

たしかに、書き慣れた方法でコードが書けるのは気持ちいいし、自分にとっては読みやすいですが、大規模開発になるとこの自由さが往々にして足かせになります。

同じ処理なのに別の書き方が複数存在するため似たようなクラスが量産されてしまったり、自分の流儀と異なるので一見するとなにをやっているのかわからない処理が作られていたりと、多様性が必ずしもいい方向には働きませんでした。

そのため、Pythonでは徹底して同じ処理は同じ記述になるようにな調整がしてあります。

対するRubyのポリシーは

対するRubyは明示的にPerlからやり方はひとつじゃないポリシーを引き継いだとは言っていませんが、プログラミングの楽しさを追求した結果、同じ処理に別名がついていることがしばしばあります。

Rubyのは純粋に楽しみのために設計され、言語を作る人、使う人、学ぶ人すべてが楽しめることを目的としています
— まつもとゆきひろ、Ruby プログラミング入門 まえがき 監修者よりのページ

引用:Wikipedia Ruby 設計思想

上の文章に象徴されるようにRubyにとって、楽しさが最上位なのです。Perlほどやり方が多彩にあるわけではなく、非推奨な処理を増やすことでユーザー側に自粛を促していますが、Rubyにとって大事なのは楽しさなのです。

このポリシーに共感できるならばRubyの楽しさは大きな長所と言えるでしょう。

PHPとくらべたRubyの長所

さて、PHPとRubyの比較ですが、正直ライターとして気が重い項目です。この組み合わせの比較って大概炎上するんですよねぇ……

そもそもRuby製作者のMatz氏がPHP嫌いを公言している記事が10年ほど前にあって、それ以来どうにもそれぞれのユーザーの間に溝ができているようです。

参照:Matzにっき

まあ、この頃のPHPはIPAから名指しで使わないことがセキュリティ対策になると言われていたような時代なので、2019年の現在と比べると多分に問題をはらんでいたことは否めません。

とはいえ10年近く年月が過ぎ、PHPのバージョンが5から7に変わったにもかかわらず、Attacking PHPで指摘されている問題点はほとんど解決していなかったりします

===とかもはやPHPの顔と言えるぐらい有名なネタと化していますし、今後もMatz氏が指摘しているポイントはほとんど変わることがないのでしょう。それがPHPの個性とも言える部分ですから。

というわけで、PHPに対するRubyの明確な長所としてはAttacking PHPで指摘されるような点がRubyには含まれていない、ということでお茶を濁しておきます。

まとめ:Rubyの長所

ここまでで出てきたRubyの長所をまとめると以下のようになります。

  • 純粋なオブジェクト指向言語である
  • 楽しさがポリシーとして最上位に存在する

そしてPHPの悪癖と切り離された言語設計であるということ(明確なfalseの区分、ハッシュやリストの区別、lamda(無名関数)がある命名に一貫性が有る、引数の順序が明確、HTMLとロジックが明確に分離されているなど)。

これにRuby特有の事情による長所を付け加えると、Rubyは日本製のプログラミング言語なので、日本語のコミュニティが活発です。Railsの流行も相まって、日本語の情報が非常に入手しやすいという点が長所といえます。

以上がRubyの目立った長所と言えるでしょう。

まとめ

いかがでしたか?

今回は他の言語と比較することでRubyの長所について見てきました。Ruby以外にもいろいろな個性のある言語があることもお伝えできたなら嬉しいです。

この記事で興味がわきましたら、ぜひ新しい言語にも挑戦してみてください!

Rubyカリキュラム無料公開中!

この記事はRuby入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Ruby学習に必要な情報を一つにまとめていますので効率よくRubyを学ぶことが出来ます。この機会に是非活用していただければと思います。

【Ruby入門ガイド】アプリ開発で知っておくべき知識を総ざらい
更新日 : 2018年11月23日

Rubyを最短で習得したい方へ

近年では様々なWEBサービスが流通するようになりました。

WEBサービスの普及が進むにつれて、それらを素早く開発するのに長けたRubyの人気は今後さらに増し、Rubyエンジニアの需要も自ずと増えることは間違いなしでしょう。

元々ITリテラシーの高い方や他言語を習得している方であれば、独学でRubyを習得することが可能です。

ただし、プログラミング学習をしている方の多くは

「自分に合った教材が見つけられずに挫折してしまった」
「勉強のための勉強になってしまい、ゴールが見えない」
「情報が少なくどう調べればいいかわからない」
「エラーを解決するのに何日もかかってしまう」

このような悩みを抱えたまま挫折してしまうのが現実となっています。

  • もう挫折したくない
  • 本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい
  • 自分だけのカリキュラムで効率的に勉強したい
  • WEBアプリケーション開発までしっかりサポートして欲しい
そんな方はお気軽に侍エンジニア塾までご相談ください。

お一人お一人に専属のインストラクターがつくので、初心者の方がつまづきがちな、「CookPad」、「Wantedly」、「食べログ」のようなWEBアプリケーション開発方法もスムーズに学習することできます。

実際にオリジナルWEBアプリを開発し、成果物として認められて仕事獲得に成功した塾生は数多くいます。

このように、オリジナルアプリ開発から仕事獲得まで徹底的にサポートすることでプログラミング初心者の方でも安心して基礎学習に取り組むことができます。

まずは『無料体験レッスン』で、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

Rubyならではの学習方法や、現役フリーランスRubyエンジニアから貴重なアドバイスを受けることができます。

詳しくは下の画像から弊社サービス内容をご確認ください。

ruby_a2
LINEで送る
Pocket

書いた人

平山 晃

平山 晃

フリーのエンジニア・ライター。
プログラミング、ライティング、マーケティングなど、あらゆる手段を駆使して、
ハッピーなフルリモートワーカーを目指し中。

最近興味がある分野は深層強化学習。
積みゲー、積ん読がどんどん増加しているのがここ数年の悩み。
実は侍エンジニア塾の卒業生だったりします。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説