Rubyの用途とは【Ruby on Railsだけじゃない!】メリット色々

2018年12月30日日曜日

プログラミング

Rubyの用途(Ruby on Railsだけじゃない)
こんにちは、財前航介です。

皆さんはRuby(ルビー)と聞くと、何を思い浮かべますか?

赤い宝石でしょうか。

エンジニアの皆さんであれば、きっとプログラミング言語のRubyを思い浮かべるでしょう。

特に、「Ruby on Rails」を連想される方が多いのではないでしょうか。

Ruby on Railsとは、Rubyを用いてWebアプリケーションを開発するための、非常に高機能なフレームワークですね。

詳細はこちらの記事にありますので、気になる方はご覧ください。
Ruby on Railsのメリット・デメリット【初心者にもわかりやすく解説】>>


Rubyと言えば、Ruby on Rails!
と言われるほど、Ruby on Railsの人気が高く、それ以外のRubyの用途を知らない方も多いように見受けられます。

エンジニア向けのサイトなどを見ても、
「Rubyを用いた開発は、ほぼ100%、Ruby on Railsを用いると言っても過言ではないでしょう」
等と記載されています。


ただ私自身、最初にRubyに触ったのは、実はRuby on Railsの案件ではありませんでした。
Webアプリケーション開発ではなく、Chefというツールを用いた、サーバー構築自動化案件においてRubyを使ったのが、私とRubyの出会いでした。

実はRuby on Railsを用いたWebアプリケーションの開発だけでなく、Rubyは様々な用途で用いることができる言語です。


本日は、Ruby on RailsにとどまらないRubyの用途と、そのメリットについて見ていきましょう。


Rubyの用途とは【Ruby on Railsだけじゃない!】

Rubyの用途

Ruby on Railsによる開発のメリットなどは、上記の記事にゆだねるとして、本記事ではRuby on Rails以外のRubyの用途について見てみましょう。

具体的には、以下の2つのRubyの用途を、この記事ではご紹介したいと思います。

  • Rubyのスクリプトによる、サーバー・コンピューターのセッティングの自動化
  • Ruby on Rails以外のフレームワークによる、軽量なWebアプリケーション開発

Rubyの用途1:
Rubyのスクリプトによる、サーバー・コンピューターのセッティングの自動化


冒頭でもご紹介したChef(シェフ)というツールでは、スクリプトを記述する言語としてRubyが採用されています。

Chefとはざっくり言うと、サーバーのセッティングを自動化するためのソフトです。

あらかじめサーバーに対して行う設定の手順をスクリプトとして記載して起き、Chefがそれを順番に実行することによって、自動でサーバーの設定が行われるのです。

このサーバーに対して行う設定を記述したファイルはRecipe(レシピ)と呼ばれます。
シェフレシピを元に、サーバーを料理するのですね。)

そのレシピのファイル拡張子は「.rb」であり、中身はRubyを用いて記載されます。
「.rb」とはRubyのファイル拡張子ですね。

レシピには、データベースをインストールしたり、OSに適切な設定を行ったりと、アプリケーションの開発の準備として行うべきセッティングが、一つずつ記載されています。


これをChefで行うことによって、複数のサーバーに対しても、いちいち人間が同じ設定を行わなくてよくなるというメリットや、1台のサーバーに対してもより簡単に設定ができるようになるというメリットがあります。

ChefがRubyを採用していることからもわかるように、RubyはWebアプリケーションのバックエンドだけでなく、スクリプト言語としても非常に優れた言語です。

Ruby言語そのもののメリットは、この記事の後半でより詳細に見ていきましょう。


Rubyの用途2:
Ruby on Rails以外のフレームワークによる、軽量なWebアプリケーション開発


Rubyを用いたWeb開発を行うに当たって用いられるフレームワークとして最も有名なものは、もちろんRuby on Railsですが、実はそれ以外にもRubyには多くのフレームワークが存在します。

以下のようなものが有名ですね。

  • Padrino
  • Sinatra
  • Cuba

Rails以外の選択肢としてよく挙がるものとして、Padrinoというフレームワークがあります

Ruby on Railsによる開発が非常に多機能なのに対し、PadrinoはRailsよりも若干軽量に作られたフレームワークのため、若干処理が速いという特徴があります。

というのも、そもそもPadrinoとは、Sinatraという、超軽量でシンプルな開発に特化したフレームワークを元にして作られたものなのです。

