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を勉強しているにもかかわらず、そのような現状を抱えてしまうのか、一緒に考えていきましょう。

先が見えない現状を踏まえ、課題として考えられるものは以下のどれかに該当するでしょう。

  • プログラミングの上達が見えない
  • プログラミングを継続できない気がする
  • プログラミングスキルを習得した姿がイメージできない
  • プログラミングスキルを活かした仕事を獲得するイメージができない

これらのどれかに該当することによって、「なんとなくプログラミング学習をしている」という状態になってしまいます。

これらの要因は、三日坊主になる理論と同じなんですが、「プログラミング学習をしなきゃ」とプログラミング学習を頑張ってしまっている状態になってしまっています。

受験勉強をやった経験のある方なら頭がもげるほどに首を縦に振ってしまう方も多いのですが、「今日も5時間勉強するぞ」や「今日はこの章を終わらすぞ」というように、学習を進めることに意識が行き過ぎてしまうと、ある程度学習を継続した後に「先が見えない・・・」となってしまいます。

未来に光を当て、プログラミング学習を「成果が出るもの」にするために

先ほど、「なぜ先が見えないという悩みや不安を抱えてしまうのか」という疑問に対しての答えを示していきました。

これらの課題というのは、独学をしていれば9割の方がぶつかってしまう壁だそうで、いわば、あるあるの現象なのです。

独学をしていて、「なんか前に進めていないぞ」と感じるのはこのせいなんですね。甘く見がちですが、非常にやっかい。

これがさらにやっかいさを極めているのは、上記に挙げた課題のほとんどが、1人で解決できないものばかりだからです。

実は、これらのほとんどが経験者に助けてもらいながら解決しないと、すぐに違う方向へと流れてしまいます。

そう言い切れるのは、以前の私もそうだったからです。

エンジニアやプログラマー関連のキャリアに詳しい方や現役のエンジニアに相談しながら修正を加え、学習を実践して今があります。

そうは言っても、周りにそういう人がいないし・・・

という方もいるでしょう。そういう時にこそ、プログラミングスクールの無料体験レッスンを利用するのです。

営業をかけられて時間の無駄に終わるでしょ?

という考えに辿りついてしまいますよね。結論から言うと弊社では、そういった強引な営業等を行うことはありませんので、安心して受講できます。

「プログラミング学習の先ある未来」を光で明るく照らすには、弊社の無料体験レッスンがぴったりだと断言できます。それくらい無料体験レッスンに自信を持っているのです。

さらに、無料体験レッスンには以下の3大特典もついてきます!

  • 「最短1ヶ月で開発ができる学習方法」電子書籍(非売品)
  • 効率的なオリジナル学習カリキュラム
  • 未経験の転職(フリーランス)を可能にするキャリアサポート

上記の特典だけでも他のスクールにはないポイントだと自信を持っている無料体験レッスン特典です。

ただプログラミング学習をする毎日から、ワクワクしながらプログラミング学習できる毎日に変える体験を一度でいいのでしてみませんか?

無料体験レッスン予約はこちら

まとめ

いかがでしたか?

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

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

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

平山 晃

平山 晃

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

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

おすすめコンテンツ

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

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