最近RubyのフレームワークであるRuby on railsについて調べていたので、フレームワークの元の言語であるRubyについてまとめたいと思います。
元のRubyとフレームワークのRuby on railsとの違いや、どのような開発ができるのか学びたいと思います。
【初心者用】Rubyとは
1. そもそもRubyって何?
Rubyは1995年年に開発されており、2006年ごろにRubyは広く普及していき世界中のエンジニアに広まりました。
現在では主にWebアプリケーションやWebサイトの開発言語として、各開発現場で使用されています。
Rubyはソースコードのコピーや改変など、改良を加え再配布を可能とするフリーソフトウェアであり、Ruby on railsなどの有用なフレームワークが生まれる要因となっています。
Rubyに関しては後からオブジェクト指向プログラムの仕組みを取り入れたPHPとは異なり、最初からオブジェクト指向プログラムで開発できるように作成された言語となっています。
ですので、Rubyはオブジェクト指向プログラムを、自然にその仕組みを利用したコードを記述することができます。
Rubyのコンパイルはインタプリタ方式で行っており、一行ずつ変換を行いソースコードを実行するようになっています。
Rubyはインタプリタ言語となっているので、低速で動作をする者の短い記述のみで動作するスクリプト言語となります。
記述が長くなってしまうCやJavaなどとは違い、プログラムの記述が簡単に行うことができます。
また、Rubyは開発にかかるストレスが少なく、開発者がスムーズにコーディングすることができる言語といえます。
RubyにはRuby on railsというフレームワークも開発されているので、開発工程の大幅な短縮ができることで多くの企業などで使用されています。
最近ではSPAなどの開発ができるReact.jsやVue.jsなどといった言語も開発されていますが、RubyやRuby on railsで開発されているサイトなどもまだ多く残っています。
2. Rubyのメリットと特徴
Rubyはオブジェクト指向プログラムを使用できる、Webアプリケーションの開発に使用できる優秀な言語となっています。
以下にRubyを使用するメリットやその特徴をまとめたいと思います。
2-1. シンプルなコードを記述できる
Rubyの優秀な点として理解しやすいシンプルなコードを記述することができます。
JavaなどではClassやMainメソッドを作成するなど、オブジェクト指向プログラムで特徴的なクラスとメソッドと呼ばれるものを定義する必要があります。
ですが、Rubyではその必要がなく以下の様にシンプルで簡単に理解できるコードを記述することができます。
2-2. 学習コストが低い
Rubyはインタプリタ言語となっているので、記述したプログラムを実行する際に、プログラムを1行ずつ読み込んでその都度変換して動作する方式を使用しています。
インタプリタ言語は1行ずつ変換して実行するため、処理を実行して確認する際には早く表示して確認をすることができます。
Javaなどのコンパイルと呼ばれるプログラム全体の変換作業が不要となっており、そのため、Javaなどに比べて学習が簡単になっています。
それから、RubyやRuby on railsは日本人が開発した言語ですので、書籍やインターネットに日本語の資料が豊富にあります。
そのため、日本人でこれからWebアプリケーション系の開発をしたいので、Rubyを学ぼうと考えている人にとっては、初心者でも学習コストが低く学べる言語となっています。
2-3. バグを発見しやすい
Rubyはオブジェクト指向のプログラミング言語なので、オブジェクトやひな形等の単位ごとに扱うことができます。
オブジェクト指向プログラムは、1つ1つの機能ごとにプログラムの処理がまとまって作成されるところにあります。
ですので、オブジェクト指向を使用して機能ごとのプログラムが明確になることで、プログラムに変更や修正を加えたときに問題個所を特定しやすくなっています。
このように、RubyやJavaのようなオブジェクト指向のプログラムは各機能をまとめてる利点があります。
3. Rubyのデメリット
Rubyには優秀な点が多くありますが、その反面デメリットもいくつかあります。
デメリットについて以下にまとめたいと思います。
3-1. 個人で差が出る
Rubyは自由に様々なコードの記述をすることができるのですが、その反面自由すぎるため個人の記述方法によって良くも悪くもなります。
簡潔に処理を記述できるのでシンプルで理解しやすいのですが、余計に処理を追加したりなど個人の技量により複雑になることもあります。
3-2. 処理速度が遅い
Rubyはインタプリタ型の言語となっているので、1行ずつ機械語に翻訳してしまうため処理速度が遅くなってしまいます。
プログラム言語のソースコードをコンピューターに読ませるためには、人間が理解できる高級言語であるプログラム言語のから、下級言語である機械語に翻訳することでコンピューターに理解させることができます。
一応は遅いことがデメリットになりますが、Webアプリケーション開発やWebサイト開発では、そこまで処理速度を気にしなくてよいためそこまで気にする必要もありません。
3-3. 大規模開発には向かない
Rubyは書き方の統一がされていないため、人により様々な記述方法ができてしまいます。
そのため、多くの人がいる大規模開発のようなものには、Rubyは向いておらずその場合はJavaなどが使用されます。
Javaはそもそもが大規模開発で長い間使用されていたこともあるので、基本的にはC#などといったものと同じように他の言語に切り替わることはかなり先かと思われます。
また、Rubyは記述方法を統一する為に、コーディングルールを設けることによって、一応は大規模開発に使用することもできます。
ですが、大規模開発の場合は社内だけではなく社外にも開発を外注することがあるので、社外にまでコーディングルールを統一してもらうのは難しい点があります。
それをするなら、元々Javaなどで大規模開発をした方が、余計なルールや手間が必要ないのでそちらを使用することが多くなります。
3-4. 機械学習は不向き
Rubyは主にWebアプリケーション開発に使用されており、人工知能開発やディープラーニングを使用した開発には不向きです。
現在ではPythonが機械学習にも使えるので、人工知能開発ではRubyではなくPythonを使用します。
Rubyでも機械学習の実装は可能ではあるのですが、Pythonの方が向いているため実務ではほぼほぼ使用されていません。
4. まとめ
Rubyについてまとめると以下の様になります。
・シンプルにコードを記述できる
・学習コストが低い
・バグを発見しやすい
上記の様に使用するにあたり、大きなメリットがありました。
また、オブジェクト指向のプログラムなので、機能ごとにまとめやすいなどあります。
Webアプリケーション開発に使用するのであれば、RubyやRuby on railsを使用することは良いかと思います。