在宅「ママ×プログラミング」でライフステージに合わせた働き方を実現Rubyってなにが長所なんだろう?他の言語と比較した場合のメリットを知りたい!こんにちは。プログラミング言語を新しく学ぶとき、知っておきたいのが「学ぼうとしている言語がほかと比べてどんな点が長所なのか?」という部分です。他の言語と比較することで学ぶ理由や使い方が見えてきます。比較元の言語を知っていればそれとの違いを意識した学習ができ、効率化が図れます。そこで、この記事ではRubyについて、同系統のスクリプト言語同士の比較を行っていきます。最後にRubyの長所をまとめた項を設けてあるので、手っ取り早く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の長所は純粋なオブジェクト指向言語であるかどうか、という点でしょう。画像:Shutterstockつづいて、Rubyの公式のライバルともいうべきPythonについて見ていきましょう。Pythonの特徴Ruby公式リファレンスの用語集に以下のような説明があるくらいには、RubyはPythonを意識しています。PythonRubyのライバル。Rubyは生まれなかったであろう。用語集Pythonが生まれたのは1991年。Rubyよりも4年前に誕生しました。Pythonに象徴されるように「コードの読みやすさ」「効率性」「誰が書いても同じような記述で簡単にかける」という点を徹底的に重視したのがPythonの特徴です。この点がRubyとPythonの対立ポイントとしてよく取り上げられます。先に書いたとおり、RubyはPerlの多くを踏襲しています。It.)という物がありました。これは、プログラミングをする人が書きやすい方法をできるだけ多く提供する、ということを意味し、結果として同じ内容の処理に対して多くの表現方法が発生する事態になりました。たしかに、書き慣れた方法でコードが書けるのは気持ちいいし、自分にとっては読みやすいですが、大規模開発になるとこの自由さが往々にして足かせになります。同じ処理なのに別の書き方が複数存在するため似たようなクラスが量産されてしまったり、自分の流儀と異なるので一見するとなにをやっているのかわからない処理が作られていたりと、多様性が必ずしもいい方向には働きませんでした。そのため、Pythonでは徹底して同じ処理は同じ記述になるようにな調整がしてあります。対するRubyのポリシーは対するRubyは明示的にPerlからやり方はひとつじゃないポリシーを引き継いだとは言っていませんが、プログラミングの楽しさを追求した結果、同じ処理に別名がついていることがしばしばあります。上の文章に象徴されるようにRubyにとって、楽しさが最上位なのです。Perlほどやり方が多彩にあるわけではなく、非推奨な処理を増やすことでユーザー側に自粛を促していますが、Rubyにとって大事なのは楽しさなのです。このポリシーに共感できるならばRubyの楽しさは大きな長所と言えるでしょう。PHPとくらべたRubyの長所さて、PHPとRubyの比較ですが、正直ライターとして気が重い項目です。この組み合わせの比較って大概炎上するんですよねぇ......そもそもRuby製作者のMatz氏がPHP嫌いを公言している記事が10年ほど前にあって、それ以来どうにもそれぞれのユーザーの間に溝ができているようです。参照:Matzにっきまあ、この頃のPHPはIPAから名指しで使わないことがセキュリティ対策になると言われていたような時代なので、2019年の現在と比べると多分に問題をはらんでいたことは否めません。PHPで指摘されている問題点はほとんど解決していなかったりします。===とかもはやPHPの顔と言えるぐらい有名なネタと化していますし、今後もMatz氏が指摘しているポイントはほとんど変わることがないのでしょう。それがPHPの個性とも言える部分ですから。PHPで指摘されるような点がRubyには含まれていない、ということでお茶を濁しておきます。まとめ:Rubyの長所ここまでで出てきたRubyの長所をまとめると以下のようになります。純粋なオブジェクト指向言語である楽しさがポリシーとして最上位に存在するそしてPHPの悪癖と切り離された言語設計であるということ(明確なfalseの区分、ハッシュやリストの区別、lamda(無名関数)がある命名に一貫性が有る、引数の順序が明確、HTMLとロジックが明確に分離されているなど)。これにRuby特有の事情による長所を付け加えると、Rubyは日本製のプログラミング言語なので、日本語のコミュニティが活発です。Railsの流行も相まって、日本語の情報が非常に入手しやすいという点が長所といえます。以上がRubyの目立った長所と言えるでしょう。Rubyを独学で頑張っているけど先が見えない方のためにいや、おれは違うぞ。先のキャリアもしっかり見えてるし、独学の成果も出てきているそんな方であれば、これから先の話は必要ないでしょう。ページの閉じるボタンを押しましょう。「先が見えない」と心の底では勘付いているそこの奥さん。この先を読み進めて、一緒に課題を深堀りしていきましょう。「先が見えない」という不安や悩みを抱えてしまうのかさて、「一寸先は闇だ・・・」とお悩みを抱えている方に、なぜ独学でRubyを勉強しているにもかかわらず、そのような現状を抱えてしまうのか、一緒に考えていきましょう。先が見えない現状を踏まえ、課題として考えられるものは以下のどれかに該当するでしょう。プログラミングの上達が見えないプログラミングを継続できない気がするプログラミングスキルを習得した姿がイメージできないプログラミングスキルを活かした仕事を獲得するイメージができないこれらのどれかに該当することによって、「なんとなくプログラミング学習をしている」という状態になってしまいます。これらの要因は、三日坊主になる理論と同じなんですが、「プログラミング学習をしなきゃ」とプログラミング学習を頑張ってしまっている状態になってしまっています。受験勉強をやった経験のある方なら頭がもげるほどに首を縦に振ってしまう方も多いのですが、「今日も5時間勉強するぞ」や「今日はこの章を終わらすぞ」というように、学習を進めることに意識が行き過ぎてしまうと、ある程度学習を継続した後に「先が見えない・・・」となってしまいます。未来に光を当て、プログラミング学習を「成果が出るもの」にするために先ほど、「なぜ先が見えないという悩みや不安を抱えてしまうのか」という疑問に対しての答えを示していきました。これらの課題というのは、独学をしていれば9割の方がぶつかってしまう壁だそうで、いわば、あるあるの現象なのです。独学をしていて、「なんか前に進めていないぞ」と感じるのはこのせいなんですね。甘く見がちですが、非常にやっかい。これがさらにやっかいさを極めているのは、上記に挙げた課題のほとんどが、1人で解決できないものばかりだからです。実は、これらのほとんどが経験者に助けてもらいながら解決しないと、すぐに違う方向へと流れてしまいます。言い切れるのは、以前の私もそうだったからです。エンジニアやプログラマー関連のキャリアに詳しい方や現役のエンジニアに相談しながら修正を加え、学習を実践して今があります。言っても、周りにそういう人がいないし・・・という方もいるでしょう。いう時にこそ、プログラミングスクールの無料体験レッスンを利用するのです。営業をかけられて時間の無駄に終わるでしょ?という考えに辿りついてしまいますよね。結論から言うと弊社では、そういった強引な営業等を行うことはありませんので、安心して受講できます。「プログラミング学習の先ある未来」を光で明るく照らすには、弊社の無料体験レッスンがぴったりだと断言できます。それくらい無料体験レッスンに自信を持っているのです。(非売品)効率的なオリジナル学習カリキュラム未経験の転職(フリーランス)を可能にするキャリアサポート上記の特典だけでも他のスクールにはないポイントだと自信を持っている無料体験レッスン特典です。プログラミング学習をする毎日から、ワクワクしながらプログラミング学習できる毎日に変える体験を一度でいいのでしてみませんか?無料体験レッスン予約はこちらまとめいかがでしたか?今回は他の言語と比較することでRubyの長所について見てきました。Ruby以外にもいろいろな個性のある言語があることもお伝えできたなら嬉しいです。この記事で興味がわきましたら、ぜひ新しい言語にも挑戦してみてください!TweetPocket「プログラミング、右も左もわからない...」という方にオススメ当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。その経験を通して、プログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。Reserved.現役生徒500名以上が在籍する弊社のプログラミング学習プランをあなたに合わせて最短1分で診断します。