【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!
  • facebookページ
  • twitterページ
  • 2018.01.16

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    Rubyとは一体どんな開発言語なのでしょうか?

    日本人が開発したプログラミング言語というくらいは耳にしたことがあるかと思います。

    本記事では、Rubyとは具体的に何ができて何ができなくて、学ぶにはどうすればよいのだろうかを探ります。

    解説の前に、現役プログラマーの方へ向けてプログラミングの定番「Hello World」を、JavaとRubyでそれぞれ作ってみました。コードをご覧ください。

    どちらが良いということはないのですが、それなりに雰囲気のちがいを感じますよね。

    前置きが長くなりました。早速始めましょう。

    Rubyとは

    Rubyとは、冒頭で触れたとおり「日本人のまつもとゆきひろ氏が考案、開発したプログラミング言語」です。

    人間が話す言語には日本語や英語、中国語があるように、プログラミングにも言語というものが存在します。プログラミングではJavaやPHP、Rubyがあります。Rubyは数あるプログラミング言語の1つです。

    Rubyの歴史

    Rubyは1993年2月24日に生まれ、1995年12月に発表されました。名称のRubyの由来は、その頃すでに存在していたプログラミング言語Perlが6月の誕生石であるPearl(パール:真珠)と同じ発音なので、まつもと氏の同僚の誕生石(7月)のルビーを取って名付けられました。

    ところでRubyが誕生した1950年といえば、近年のプログラミングの歴史の中でどういう位置づけなのでしょうか?この頃他に何があったのか、ちょっとのぞいていみましょう

      1. 1990年 グイド・ヴァンロッサムによってPythonが開発される
      1. 1991年 マイクロソフトがMicrosoft Visual Basicを発表。
      1. 1995年 ボーランドがDelphiを発表。
      1. 1995年 サン・マイクロシステムズがJavaを発表。
      1. 1995年 ラスマス・ラードフがPHP/FI(のちのPHP)を開発。
      1. 2002年 マイクロソフトがC#を発表。

    現在40代のエンジニアの方々には、懐かしい思いのする年表です。

    こう並べてみると、Javaと同じ年にRubyが発表されたことに驚きです。それまでは汎用機が主流でしたが、オープンシステム化の流れが加速し始めた頃です。流れに乗ってJavaがどんどん勢力を伸ばし、誰も彼もがJavaに乗り換える一方、Rubyもしっかりと成長していたようです。

    Rubyでできること

    Rubyはプログラミング言語であることが分かったのですが、一体何ができるのでしょうか?以降それを探っていきます。

    Webシステム開発(Rails, Sinatra)

    Rubyといえばコレ!というくらいです。ただしこれはRubyというより、Rubyをベースとしたフレームワーク(いわゆるパーツのライブラリー)を活用するのが前提です。具体的には、Ruby on RailsSinatraがあります。どちらが優れているというわけではありませんが、Railsの方がより有名です。

    2つのフレームワークを見てみましょう。

    Ruby on rails

    Ruby on RailsとはMVCベースのWebシステム開発フレームワークです。2004年に初バージョンがリリースされ、2018年1月現在の最新バージョンは5です。

    こちらが公式ホームページです。すべて英語です。簡単に内容を抜粋してみましょう。

    モダンなWebアプリ開発をしたくても、そのための学習は相当な労力を要します。しかしRailsを使うと、簡単にかつ楽しくできます。

    Railsは、魅力的なWebアプリを開発するために必要なものをすべて含んでいます。巨大かつ親切なコミュニティが、あなたの学習をサポートしてくれます。

    あなたはすでに、Railsで開発されたWebサービスをお使いかもしれません。例えば、GitHubShopfyAirBnbHuluCookpadがあります。有名なサイトだけ名前を挙げましたが、2004年のリリース以来、それこそ何十万というWebアプリがRailsによってリリースされています。

    Railsはオープンソースで提供されていますので、無償で使うだけでなく、Railsをよりよくするための活動に参加することも可能です。すでに4500人もの人々が参加しています。

    Sinatra

    Railsばかりでは不公平なので、Sinatraも本家英語サイトから、部分的に抜粋します。

    Sinatraは、必要最小限の労力で、Webアプリを開発できるDSL(ドメイン固有言語:何かに特化した言語。ここではWebアプリ構築専用の言語という意味)です。

    SinatraはカリフォルニアのBlake Mizeranyによって設計、開発されました。Sinatraは企業の強力な支援のおかげで活動を継続できました。過去にHeroku、GitHub、そしてEngine Yard、現在ではTravis CIから経営的かつ気持ちのこもった支援を受けてきました。

    ということです。

    ちなみにSinatraのトップページにある以下のソースを実行した結果、どうなるかお分かりですか?

    HTTPメソッドのgetでfrank-saysというアドレスにアクセスがあったら以下のように表示せよ、という意味です。環境構築して「アプリのトップURL/frank-says」というアドレスにアクセスすると、 ‘Put this in your pipe & smoke it!’と画面に表示されます。

    つなげてみると「frank says “put this in your pipe and smoke it!”」となります。frankというのはトップページを見ると、どうもフランクシナトラのようです。おしゃれですね。

    Sinatraは軽量なフレームワークです。上記のソースを確認するときも、gemコマンド1つでSinatraをインストールし、上記のソースファイルを作り、即実行。そこまで数分とかかりませんでした。

    組み込み(mruby)

    意外ですが、Rubyは組み込みに使えます。正確にはmrubyです。mrubyとは「Rubyの良さを組み込みへ」を合言葉に、まつもとゆきひろ氏主導で開発された組み込み用のRubyです。mrubyは軽量かつ省メモリで動作するので、家電やボードへの組み込みはもちろん、さらにスマホアプリやゲーム・ソフトウェアへの組み込み、テキストエディタの機能拡張にも対応しています。

    mrubyをもとに作られたmod_mrubyを使って、Apache自体の制御や機能拡張ができます。応用すればレスポンス増大にともなって自動で別サーバーを立ち上げて負荷分散といったことが可能です。

    RubyといえばRails、というくらいWebアプリのイメージが強いRubyですが、決してそれだけではないのです。

    Macのデスクトップアプリ開発(MacRuby)

    MacRubyを使って、Mac用のデスクトップアプリ開発ができます。2008年5月にAppleによって発表されて以来、一時はObjective-Cの代替となる安定した製品にまでなりました。

    しかし現在このキーワードで検索しても、最近の情報はほとんどありません。MacRubyの流れを受けて、RubyMotionがその代わりになったからです。

    2011年11月にリード開発者であるLaurent SansonettiがAppleを去りScratchwork Developmentを設立、2012年5月にはRubyMotion 1.0が発表されました。

    通常Androidアプリ開発にはAndroidSDK、iOSアプリやMacOSアプリ開発はSwiftといった切り分けができており、クロスさせることはできません。

    RubyMotionを使うと、それだけでAndroid、iOS、MacOSアプリ開発すべてが、しかもRubyで開発することができます。Rubyはできるけど、Swiftは敷居が高そう・・・と思っていた方は、ぜひこちらのRubyMotionのサイトをご覧ください。とても分かりやすくまとめられています。

    Rubyのメリット

    数あるプログラミング言語がある中で、あえてRubyを使うことのメリットは何でしょうか?

    シンプルで読みやすいコードが書ける

    冒頭で書いたHelloWorldのプログラムを見てもお分かりかと思います。その他、もう少し具体例を見てみましょう。

    (比較のためにJavaを出しますが、決してJavaが悪いというわけではありません。)

    ソースファイルと同階層にあるtest.txtというファイルを読み込んで出力するプログラムです。まずはJavaから。

    次にRubyです。

    単純に短ければ良いというわけではありませんが、雰囲気からしてシンプルになったのはお分かりでしょうか。

    すべてがオブジェクト

    Rubyの世界では、すべてがオブジェクトです。文字列だけでなく、数値すらもオブジェクトです。どういう意味かというと、見てもらったほうが早いかもしれません。

    要件:数値を1から5まで表示せよ。

    Javaならこうなります。

    Rubyではこうです。

    他のオブジェクト指向言語でも、オブジェクト+ドットでメソッドを呼び出しますよね。まさしくそのノリで、5ですらオブジェクトなので、ドットとeachをつなげてeachメソッドを実行できるのです。

    数値ですらオブジェクト、という証です。

    他言語ならこういうあつかいができず、数値そのものの操作をするときには別途ラッパークラスを使うといった一手間が必要になります。

    Rubyの将来性

    現在すでに安定した地位を獲得したRubyです。求人数やGoogleトレンドサーチ、ブログサイトの記事件数など、どんな観点で見ても安定した感のある人気です。

    ここでは別の観点でRubyの将来性を考えてみましょう。

    IoT分野

    IoT(Internet of Things:モノのインターネット)が叫ばれるようになってずいぶん時間が経ちます。2020年には500億のデバイスが人間を介さず通信するようになるという予測もあり、その予測が現実になると今までできなかったようなサービスが多数発表されるでしょう。

    そんな世界において、Rubyの活躍する場はあるのでしょうか?

    デバイスへの組み込みプログラムは、大半がCまたはC++で作られています。今後もその大きな流れはすぐには変わらないでしょう。では、IoTの流れが加速していく中で、そのスピードにCやC++で付いていけるでしょうか?もちろん可能なのですが、生産性の高いRubyを組み込みで使うことができれば、よりIoTの流れが加速するかもしれません。

    現に、今現在それが可能となっています。

    CやC++を使ってすでに開発された資産から、mrubyのプログラムを呼び出すことができます。その逆で、mrubyからCやC++のプログラムを呼び出すのも可能です。

    つまり、IoTとRubyは実に相性が良いのです。今後の流れに期待できます。

    ビッグデータ分野

    この分野においては、残念ながらRubyはまだ波に乗れていません。

    RubyにはPythonがもつ豊富なライブラリやGoogleのTensorflow(テンソルフロー)といったフレームワークに対抗するだけのツールはまだありません。

    ただし、何もないかといえばそうではありません。

    PyCallを使えば、NumPyやpandasといったPythonのライブラリを、Rubyから呼び出すことができます。またApache Arrowという、それ自体はツールではありませんが大量データを扱うためのフォーマットがあります。これがRubyにも対応しています。つまりPythonで処理した大量データをこの形式にして、Rubyであつかえるのです。

    これはすなわち、大量データ処理をRubyで実装できることを意味します。

    今後の発展に注目できますね。

    おすすめRuby学習サービス5選

    ドットインストール

    初心者向け学習サイトの定番!もちろんRubyのコースもあります。Rubyを終えたらRuby on Railsのコースもありますので、ぜひチャレンジしてみてください。

    >> ドットインストールはコチラ

    Progate

    こちらも初心者向け学習サイトとして有名です。ドットインストールと同様、Rubyだけに限らず多彩なコースが用意されているのがいいですね。

    >> Progateはコチラ

    Udemy

    若干レベルが高くなりますが紹介しておきます。先ほどのサイトとは異なり、コースごとの買取で、コースを購入すると無期限で視聴できるのも嬉しいですよね。定期的にセールをやっています。

    >> Udemiはコチラ

    Schoo

    Ruby専用のサイトではありませんが、Ruby以外も実にさまざまなコースがラインナップされています。プレミアム会員も月額980円からなので、コスト的に魅力です。

    >> Schooはコチラ

    Railsチュートリアル

    >> Railsチュートリアルはコチラ

    Ruby専用ではありませんが、Railsの世界まで踏み込めるので紹介しておきます。こちらも若干レベルが高いのですが、最後までたどり着いたときは、成長を実感できているでしょう。

    おすすめRuby入門書5選

    今度は定番の入門書です。

    たのしいRuby 第5版 (SBクリエイティブ)

    Ruby本の定番です。初版から14年読み続けられています。確かに網羅性は高く説明も豊富なのですが、若干教科書っぽいので最後までたどり着くのに気合が要るかもしれません。

    >> たのしいRuby 第5版 (SBクリエイティブ) 出版社サイトはコチラ

    改訂2版 パーフェクトRuby (技術評論社)

    パーフェクトシリーズのRuby版です。こちらもよく見かけます。前版ではRuby1.9だったのですが、改訂版はRuby2.4に対応しています。前版にはなかったテスト関連の内容も追加されています。

    >> 改訂2版 パーフェクトRuby  出版社サイトはコチラ

    独習Ruby (翔泳社)

    独習シリーズのRuby版です。内容は良いのですが、2009年06月17日から版が上がっておらず、当時の安定版であったRubyの1.8.6をベースとしています。この点は非常に注意してください。

    >> 独習Ruby  出版社サイトはコチラ

    プロを目指す人のためのRuby入門 (技術評論社)

    「言語仕様からテスト駆動開発・デバッグ技法まで」といったサブタイトルがついているとおり、内容が初心者から上級者まで幅広く対応できます。

    >> プロを目指す人のためのRuby入門  出版社サイトはコチラ

    Ruby on Rails 5アプリケーションプログラミング (技術評論社)

    学習の定番であるScaffoldingから、SCSSやCoffeeScriptまで踏み込んで解説してあるので、読み応えがあります。

    >> Ruby on Rails 5アプリケーションプログラミング  出版社サイトはコチラ

    Rubyのサンプルコードが調べられるサイト3選

    ある程度知識が付くと、今度はサンプルが欲しくなりますよね。実際の使い方を知りたくなったら、以下のサイトを活用してください。

    Qiita(キータ)

    トップページにある「Qiitaは、プログラミングに関する知識を記録・共有するためのサービスです。」というフレーズは伊達ではありません。キーワード検索で知りたいことを検索すると、モノによっては相当な数の記事がヒットします。

    >> Qiitaはコチラ

    RubyLife

    網羅性が高いので、頭から順番に見ていくのがよいでしょう。内容も奇抜なものはなく、平易なサンプルが多いので見やすいです。

    >> RubyLifeはコチラ

    逆引きRuby

    知りたいテーマがはっきりと決まっている場合は、このサイトがオススメです。

    >> 逆引きRubyはコチラ

    まとめ

    Rubyとは何かに始まって、将来性や学習サイトまでを解説しました。
    今まで述べてきたことをまとめてみると、Rubyを習得すればさまざまなことができる!といえます。Web開発も、組み込みも、IoTもビッグデータも・・・今のうちにRubyを習得しておくと得をするのはいうまでもありません。


    他のRuby入門記事はこちら

    【Ruby入門】Rubyとは何か?学習方法や将来性まで考えました!

    【Ruby入門】Ruby on Railsをやってみよう!

    【Ruby入門】環境構築(Mac/Win)

    【Ruby入門】nokogiriでスクレイピング

    【Ruby入門】データベース

    【Ruby入門】gemとライブラリ

    【Ruby入門】エラーと例外処理

    【Ruby入門】モジュール(module)とMix-in

    【Ruby入門】Procクラスとラムダ(lambda)

    【Ruby入門】ブロック

    【Ruby入門】メソッド

    【Ruby入門】クラスをコーディング(2) オブジェクト指向

    【Ruby入門】クラスをコーディング(1) classを作る

    【Ruby入門】クラスの継承、オーバーライド

    【Ruby入門】クラスとオブジェクト

    【Ruby入門】ディレクトリ(フォルダ)の作成、削除

    【Ruby入門】ファイルの移動、コピー、削除

    【Ruby入門】入力と出力

    【Ruby入門】Rubyの正規表現

    【Ruby入門】正規表現で置換する

    【Ruby入門】正規表現とは何か?

    【Ruby入門】文字列の結合などの操作

    【Ruby入門】CSVの基本と操作

    【Ruby入門】JSONの基本と操作

    【Ruby入門】乱数(Random)などの数値計算用クラスや端数処理

    【Ruby入門】日付の基本と操作(Time, Date)

    【Ruby入門】数値の数え上げ「upto」と四捨五入

    【Ruby入門】文字列の標準ライブラリnkfとヒアドキュメント

    【Ruby入門】数値の基本とメソッド (timesメソッド他)

    【Ruby入門】ハッシュ(hash)をeachで取り出す!その他ハッシュの応用に

    【Ruby入門】ハッシュ(hash)とシンボルの基本

    【Ruby入門】文字列の基本と表示メソッド

    【Ruby入門】Rubyの繰り返しを極める!様々な繰り返しのバリエーション

    【Ruby入門】最初はこれだけ!まずは手を動かしたい人のRuby入門

    【Ruby入門】ifとelseについて

    【Ruby入門】配列と操作(基本編)

    【Ruby入門】eachメソッドの使い方と応用例


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア

    関連ワード

    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE