初心者向け学習方法一覧はこちら
この記事では、Rubyの特徴とできることについて解説します。
Rubyとは
Rubyとは、日本人のまつもと ゆきひろ氏が制作したプログラミング言語です。Rubyは主にWebアプリケーション開発に利用されており、有名どころでは「クックパッド」や「Qiita」「GitHub」などで採択されている言語です。
利用技術は、時代やトレンドに応じて変わる可能性がありますが、Wappalyzerというツールの拡張機能を使えば、ブラウザで開いているページが、何の技術を利用しているのかを分析することができます。利用技術が全て正確に分かるわけではありませんが、参考程度に活用してみてください。
Rubyの最大の特徴は、オブジェクト指向のインタプリンタ言語であることです。また、動的型付け言語で、変数宣言も不要で....と解説を続けても、全く意味がわからないと思うので、Rubyの特徴を理解するための前提知識を順を追って説明します。
オブジェクト指向とは
オブジェクト指向については、
インタプリタ言語
コンピューターは、バイナリーコードと呼ばれる機械語をもとにプログラムを実行します。つまり、プログラミングコードは、一度コンピューターが理解できる機械語に翻訳しないと実行することができません。
そのため、プログラミングを実行するためには、ソースコードを解析し、機械語に翻訳する必要があります。これをコンパイルと呼びます。
コンパイルする必要がある言語をコンバイラ言語と呼び、C、C++、C#やJava、Goなどの言語が代表的な言語です。
これに対して、インタプリタ言語とは、人間がわかりやすいプログラミング言語で書かれたプログラムをコンピューターが逐一実行できるようにする言語のことです。Rubyの他、PHP、Pythonなどが代表的な言語です。
入力したコードをまとめて翻訳するのがコンパイラ言語、1行ごとに翻訳するのがインタプリタ言語というような解釈です。
コンパイラ言語は、一度コンパイルする必要があるため、気軽に実行するというのが難しく、開発生産性は下がります。しかし、一度コンパイルしてしまえば、コンピュータがすぐに実行してくれるので、実行速度が速いことがメリットです。
インタプリタ言語は、その逆で、気軽に実行できるため、バグの発見や色々気軽にプログラムを試すことができますが、逐一翻訳が必要となるため、プログラムの実行速度は下がってしまいます。
動的型付け言語
動的型付け言語とは、変数やオブジェクトの型宣言が不要なプログラミング言語のことを指します。インタプリタ言語の多くは、動的型付け言語ですので、PHP、Pythonなどがこれに該当します。
型とは何かというと、1という文字が、数値(IntegerやFloat)なのか、文字列(String)なのか、と言ったように、投入するデータの形式を決めることです。
動的型付け言語は、型の定義が不要なため、コードの記述量が減ることや、簡単にプログラムをかけることがメリットです。
一方で型を定義しないということは、プログラムする上で、意図しない挙動を引き起こす可能性もあり、ある程度、企業でもプロダクトがある程度成熟したタイミングで異なる言語に切り替えことが増えてきました。
Rubyでできること
Ruby (Ruby on Rails)を学習すると一通りのWebアプリケーションの開発ができるようになります。機械学習やスマホアプリの開発には適していませんが、ほとんど大多数のWebサービスの開発できる点では、最もコスパの良いプログラミング言語と言えます。
中には「Rubyはオワコン」や「Rubyを学んでも意味がない」という意見もありますが、私の解釈では、「Rubyだけ学んでも意味がない」だと思ってます。なぜなら、Web業界では、1言語のみを習得しただけで、エンジニアとして活躍できるような環境ではなくなっているからです。
Rubyが意味ないと言われ出した背景には、3つの理由があります。
- フロントエンド(Webサービスで目に見える部分)界隈の動きが活発で、Javascriptなどのフロントエンド言語と組み合わせて利用するようになった。
- 中規模の開発規模まで発展すると、サービスを最小単位に分割するマイクロサービス化が活発になりはじめた。
- 結果として、Ruby on Railsの設計思想に沿わない開発手法が増えて、Rubyに以前ほどの勢いがなくなった。
(Rubyしかできないエンジニアが量産されて、現場で役に立たなかったこともオワコンと揶揄される理由にありますが、こういうマウントとってくる意見は参考にしなくて大丈夫です。)
つまり、Web業界の進歩に合わせてできることが増えたことにより、複数の言語や、アーキテクチャを組み合わせて、サービスを開発するようになったため、Rubyだけ学べば通用する世の中ではなくなったということです。
ただ、フロントエンド言語のみを学習しても一人でWebサービス開発を完結させることはできず、バックエンド側の言語を学ぶ必要があります。これがRubyであれば、1人でもWebサービスを開発を完結させることができます。そして、Rubyとフロントエンド言語と組み合わせることで、より画面の見た目や動作の優れたWebサービス開発ができるようになります。
また、Rubyを採択しているサービスで別の言語を導入するにも、既存のRubyコードを理解する必要があるので、結果としてRubyの知識は必要となります。
Rubyの開発者まつもとゆきひろ氏自ら、このテーマについて言及されていますので、こちらもご覧ください。
皆さんがエンジニアとしてのキャリアをスタートするためにやるべきことは、1つでも現場で通用するプログラミング言語を身につけることです。最初にプログラミングを始めるのであれば、Rubyは今でも学ぶ価値のある言語ですので、しっかりと身につけておきましょう。
(もし、本当に価値がなくなったらこの記事をアーカイブして、他の言語を推奨しますのでご安心を。)
Rubyを学ぶには
テキストエディタを用意する前に、簡単な計算式や条件分岐、メソッドについて一通り見ておきましょう。
実際の開発はRuby on Railsで詳しく進めますが、Rubyでも環境構築から一通り学習したい方はこちらを参考にしてください。
こちらはRubyの公式ドキュメントです。自分のダウンロードしたバージョンの動作確認や、調べてもたどり着けないような情報はこちらを参考にすると良いでしょう。
プログラミングスクールの選び方
転職を検討中の方向け
フリーランス・副業で活躍したい方向け
教養・キャリアアップしたい方向け
給付金について詳しく知りたい方向け