はじめまして、ITエンジニアのカワノです。
Rubyというプログラミング言語についてご存知ですか?世界中で利用されているプログラミング言語で、特に日本で高い人気を得ています。この記事ではそんな Ruby について現役エンジニアである筆者が解説していきます。
目次
Rubyとは?
Rubyとは、簡易な文法とインタプリタ言語ならではの手軽さから世界的に人気なプログラミング言語です。これからその特徴について詳しく説明していきます。
日本人が開発した世界的プログラミング言語
Rubyが特に日本で高い人気を得ている理由の一つに、Ruby の開発者がまつもとゆきひろさんという日本人であることが挙げられます。日本人が開発したプログラミング言語は数多く存在していますが、世界中で利用されているのは Ruby だけでしょう。
開発者が日本人であるということは単に「国産だからいい感じがする」というだけでなく、以下のようなメリットがあります。
- 日本語のドキュメントが充実していて最新情報も日本語で入ってくる
- 開発者が日本国内で、日本語で公演を行っている
- 日本語の使用を前提とした言語仕様なので平仮名・カタカナ・漢字の表示周りで困りにくい
今は翻訳機能が充実していることもあり、英語の情報でも抵抗がない人も多いと思いますが、自然な日本語で得られる情報は細かいニュアンスまで正確に得られるので、先人たちの知見から最新情報まで母国語で得られるのは大きなメリットです。
初心者にもわかりやすい簡易な記法
Rubyの特徴の一つが、専門的な知識がなくともなんとなく意味がわかるくらい、自然言語 ( 英語 ) に近い記法です。「直感的に理解できる」と表現されることもあります。これは特にプログラミング初心者の方にとって大きなメリットでしょう。
C言語や Java などの静的型付言語と異なり、Ruby は動的型付言語なので型の宣言が不要です。このことにより、型について学習する前から初歩的なプログラムを書くことができます。また、読む時も英語を読むような感覚で読むことができるように工夫されています。
コンパイル不要で手軽に動かせる
Rubyはインタプリタ言語と呼ばれる言語の一つで、「コンパイル」という作業を行わずにそのままプログラムを実行することができます。C言語や Java などはコンパイル言語と呼ばれ、コンパイルをしないとプログラムを実行することができません。
コンパイルとは、人間が書いたプログラムコードを機会でも読めるように翻訳する工程のことです。プログラミング言語やプログラムコードの長さにも寄りますが、時間と手間がかかります。プログラムにちょっとした修正を加えただけでもう一度コンパイルを行わなくてはならないので、煩わしさもあります。
しかし、Ruby はコンパイルが不要なので手軽にプログラムの書き直しと実行、つまりトライアンドエラーができます。これは初心者から上級者まですべての人に優しい仕組みです。
Rubyで作られている身近なサービスを紹介
Rubyを使用して作られているサービスは身近にたくさんあります。世界的SNSである Twitter も長年 Ruby を使用して運用されていました ( 開発当初想定していた規模から大幅に成長したため、よりパフォーマンスを求めて違う言語切り替え済み ) 。他にも動画サービス Hulu や民泊サービス Airbnb も Ruby で作られています。日本ではメルカリやクックパッドなどのメガベンチャー企業のサービスによく使われています。
ベンチャー企業での採用率が高い
メリカリやクックパッドで採用されていることからもわかる通り、Ruby は多くのベンチャー企業で採用されています。直感的に読み書きできるという特徴や、短い記述で多くのことを実現できる Ruby on Rails というWebフレームワークの存在から、数あるプログラミング言語の中でも小さな機能を速く開発・リリースすることが得意だからです。
ベンチャー企業はスピードが命であり、できるだけ速く新サービスや新機能を開発・リリースしてフィードバックを受け次第修正をリリースします。そのためには Ruby が最適なプログラミング言語だと判断する企業が多いのです。将来的にベンチャー企業への就職・転職を考えている方は、とりあえず Ruby を学習すると良いでしょう。
Rubyを学ぶと何ができるようになる?
次に、Ruby を学習することで具体的に何ができるようになるのかについて説明していきます。
Webアプリケーション開発
Rubyの用途としてまず真っ先に挙がるのがWebアプリケーション開発です。それには Ruby on Rails というWebフレームワークが大きく関係しています。
Webフレームワークとは、Webアプリケーションを作るための便利な機能がついた枠組みのようなものです。あらかじめ用意された枠組みにオリジナル部分を追記したり上書きしたりすることで、ゼロから作るよりも簡単にWebアプリケーションを作ることができます。
Ruby on Rails とは Ruby を使用するエンジニアの中でもっとも人気のあるWebフレームワークで、Webアプリケーションを最小限の記述で開発できることが特徴です。例えば掲示板や TodoList のような小規模のWebアプリケーションであればプログラミング初心者でも簡単に作ることができます。
ツールやマクロも書ける
Rubyでできることは Ruby on Rails などのWebフレームワークを利用したWebアプリケーションの開発だけではありません。ワードカウンタやファイル検索ツール、Webクローラーなどのツールやマクロなどを作成することもできます。
あまり大規模なものはパフォーマンスの問題で難易度が高いですが、比較的小規模のものやパフォーマンスを求めないものならば、基本的な文法をマスターするだけで簡単に作成可能です。発想次第で簡単に自分だけのツールを作ることができるので、自動化できそうな作業がある時に挑戦してみると良いでしょう。
Ruby と一緒に学習するべきものは?
実際に Ruby を学習する際に、一緒に学習するべき技術について紹介します。
HTML, CSS, JavaScript
すでに述べたように、Ruby の用途といえばWebアプリケーション開発です。しかし、Ruby だけでWebアプリケーションを開発することはできません。HTML, CSS, JavaScript のスキルが必要になります。
Rubyをサーバーサイドの開発で使用するのに対し、HTML, CSS, JavaScript はフロントエンドの開発、つまり画面の開発に使用します。HTMLはWebページを表現するためのマークアップ言語、CSS はWebページに装飾を施すための仕様、JavaScript はWebページを動的にするためのプログラミング言語です。
いずれも基本的な知識を得るだけでWebアプリケーション開発ができるようになりますが、これらの技術を過不足なく駆使することでより良いWebアプリケーションを開発することができます。特に CSS と JavaScript は非常に奥が深く、学習が進むにしたがって難易度も高くなりますが、適切に使用することでWebページの UI ( ユーザーインターフェース ) / UX ( ユーザー体験 ) の大幅な改善が見込めます。
Web フレームワーク Ruby on Rails, RDBMS, SQL
これまでも述べてきたように Ruby のWebフレームワークといえば Ruby on Rails です。そしてWebフレームワークはWebアプリケーション開発において必須と言っても過言ではありません。したがって、Ruby を学習するならば Ruby on Rails も一緒に学習するのが良いでしょう。
また、Ruby on Rails と同時に RDBMS と SQL も同時に学習するとWebアプリケーション開発についてより理解を深めることができます。
RDBMS とは 関係データベース ( RDB ) 管理システムの事です。現在よく使われているデータベースは関係データベースと言って、エクセルの表のようにテーブル形式で表現できるようにデータを格納しています。RDBMS は関係データベースのデータの更新や参照を行ったり整合性を保ったりするための専用のソフトウェアです。
RDBMS には様々な種類がありますが、学習する際には無料で利用でき、かつ多くの企業で採用されている MySQL や PostgreSQL がおすすめです。また、この二つを含む RDBMS のほとんどでデータベースとのやりとりに SQL という言語を使うので、合わせて学習する必要があります。
なお、Ruby のWebフレームワークは Ruby on Rails だけではありません。例えば Sinatra というWebフレームワークも Ruby で作られたものです。興味がある方や Ruby on Rails 自体が学習目的ではないという方は、こちらについても学んでみると Ruby やWebフレームワーク、Webアプリケーション開発のスキルアップに繋がるでしょう。
Ruby は就職・転職につながる?
ここまで Ruby について紹介してきましたが、実際に身につけた場合に仕事に繋がるのかが気になっている方も多いと思います。結論から言うと、( メガ ) ベンチャー企業への就職・転職ならば成功させることができるでしょう。
大企業に関してはそもそも Ruby を使用している企業が少ないため、就職・転職に Ruby を役立てることは困難です。しかし、ベンチャー企業は Ruby を使用している企業が多く、Ruby エンジニアの需要が高いです。
ある程度の知名度があるなどして競争率が高い企業にアプローチする際は、他の応募者との差を企業にアピールする必要がありますが、現場未経験でも雇ってもらえる可能性はあります。また、現場未経験のエンジニアを積極的に採用し、自社で教育すると公言しているベンチャー企業も存在します。
このように聞くと非常にハードルが低いように感じるかもしれませんが、最低でも基本をきっちり抑えていることに加え、業務上多様する技術に関して身につけておく必要があります。これは半端な気持ちで独学で身につけられる類のものではありません。それ相応の覚悟と努力が必要です。しかし裏を返せば、くじけることなくコツコツと学習を続ければ得られるということでもあります。就職・転職の武器として使えるようにRubyを学習する際は、この点を念頭に置きましょう。