サーバーサイド開発言語としてのRubyってどうなの?
19/01/27 16:15:07 19/01/27 18:55:27
Rubyは基本的にサーバーサイドを開発するための言語です。イメージしやすいよう他のサーバーサイド言語を挙げておくと、php、java、C#、python、perlなどです。これらの言語でフロントエンドを実装することもありますが、内部の処理がメインのため、サーバーサイドということになります。
逆にフロントエンドの有名なプログラミング言語としては、HTML、CSS、JavaScriptなどが挙げられます。ユーザーの目に触れる表面的な実装と、ブラウザ上で動くスクリプトの部分までがフロントエンドと考えるのが一般的です。
ブラウザからHTTP通信で送られた後は、サーバーサイドということになります。HTTP通信とは、ブラウザとWebサーバーの間で行う通信のことです。ちなみにインターネットでWebページを開くとURLにhttpと入っていますが、これはHTTPの通信規格を意味しています。
httpsとsが付いている場合、それはHTTP通信で、なおかつSSL化されていることを表します。SSL化とは、情報を暗号化するということです。つまり、httpよりもhttpsの方がセキュリティレベルが高いイメージです。
Rubyとは直接的に関係ない話でしたが、Rubyでサーバーサイドの実装を行う際には基本的な通信規格や、フロントエンドとの違いなどもある程度把握しておいた方が混乱せずに済みます。
今やっている目の前のコーディングと、Webシステムやその他システム全般の仕組みが頭の中で結び付くとよりプログラミングを楽しむことができるかと思います。
サーバーサイド開発言語としてのRubyの特徴
Rubyの魅力はバランスの良さと日本語ドキュメントの充実性でしょう。Rubyはまつもとひろゆき氏という日本人が開発した言語で、Perl、Smalltalk、Eiffel、Ada、Lispといった言語をブレンドして作られました。
まつもとひろゆき氏いわく、Rubyは外観上一見シンプルな構造をしているが、内部ロジックは複雑だ、とのことです。つまり、プログラマーはRubyをシンプルに使いこなすことができるが、内部では自動的に複雑な処理を行ってくれているということです。
実際ライブラリが豊富で、また最強のフレームワークと言われるRuby on Railsは広範囲で実装を助けてくれます。簡単なのに高機能という点はプログラマーにとって大きな魅力と言えるでしょう。
サーバーの実装に便利なフレームワークやライブラリが最初から充実しています。ちなみにRubyが開発されたのは1995年なので、すでに20年以上経過しています。しかし今なおまつもとひろゆき氏はtwitterなどで積極的にRubyに関する情報発信を行っているので、興味のある方はぜひフォローすると良いかと思います。
Rubyのコード
Rubyはシンプルで直感的にわかりやすいということでしたが、たとえば出力コードはその分かりやすい例です。Javaもシンプルではありますが、Javaで文章を出力する際には以下のように記述する必要があります。
System.out.println("文章を表示します");
これでも簡易的ではありますが、手書きしようと思うと地味に面倒な長さです。しかし、Rubyの場合以下の記述で同じことができます。
p "文章を表示します"
これだけでテキストの出力ができます。Javaに比べるとp一文字なので圧倒的に簡単です。プログラミングはアルゴリズムやロジックを考えることが重要なので、長いコードを記述する時間ははっきり言って無駄です。
入力補完等で実際すべてのコードを記述するわけではないのですが、コードを読む際にもなるべくシンプルで文が短い方がアルゴリズムやロジックの解析に集中することができます。
JavaのSystem.out.printlnというコードは無駄と言えば無駄なので、Rubyのスタンスはプログラマーにとって素晴らしいものと言えるでしょう。
Ruby on Railsで作られたアプリは多数
論より証拠で、実際Rubyがどのようなシステムで使われているのか気になるところです。いくらRubyの魅力がわかったところで、現実に稼働しているシステムがRubyで作られていなければ信憑性がないかと思います。
なぜなら、ニーズのない言語にも、ニーズのある言語にも、それぞれきちんとした理由があるからです。プログラマーは合理的な考え方をする人が多めなので、プログラミング言語の選択も当然合理的です。
RubyはRuby on Railsという圧倒的な人気を誇るフレームワークで実装されることが多いですが、Ruby on Railsを使用したアプリケーションには以下のようなものがあります。
- クックパッド
- Gunosy
- クラウドワークス
- 食べログ
- 価格.com
- hulu
- Github
他にもいろいろなRubyアプリケーションがありますが、上記のものはかなり有名です。最後のGithubとクラウドワークス以外は、ほとんどの方が耳にしたことのあるサービスばかりではないでしょうか。
クラウドワークスもフリーランスや副業をされている方の間ではトップレベルに有名なアプリケーションで、Githubもエンジニアなら知らない人はいないと思われるアプリケーションです。
これだけの有名かつ人気のアプリケーションがRubyで実装されているので、それだけでも十分Rubyの実力が証明されているのではないでしょうか。また、上記のアプリケーションはすべてRuby on Railsで作られています。
Ruby on Railsという超強力なフレームワークが存在することもRubyの大きな特徴です。他のプログラミング言語だとフレームワークの違いから微妙にスキルチェンジを図る必要が出てきたりもするのですが、Rubyの場合Ruby on Railsに慣れておけばまず間違いありません。
システム開発現場でもほぼRuby on Railsを使用しているため、そのフレームワークは使ったことがない、フレームワークが変わったせいで慣れるまでに時間が掛かる、といったケースがほぼないということです。
逆に言えば別のフレームワークを使って学習すると開発現場に参入する際にRuby on Railsに慣れる必要が出てくるので、特に理由がないのであればRubyの学習はRuby on Railsで進めるのがおすすめです。
PythonやPHPとの相乗効果
Rubyは非常に魅力的な言語ですが、Ruby一本に絞って学習するよりもPythonやPHPといった市場価値が伸びてきているサーバーサイド言語を一緒に勉強するのがおすすめです。複数の言語を勉強することでその言語を別の角度で見れる、比較することで特徴がよくわかる、といったメリットがあります。
特にRuby、Python、PHPは共通点が多いため、比較しつつも学習の相乗効果が得られます。そして、これらの言語間で書き換えが行われたり、パーツに応じて言語を使い分けているようなケースも多いです。
相乗効果を得ながら自分の市場価値を高めることができるので、Rubyと類似していて、なおかつ市場価値の高いプログラミング言語はぜひ合わせて習得することをおすすめします。
Ruby関連記事
1, Rubyフリーランスの仕事や単価、ruby on railsの在宅案件まで
2, Rubyとは?学習方法や将来性、perlやphp、Pythonの比較はどう?
3, Ruby on RailsでMySQLを使用する際の接続手順
4, あるiOSアプリのエンジニアがRuby on Railsのプロジェクトに加わった話
5, 小学生でも数時間でアプリを作れたRuby on railsの入門書3選
6, 【決定版!】Rubyでできることとは?
7, Ruby開発の新卒採用している会社まとめ
8, Rubyで文字列から数値へ変換する方法まとめ
9, RubyのWebサーバ「puma」を使ってみた感想
10, Rubyでのmecabの使い方を徹底解説します
11, Rubyでハッシュに対する繰り返し処理を行うeachの3つのメソッドの使い方
12, Rubyのyardを使ってソースからドキュメントを生成する方法
13, Rubyでディレクトリ内のファイルを一覧出来るようにする方法
14, Rubyを使ってcsvファイルを読み込む・書き込む方法まとめ
15, MacでRubyの開発環境構築する方法をまとめました
16, (この記事)サーバーサイド開発言語としてのRubyってどうなの?
17, Rubyで範囲オブジェクトを配列にする方法
18, CentOSサーバにRubyをインストールする方法
19, Rubyを使ってやりたいことから逆引きで使える機能を解説します
20, Rubyでopen uriを使ってWeb上のデータを取得しよう
21, Rubyでハッシュをマージ(結合)する方法まとめ
22, Rubyのrakeの使い方をまとめました
23, Rubyでのtimeクラスの取扱に関してのまとめ
人気記事