PadrinoはRailsほどオールインワンではないものの、若干軽量で、手軽にアプリケーションの作成が可能です。


また、とにかくシンプルなWebアプリケーションを作成するのであれば、Padrinoの元になったSinatraは、非常に書きやすく、コード量も最小で済みます。
学習コストも非常に低い、優れたフレームワークです。


また、CubaというRubyのフレームワークも、非常にシンプルで軽量なフレームワークです。
このCubaは、最小限の機能のみを搭載した軽量さから、マイクロフレームワーク等とも呼ばれています


この他にも、スレッドセーフに対応したHANAMIなど、Rubyには様々なフレームワークがあります。


Ruby on Railsがオールインワンの多機能なフレームワークとして様々な用途で用いられるのに対し、軽量で、特定の用途に特化した、シンプルなアプリケーション構築には、様々なフレームワークの選択肢があるのです。

Ruby on Rails一択!
ではなく、用途によって最適なフレームワークを選択したいものですね。


Rubyのメリット

Rubyのメリット

上記ではRuby on Rails以外のRubyの用途について見てきましたが、Ruby on Railsによる開発以外の場面でもRubyが用いられている背景には、Rubyというプログラミング言語自体が備えている多くのメリットがあります。


Rubyのメリット1:
シンプルで美しいソースコードが書ける


このメリットに関して語られることは多いですが、私自身もRubyで仕事をしていると非常に強く感じます。

私はもともと、JavaPHPを用いたWebシステムの開発を行っていましたが、やはりこれらのプログラミング言語に比べると、Rubyはシンプルで、直感的に分かりやすいソースコードが書けます。

Javaで書くと数行に渡って長々と書かなければいけない処理が、Rubyで書くと1行で済んでしまうようなこともよくあります。

また、文法上、まるで英文を書いているような感覚で、プログラムが記載できる部分が多いです。

そういった、シンプルに記述ができるように、非常に作りこまれたプログラミング言語であることは、Rubyを用いる上での大きなメリットになるでしょう。


Rubyのメリット2:
楽しみながらプログラミングできるように設計された、多機能な言語


シンプルに記述ができるというメリットは上述の通りですが、Rubyのすごいところは、シンプルでありながら非常に多彩な機能が備わっていることです。

Ruby開発者であるまつもとゆきひろ氏は、以下のように語っています。

「プログラマがRubyを気分よく使えて、プログラミングの楽しい側面に集中できることを目指して設計されました。」

「見かけはとっつきやすいけれど、機能満載で使っていてワクワクするような言語になっています。」

つまり、シンプルなソースコード記述が可能でありながら、その裏には多くの機能が準備されているのです。

学べば学ぶほど、様々な機能に気づくことができ、プログラマーが決して飽きないような言語として設計されています。

「楽しみながらプログラミングができる」というのは、もしかしたら開発者にとって最も大きなメリットかもしれませんね。


Rubyのメリット3:
国産言語のため、日本語ドキュメントが豊富


Rubyとは、上記のまつもとゆきひろ氏が開発した、国産言語であるため、日本語のドキュメントもネット上に豊富にあります。

その為、日本人にとって学習しやすい言語であると言うことができます。

食べログクックパッドなど、国内での導入事例も豊富であるため、先人たちの知恵を日本語で学習しながら習得していくことが可能です。


まとめ:
Ruby on Rails以外のRubyの用途にも注目していこう!

Ruby on Rails以外のRubyの用途にも注目していこう

如何でしたか?

Ruby on Railsとセットで語られることの多いRubyですが、その他の用途もあることを、お判りいただけたでしょうか。

是非Rubyの機能を存分に使いこなして、ワクワクするようなプログラミングライフを送りたいですね。


おすすめ書籍:
プロを目指す人のためのRuby入門


私が読んできたRubyの本の中で、最もオススメできる1冊をご紹介させて頂きます。

以下の「プロを目指す人のためのRuby入門」です。


Rubyを開発した張本人であるまつもとゆきひろ氏が
「ああ、人の気持ちがわかるとはこういうことなんだなあ」
と言ったほど、非常にRubyについてわかりやすく、説明されている本です。

Ruby以外のプログラミング経験者はもちろんのこと、プログラミング初心者の方にも分かりやすいように、非常に丁寧に解説をしてくれています。

Rubyを用いた開発を行うのであれば、是非一度は読んでおくべき良書です。
Rubyに興味がある方は、ぜひ一度手に取ってみてください。