Rubyってなあに? 〜学習開始から34日目〜 実録!20代後半元商社営業が完全未経験からITエンジニアになれるのか。その⑥
どうも、ゴリ男です。
はい、こちらは有名な「エラーばっかり」状態です。
プログラミング初心者のゴリラによく見られる表情でございますねぇ。
続きまして、解決方法が意外と簡単だった時の「神妙な面持ち」ゴリラです。
スクールで現役エンジニアに教えてもらった時に、頻発する表情です。灯台下暗し。
さてと!
本日は、ゴリ男がスクールにて学習しているRuby/Ruby on Railsについて、自身の理解のためにも、書いていきたいと思います!
最終的にこの答えに行きつきたいと思います!
はりきっていけめす!
改めまして、本日はRuby/Ruby on Railsについて。
ちなみに「こんなもんで良いのかな」くらいの理解を許すことが、ITへの入り口です。
【本日の目次】
Ruby/Ruby on Railsとは<構成>
Rubyの特徴
Ruby/Ruby on Railsの業界的地位
以上
1. Ruby/Ruby on Railsとは<構成>
RubyとRuby on Rails、この2つは別物で、ほとんどの場合セットとして扱われています。紐解いて行きましょう。
Ruby = プログラミング言語
Ruby on Rails = フレームワーク
※プログラミング言語にも多くの種類があるように、フレームワークも用途や言語に合わせた様々なものがあります。Ruby言語がRailsフレームワークでのみ動作するわけではありません。
※MVCアーキテクチャに関しては、深掘りする必要があるので後日にします。
2. Rubyの特徴
上記を踏まえて、Ruby/Ruby on Railsの強みを把握します。
と言われています。
1.『オブジェクト指向』
様々なデータやメソッドなどの要素を、1つの「オブジェクト」としてまとめ、それらオブジェクト同士を連動させるようプログラミングし、動作させます。少し踏み込むと、簡単にクラスや継承の定義ができる特徴をも持ちます。簡単に言えば、複雑な処理が必要でも、コードでいちいち記述するのではなく、そういう処理を行う「装置」を作ってしまうような感じでしょうか。色々な処理をする装置同士を組み合わせることもできますし、既成の装置はいくらでも1クリックでクローンできますし、また既成の装置を元に処理指示を少しだけ変えれば多種多様な装置を簡単に作ることができる、イメージですかね。
ちなみに最近のプログラミング言語はほとんど、オブジェクト指向だそうです。
2.『インタプリタ方式』記述されたコードを逐一解析して実行できます。このメリットは、コードを記述しながら実行結果を得られることにあります。
対する「コンパイル方式」の特徴が分かれば、前者の強みを理解できると思います。コンパイラ方式では、記述したコード(=人間が理解できる言語)をコンピュータが理解できる機械語に翻訳しないと、コンピュータは実行できません。時間がかかるのもそうですが、エラー発生時に修正すべき箇所が分かりにくいです。
つまり繰り返しですが、インタプリタ方式では打ち込んだコードを即時実行できるので、逐一指示通りに動作するか試せば良いので、修正すべき箇所が一目瞭然です。
3.『汎用性が高い』
Rubyには、「gem」と呼ばれるライブラリがあります。これまた開発がしやすくなる機能なのですが、同時にWebシステム開発以外の開発も実現します。フリー(無料)言語かつ実行環境もエンジンのみあれば整います。更にはOSも選ばず、MacOS、Windows、Linuxでも動作します。また機能性を上げるごとに、脆弱性も克服しています。
4.『構文の自由度が高い』一瞬だけ複雑になりますが、Rubyは動的型付であるため、記述の自由度が高くなります。動的型付というのは、変数に対する型宣言が不要で、実行時に変数の型が自動判別される言語仕様のことを言います。簡単に言えば、これも記述するコードが少なくて済むのでプログラムの開発スピード向上や修正において有利と言えます。
5.『記述量が少なくて済む』何度も触れてきましたが、要は「短いコードで済む」強みです。自由度の高い言語仕様、オブジェクト指向、であるが故に当然の結果であり、そもそもRubyが開発された目的です。必要最低限を記述すれば良いのです。
3. Ruby/Ruby on Railsの業界的地位
結論、企業から重宝されています。まず、導入が無料のためコスト的な敷居が低いこと、そして開発効率の高さ=>生産性に直結するためです。特にスタートアップやベンチャー企業にとって、サービスをいち早く提供できる状態にできるためRubyは有意義とされています。
事実、RubyはTwitterをはじめとする最大級のSNS、食べログ、クックパッド、グノシー、GitHub、耳にしたことのある有名Webサイトで実用されています。また大手小売りチェーンのキャンペーン専用特設サイト、鉄道会社の集計システムや、航空機の管理を担うシステムにまで使用されてきているなどの実績が既にあります。
Rubyエンジニアの需要
従って、日本におけるRubyエンジニアの需要が高い/高まると言えるのではないでしょうか。Webコンテンツ分野やビッグデータが盛り上がる中で、それらを扱えるだけでなく開発効率や保守性の高さを持ち合わせるRubyを導入する企業が多いのは頷けます。
また現状、それらの盛り上がりに対する人材不足が問題ともなっています。
leotee-engineer-mikeiken.hatenablog.com
今後、第5次産業革命に向けてIoTはビッグデータを扱うものが増え、それに伴いRubyが更なる底力を発揮するのではないかと考えます。そうもなれば、必然的にRubyをベースに先端技術エンジニアの需要も増えていくのではないかと想像します。
と、本日は以上です。
Rubyを褒めるかのように記載しましたが、どの言語も一長一短です。業界的な強みではなく、“学ぶ”視点の強みとして、Rubyはその簡略化された記述方式により初心者には比較的覚えやすいとされています。
(まぁ、これは数学の公式的な考えだと思います。単純化・公式化されているがゆえに、色々すっ飛ばしてので、未経験者にとっては「実際にはどんな処理が行われているかが見えにくい」という苦しみは個人的には感じていますが。)
ゴリ男が右も左も分からない状態で、最初にRubyを選んだ理由が見えてきましたね。
覚えるのが簡単そうで、需要があるからです。(ずっるーーー。)
おい時代、頼むぞまじで。
以上!!!
余談ですが、ゴリラの学術上の正式名称は、「ゴリラ・ゴリラ・ゴリラ」だそうです。
ゴリラ種の中の、ゴリラ種の中の、生粋のゴリラ種、
出てこいや!!!!
おやすみなさい。