Rubyはオープンソースのプログラミング言語の一種です。日本人プログラマーによって開発された言語として国内外問わず世界的に人気を集めております。Webアプリケーションの開発に最も向いており人気サービスのGunosy、食べログ、価格.comなどはRubyを用いて誕生しました。では皆さんはRubyのメリット・デメリット、特徴や用途についてご存知でしょうか。この記事ではRubyを理解するために初心者でも分かるメリット・デメリット、基礎知識などを簡単に解説していきます。
Rubyとはまつもとゆきひろ氏によって1995年に開発されたオープンソースでオブジェクト指向のプログラミング言語です。日本人プログラマーのよって開発された言語として初めて国際電気標準会議(IEC)で国際規格に認証されました。2018年には米国において最も稼げる言語はRubyと言われるほど国内外問わず世界的にも注目を集めております。
Rubyというその名称には『Perl(パール)に続ぐ』という意味が込められており6月宝石であるPerlの次月(7月)宝石のRuby(ルビー)という名称を採用することになりました。Rubyの特徴は記述量が少なく、自由度が高い、そして何より『書くことが楽しい』と多くのプログラマーの方が口を揃えております。RubyはWebアプリケーションの開発に最も向いており代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。
Rubyの読み方は『ルビー』です。名前の由来はまつもとゆきひろ氏の好きなプログラミング言語であるPerlをモデルに開発したことからその名称には『Perl(パール)に続ぐ』という意味が込められており6月宝石であるPerlの次月(7月)宝石のRuby(ルビー)という名称を採用することになりました。
Rubyのメリットを見ていきましょう。
Rubyはプログラミング言語の中でも記述がしやすいというメリットが挙げられます。文法や書式がシンプルに構成されており読みやすく結果記述量も少なくなるという特徴があります。記述量が少ないということは覚えることも少なくて済みます。開発者であるまつもとゆきひろ氏がRubyの設計思想は「Rubyの言語仕様策定において最も重視しているのはストレスなくプログラミングを楽しむこと」と述べておりこのことからもシンプルで記述がしやすい仕組みになっていることが理解出来ます。
Rubyは記述の自由度が高いというメリットが挙げられます。これは記述がしやすいというメリットとも親しい内容ですがここでいう自由度は制限の少なさを指します。例えば多くのプログラミング言語が変数に型宣言を必要としますが、Rubyは動的型付の言語のため変数に型宣言が不要です。Rubyは自動的に数字や文字列を認識してくれるのです。
Rubyには様々なフレームワークが存在しますが、中でもRuby on Railsとの相性の良さが素晴らしいとプログラマーの間でも凄まじい人気を集めております。Ruby on Railsは「同じことを繰り返さない」を基本理念としており「簡単なことがより簡単にできる」という特徴から記述がしやすく自由度が高いRubyと最高の相性となるように開発されております。
Rubyのデメリットを見ていきましょう。
Rubyはインタプリタ言語です。同じインタプリタ言語であるPHPやPythonよりも遅いという声もあるようです。インタプリタ言語はコードを実行する際に1行ずつコンピュータが読み取りやすいように機械語に翻訳していく言語です。一方Javaなどで採用されているコンパイラ言語では全てのコードを一括で機械語に翻訳する言語のため工数が少なく実行速度が早いです。このようにコンパイラ言語に比べて実行速度が遅いというデメリットがあります。
Rubyはメリットにも記載した通り、配列の定義などのコーディングスタイルの自由度が高いため時にそれが仇となる場合があります。プログラマーによってコーディングの際のルールやクセがありますよね。Rubyでは同じ意味のコードを何通りもの方法で実現が出来るため、複数人などでWebシステムの開発などのプロジェクトを進める際に同一コードベースに複数のコーディングスタイルが混在してしまう場合があります。このような事態は望ましくないためコーディング実施前に共通ルールを設けるなどして問題を回避しましょう。
Rubyの基本的な文法を見ていきましょう。
Rubyにおける変数は代表的なもので7つ用意されております。
変数は一般的に宣言、代入、参照を覚えておく必要があります。しかしRubyは動的型付の言語のため変数に型宣言が不要です。
変数 | 概要 |
ローカル変数 | 使用できる範囲(スコープ)が他の変数よりも限られる |
定数 | 一度値を代入すると変更できない変数 |
グローバル変数 | どこでも使用できる変数 |
ブロック変数 | ブロック内で宣言する変数 |
インスタンス変数 | 同じオブジェクト内(同クラス内)で共有可能な変数 |
クラス変数 | クラス内で一意に値を持つ変数 |
クラスインスタンス変数 | クラス定義式内で定義される (見た目は通常のインスタンス変数と同じ) |
Rubyでは8つのデータ型を覚えておく必要があります。
データ型 |
文字列型(string) |
長い文字列型(text) |
整数型(integer) |
浮動小数型(float) |
精度の高い小数型(decimal) |
ブールデータ型(Booleans) |
配列型(array) |
シンボル型(symboll) |
演算子では、8つの演算子を覚えておく必要があります。
演算子の種類 | 概要 |
代数演算子 | 正数、負数、加算、減算、乗算、除算が定義されている |
比較演算子 | 大小や等しいかなどの比較を実行する |
代入演算子 | 「=」のことで左辺を右辺に代入を実行する |
文字列演算子 | 文字列の結合を実行する |
複合演算子 | 代入演算子「=」とバイナリ演算子、文字列演算子を組み合わせるもの |
論理演算子 | 論理演算を行う演算子のこと true、falseで定義されている |
ビット演算子 | ビット積、ビット和、排他的論理和などが定義されている |
配列演算子 | 配列(Array)の連結、繰り返し、追加、置換で定義されている |
制御文ではwhile文、for文、if文、raise文を覚えておく必要があります。
Rubyを利用することで開発できることを見ていきましょう。
RubyはWebアプリケーションの開発に最も向いております。この際に最も利用されるのがRuby on RailsはWebアプリケーションフレームワークです。Ruby on Railsを活用することで効率的にWebアプリの開発をすることができます。代表的な開発事例としてGunosy、食べログ、価格.comなどが挙げられます。
Rubyはスマホアプリ開発をすることも可能です。スマホアプリ開発を行う場合には『RUBYMOTION』というツールを利用する必要があります。RUBYMOTIONを利用することでRubyのみでiiosやAndroidのアプリケーションを開発することができます。
Rubyはサーバーサイド言語として活用することができます。HTML、CSS、JavaScriptなどでWebサイトのフロントエンド部分を作成し、サーバーサイド(バックエンド)をRubyで開発することが出来ます。サーバーサイド言語は一言で表すと『フロントエンドに必要な情報を送るためのプログラミング言語』といえます。このサーバーサイドはバックエンドと呼ばれることもあります。サーバサイドが存在することでユーザーが目に見えるフロントエンドに適切な情報が反映されてサービスが利用できるようになっております。
Rubyの代表的なフレームワークを見ていきましょう。
Ruby on RailsとはRubyに活用されるデビッド・ハイネマイヤー・ハンソン(David Heinemeier Hansson)氏によって開発されたオープンソースWebアプリケーションフレームワークです。2004年7月に誕生し、基本理念を『同じことを繰り返さない』と掲げております。特徴としては基本理念の名の下同じソースコードを何度も記述しなくて良い効率よく実装するための仕様となっております。さらにデータベースを直感的に操作ができる機能が提供されており好評を集めております。
Ruby on Railsの公式サイトはこちら>>
Ruby on Railsの歴史、メリット、基礎知識の解説された記事はこちら>>
HanamiとはRubyに活用されるルカ・ギティ(Luca Guidi)氏によって開発されたWebアプリケーションフレームワークです。2017年4月に誕生をしMVCモデルを採用しております。以前は『Lotus』という名称を使っておりましたが、IBM社のソフトウェアブランドと被ってしまったことが理由となり現在の『Hanami』へと変更されました。特徴としてはレスポンスの速さ、メモリの消費を最小限に抑えるなどが挙げられます。
Hanamiの公式サイトはこちら>>
Hanamiの歴史、メリット、基礎知識の解説された記事はこちら>>
SinatraとはRubyに活用されるブレイク・ミゼラニー(Blake Mizerany)氏によって開発されたオープンソースのオブジェクト指向Webアプリケーションフレームワークです。2007年に誕生し『最小限の労力でRubyでWebアプリケーションをすばやく作成するためのDSL』を掲げております。特徴として軽量フレームワークと言われており、提供している機能が必要最低限で小規模なウェブサイトの構築に向いております。またRuby on Railsとは対となる考え方で作成されているというのも特徴の一つです。
Sinatraの公式サイトはこちら>>
Sinatraの歴史、メリット、基礎知識の解説された記事はこちら>>
PadrinoとはRubyに活用されるネイサン・エスケナジ(Nathan Esquenazi)氏等によって開発されたオープンソースのWebアプリケーションフレームワークです。PadrinoはSinatraを参考に誕生し、Sinatraでは採用していなかったMVCモデルを採用しました。特徴として小さくて速い、清潔でコンパクト、創造的で簡潔などが挙げられます。
Padrinoの公式サイトはこちら>>
Rubyを理解するために初心者でも分かるメリット・デメリット、基礎知識などを簡単に解説させていただきました。Rubyを一言で表すと『日本人プログラマーが作成したWebアプリケーション向けプログラミング言語』です。Rubyは「最も重視しているのはストレスなくプログラミングを楽しむこと」と掲げているだけあり、記述がしやすい、自由度が高い、書くことが楽しいという多くのエンジニアから愛される大人気のプログラミング言語です。
Ruby on RailsというWebアプリケーションフレームワークを駆使することでRubyをさらに心地よく使えるようになります。Rubyについてこの記事に書かれている基本的な文法やRubyで開発できることなど最低限の内容は理解をしておくようにしましょう。