支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


Rubyとは

Rubyは日本で開発されたオブジェクト指向型のスクリプト言語です。オブジェクト指向型という点ではJavaに似た考え方で利用できる言語ですが、Javaはコンパイラ言語です。コンパイラ言語は記述された内容をコンピュータが理解できる状態に変換する「コンパイル」を行うことで、プログラムを実行できます。記述した箇所のちょっとした動作確認をしたい場合でも都度コンパイルが必要です。

対してRubyのようなスクリプト言語はコンパイルが不要なため簡単にプログラムの実行ができ、スピード感を持った開発ができます。一般的に実行速度が遅いとされているスクリプト言語ですが、Rubyでは2.6.0以降JITコンパイラが実装され、アプリケーションの実行速度を向上させることに成功しています。

Rubyのもう一つの特徴であるオブジェクト指向は、なんらかの処理が行える記述のまとまりをオブジェクトとして扱う言語です。オブジェクトとして扱うことで、繰り返しのコーディングをする手間が省けるだけではなく、プログラミング内容の可読性も向上できます。

例えばAの処理を行うために10行程の記述が必要だとします。あるシステムではAの処理が10度出てくるため、通常であれば同じ処理を10度記述、あるいはコピーする手間がかかり、記述は全部で100行必要になります。オブジェクト指向型言語の場合は、あらかじめ作成しておいたAの処理をするプログラミングをオブジェクト化しておき、オブジェクト化されたデータを数文字の記述で参照することでAの処理ができるようになります。システムの構造によっては別のプログラムでも同じAの処理を参照できる場合があります。

Rubyを使うメリット

Rubyを使う一番のメリットは、Ruby on RailsというWebアプリケーション開発向けのフレームワークが使えることです。Ruby on Railsを使うと、Web関連のシステムが効率良く開発できます。Rubyは年数の若いベンチャー企業等で特に多く使われていますが、Rubyを利用しているほとんどの場合でRuby on Railsが使われています。国内でRuby on Railsで開発されているWebサービスでは、クックパッドや食べログ等が有名です。

Rubyが使われる2つ目の理由は、開発効率の良さです。Rubyは開発者自らが「Enjoy for Programing!」を理念としていて、プログラマーがコーディングをしていて苦痛を感じるのではなく楽しめるようなプログラミング構造になっています。コーディングに長い時間悩むのではなく、直感的に実装したい機能をコーディングできるストレスフリーの状態で開発を進められます。

最初に挙げたフレームワーク(Ruby on Rails)も開発効率を上げるための機能の一つです。Rubyのフレームワークは複数ありますが、現在人気なのがRuby on Railsです。Ruby on Railsは、通常何十行ものコーディングをしなければいけないところを、たった数行のコーディングだけで作り上げられるため、開発にかかる時間を大幅に短縮できます。次々にシステム開発を進めなければいけないベンチャー企業や、すぐにでもサービスを立ち上げたいスタートアップ企業等でRubyが多く選ばれるのはこのためです。

日本で開発されたプログラミング言語であることもRubyが使われる理由の一つです。もちろんRubyもプログラミング自体に日本語は使えませんが、日本で生まれた言語ということもあり、日本語で書かれた参考書籍やWeb上の情報が容易にたくさん手に入ります。C++やJava等の言語は多くのドキュメントが英語で記載されているため、理解するにはまず翻訳を行わなければいけない場合があります。基礎知識や昔からある情報程度であれば書籍やすでに利用している人等のブログ情報等を参考にできますが、最新の情報がリリースされる時は英語なので、その正確な情報を理解するまでにタイムラグが生じやすいです。せっかく訳されたWeb上のソースを見つけてきても誤訳されている場合さえあります。言語の壁がないことは、学習や最新情報の取得においての大きなメリットです。

フレームワークとは

すでに何度も使用しているフレームワークというワードですが、具体的にフレームワークとはどういうものかということについて紹介します。フレームワークは日本語に訳すと「枠組み」です。例えば会員登録のシステムを作成しようとした場合には、そのためのプログラミングを一から書き上げることになりますが、フレームワークを利用すると大枠のコーディング部分はすでに出来上がっているので、一部をシステムに適した状態に修正するという作業だけで、簡単に会員登録のシステムが構築できます。このように良く使われる様々な枠組みがあらかじめ用意されているのがフレームワークです。

フレームワークは、よくライブラリという言葉と混同されがちですが、ライブラリはシステムにおける部品のように、ピンポイントな機能を提供します。プログラム内でライブラリを呼び出すことで、そのピンポイントな動作をそのまま実行してくれます。それに対してフレームワークはアプリケーション全体の枠組みであり、開発者が必要な箇所のみカスタマイズして利用できる仕組みです。

MVCモデルとは

Ruby on Railsは設計にMVCモデルを採用しています。MVCとは、Model(モデル)、View(ビュー)、Controller(コントローラー)の略称です。

メインの処理と、見た目を生成する処理を一箇所に書いてしまうと、コードが読みづらくなり、メンテナンス性が下がってしまいます。そこで、メイン処理と、見た目を生成する処理と、それらを接続する処理を分けて書くというのがMVCの発想です。分割することによってコードの再利用性を高めることもできます。

スマホアプリ開発時にも使われるRuby on Rails

スマホアプリを開発する際に使われるメインの言語はSwiftやJavaが多いですが、一部でRuby on Railsが使われることがあります。例えばスマホアプリから取得したユーザーのメールアドレス情報等を保存する場合に、別途サーバーでデータを管理するためのプログラムが必要になります。この管理システムの部分だけをRuby on Railsで構築するという場合があります。

まとめ

Ruby on Railsは、プログラミングを楽しみながら開発に注力できるというRuby言語の特徴を生かすためになくてはならないフレームワークです。知識が足りなくて構築できないというシステムも、Ruby on Railsを利用することで完成に漕ぎ着けられるという可能性を広げてくれます。ぜひRuby on Railsを学習して、これまで実現できなかったシステム開発をしたり、スピードアップした開発に役立ててみてはいかがでしょうか。