Rubyを用いるとどのようなことができるのか、皆さんは知っているでしょうか。

今日、さまざまなWebサービスが開発・公開されており、日常生活にも深く浸透してきました。Webサービスを開発する際に使われるプログラミング言語はいろいろありますが、その中でもRubyは、Ruby on Railsというフレームワークの普及もあり、Webサービス開発の代表的なプログラミング言語として注目を集めています。

今回は、Rubyを用いることでどのようなことができるのか、解説します。Web系のプログラミング言語と捉えがちですが、それ以外にもできることがありますので、それも含めて参考にしてみてくださいね。

Rubyとは

Rubyは、1990年代に登場したプログラミング言語です。外国製のプログラミング言語が多いなか、このプログラミング言語は日本で開発された純国産のプログラミング言語となります。

Rubyは「Enjoy for Progrmming」という目標を掲げており、コーディング時のストレスを極力削減することに重点を置いております。それ故に、Rubyの構文はシンプルに仕上がっており、見やすいコードが出来上がります。見やすいコードは、開発効率の向上に繋がります。

Rubyでできること

ここからは、Rubyを用いて具体的に何が開発できるのかについて説明します。

webアプリ開発

やはりRubyといえば、Web開発に最敵なプログラミング言語であることは、多くの方が思うイメージではないでしょうか。

Rubyには、Web開発のフレームワークである「Ruby on Rails」が用意されています。フレームワークとは、汎用的な機能を備えたプログラムの骨組みのことを言います。一からコードを書くのではなく、頻繁に使う機能はあらかじめ用意しておくことで、開発スピードの向上に役立てることができます。

Rubyを採用し開発する際には、Ruby on Railsを利用するのが通常となります。また、フレームワークを使うことで、プログラマーはどこの機能を実装すればよいのか、自ずと絞られてくるので、開発がしやすいのがメリットとしてあげられます。

Rubyで開発されたサービスも多く、料理レシピ共有サービスの「Cookpad」、ビジネス系SNSの「Wantedly」、グルメサイトの「食べログ」などがあります。

WebAPIの利用

Rubyを用いることで、WebAPIを利用することができる。WebAPIとは、ほかのアプリケーション・サービスの機能を呼び出す仕組みです。

一番わかり易い例は、Google Mapではないでしょうか。今日、さまざまなサービスでGoogle Mapを見ることがありますよね。このように、あるサービスのなかでGoogle Mapの機能を利用したときに、WebAPIを呼び出す機能を実装することで、この機能を実現させることができます。

RubyでWebAPIを利用するには、net/httpというRubyのライブラリを使います。実装もさほど難しくなく、少ないコード量で実装可能です。

Webスクレイピング

Rubyを用いることで、Webスクレイピングの機能を実装することができます。

スクレイピングとは、任意のWebページから目的の情報を抜き出し、それを加工して利用する仕組みのことです。情報を抜き出す際は、HTMLの形式で抜き出すため、それをプログラム内で扱いやすい形にするために加工するわけですね。

Rubyでは、nokogiriというライブラリを利用することで、Webスクレイピングの機能を実装することができます。ライブラリを利用しているので、複雑な処理を書くこともないです。

しかし、Webスクレイピングの機能を実装したいのではあれば、Pythonを利用するのがおすすめです。Pythonであれば、多種多様なライブラリが多いのもそうですが、特にpandasのライブラリを用いると、取得後のHTMLを解析し二次元のデータにしてくれるといったように、情報を加工するのにうってつけなのです。

スマホアプリ開発

あまりピンとこないかも知れませんが、Rubyでスマホアプリを開発することができます。

通常、スマホアプリの開発で言えば、JavaやKotlin、Swiftが代表的ですが、Rubyでも、「RubyMotion」を導入すれば、スマホアプリの開発ができます。Rubyの開発で慣れ親しんだ環境のもとで開発できるので、他のプログラミング言語を学ばくても良いというメリットがあります。

ただし、RubyMotionはOS X(macOS)上でのみ動作し、WindowsやLinuxでは使えないというデメリットがあります。

機械学習

これもイメージが薄いかも知れませんが、機械学習についてもRubyを用いて開発することができます。

RubyのライブラリであるPyCallを使えば、Rubyで機械学習を開発できます。PyCallという名前からもわかるように、このライブラリはPythonとの連携を行い、Ruby側からPythonの諸機能を利用するためのものです。

もともと、Rubyでは機械学習や統計分析を実装するのに適した機能を備えておらず、開発が困難でした。そのようなことから、PyCallというライブラリを開発し、Python経由で機械学習などのプログラムを開発できるようになりました。

とはいえ、今日の機械学習で主流なプログラミング言語はPythonです。Pythonであれば、機械学習の開発にうってつけな使い勝手の良いライブラリが多数用意されているということ、Pythonも比較的見た目のコードが分かりやすく、開発効率の向上が期待できるため、こちらのほうがおすすめと言えます。

Rubyは初心者に難しい?

Rubyは、初心者にとって比較的簡単なプログラミング言語です。

先述したように、Rubyはストレスを感じることなくプログラミングすることに重きをおいているので、構文が分かりやすいというメリットがあります。また、Ruby on Railsを学べば、最低限のコードを記述することによって、すぐにWebサービスを公開できるため、開発スピードも早くなります。

そのほか、資料も多くあることから、学習しやすいことや、純国産の言語であるという信頼もあることもメリットであると言えますね。

ただし、Rubyの強みはWeb開発で発揮されるという印象が強く、スマホアプリや機械学習といった分野では、他のプログラミング言語に軍配が上がります。スマホアプであれば、JavaやKotlin、Swift、機械学習であればPythonを学ぶのをおすすめします。

Rubyを学ぶメリット・デメリットは?

 

Rubyのおすすめ学習方法は?

結論はスクールで。
スクールをおすすめする理由(スクールはどういうメリットがある?)
こんな人は~だけど、こんな人はスクールがいいよ、的な説明。
Rubyを学ぶおすすめのスクールは~。
内部リンク。