昨今関心や注目度、需要の高さが故に授業にも取り入れられるほどのプログラミング。
そのプログラミングについて調べたり、学習に取り組むうえで欠かせないのが、どんな言語があり、それらは一体どんなものに使われているのかを知ることです。
この記事では無数にある言語の中でも”Ruby”という言語で一体何ができるのかについて紹介していきます。
Rubyってなに?
そもそもRubyとはどんな言語なのでしょうか。
どんなことができるのかを知る前に、Ruby言語の背景に少し触れていきます
書いて楽しいことを最も大切な要素としていることから、構成されている文法も簡易的なものとなっています。
Rubyはとても柔軟な言語
Rubyは1995年に一般公開され、世界中から熱心なプログラマーを魅了しています。現在では大規模なカンファレンスが開かれるなど地位を得ている言語の一つと言えます。オブジェクトの言語でありながらとても柔軟な言語でもあります。
どのへんが柔軟なの?
「ここだけちょっと直したいなぁ」と一部の変更が、自由にできます。これはけっこう大きいですよ
単一継承であることもほかのオブジェクト指向言語よりも複雑性が低くなっていて、とっつきやすさがあります。
そういった特徴を持つことから、初心者がプログラミングに飛び込む際の入り口として勧められることが多い言語の一つでもあります。
Rubyでなにができる?できない?
ここまででRuby誕生の背景や特徴を述べてきました。
では優しい言語であるRubyを使えばどんなことができるのでしょうか。
Rubyはスタートアップ企業の新規事業など、素早くリリースする必要があるプロジェクトに採用される傾向にあります。
できること1 ユーザー同士が交流できるSNSの開発
TwitterやFacebook、どこに食べに行こうか評価でパッと決められる「食べログ」、私たちに欠かせないものとなっているレシピサイト「クックパッド」、など登録者同士が記事やコメントなどを投稿して交流できるSNSを開発できます。
Ruby On Railsというフレームワークを使えば、ユーザー登録、データベース、ログイン機能などSNSサイトに必要不可欠な機能が容易に実装することが可能だからです。
同じSNSでも、開発者をユーザーとするGitHubもRubyで作られています。プログラムのバージョン管理やコードの共有ができ、現在では全世界で無くてはならないプラットフォームとなっています。
できること2 マッチングアプリの開発
Rubyを使えば、人同士やサービスを繋ぐことができるマッチングアプリの開発が可能になります。
自分のお目当ての人や物などの検索機能等もフレームワークによって実現できます。
民泊経営者と宿泊者をつなぐ「Airbnb」、副業として仕事を獲得したい受注者と、外注先を求めている発注者をつなぐ「クラウドワークス」など、どれも私たちにとってかなり身近なサービスに使われ幅広く活躍しています。
できること3 動画や音楽の配信サービスが作れる
動画や音楽の配信となると、膨大な量のユーザー情報やコンテンツ情報、課金記録など、重要なデータを適切に取り扱う必要があります。
フレームワークとの組み合わせにより複雑そうな処理をより簡易的なものとし開発が可能です。代表的なサービスは国内外でもユーザーを獲得しているHuluがあります。
できること4 業務効率をあげるツールやソフトの開発
サービスの性質上、いかに実用的なものを迅速に開発できるかが問われますが、Rubyはその状況にうってつけです。
開発スピードが早いのは、大きなメリットですね
代表的なものは、Money Forwardクラウド(経費、領収書、給与などの事務的な業務を自動化できる)、freee(個人事業主や小規模法人向けのクラウド会計サービス)などがあります。
できること5 スマホ・iPhoneアプリ開発
AndroidやiOSのアプリ開発は、JavaやSwiftが一般的でシェアも大きく占めていますが、Rubyでも開発できます。
RubyMotionというソフトを使えば可能となります。
できること6 ゲーム開発
C言語やUnityで開発されることがほどんどですが、Rubyでもゲームを開発することができます。
Ruby Gosuというパッケージを使えばスーパーファミコン並みのゲームが作れてしまうのです。
できること7 ECサイトの開発
誰もが知っているAmazonや楽天に代表されるECサイトを開発するのにもRubyは優秀です。
基本的なログイン機能や検索機能に加えて、購入や決済機能といったオンラインサロンショッピングには欠かせない機能もセキュリティを保ちながら実装することができます。
できること8 チャットボット開発
企業のホームページやサービスで自動チャット返答サービスをみかけるようになりましたが、Rubyを使って開発可能です。
LINEやSlackなどと連携することができるライブラリも用意されているので簡単なものであればすぐに作れてしまいます。
できること9 スクレイピング
Rubyはアプリやウェブサービスの開発だけではなく、情報収集にも重宝します。
スクレイピングとはWEBサイトから取得したい情報を加工、整理して新しい情報として抽出する技術です。Rubyではnokogiriというパッケージを使って実現可能となります。
Rubyにも苦手分野はある
これまではRubyでできることについて実用例を交えながら紹介してきました。しかし、Rubyにも苦手分野はあります。それを知ることも最適な言語選びへの近道となるのでみていきましょう
できないこと1 機械学習
Rubyで全く機械学習ができないわけではありません。
しかし、機械学習や統計分析に実用的なライブラリや機能が十分に備わっていません。
Pythonなどのようにその分野に特化した言語が存在している以上、わざわざRubyを選定する可能性は低いといえます。
できないこと2 スマホアプリ開発
スマホアプリについても同様です。
別に開発用ソフトが必要となることを考慮すると、Ruby以外の他の適した言語を学ぶ方が効率は良いといえます。
まとめ:Rubyを学べばできることは相当広がる
以上述べてきたように、Rubyは今や全世界で様々な企業のサービス開発に採用される人気のプログラミング言語であり、もちろん短所と長所の両側面を持ち合わせています。
基本的にはできることの方が圧倒的に多いですが、デメリットも踏まえたうえでこれから作りたいものに対して最適な言語を選択することが重要です。