【Ruby、PHP、Javaの順で学びました】「Rubyは初心者向きじゃない」と言われる理由 | 地方でまったりエンジニア

エンジニアのキャリア プログラミング学習

【Ruby、PHP、Javaの順で学びました】「Rubyは初心者向きじゃない」と言われる理由

スポンサーリンク

いとうです( ˙-˙ )!

東京を中心に今、プログラミング学習を始めようという方の多くにRubyが人気のようでして。
僕自身最初に業務で扱った言語がRubyだったため、実際に使ってどうだったか。

また、Rubyの現在と将来の需要についてお話ししたいと思っています。

Rubyは「Ruby on Rails」によって需要が急騰した

ところで、今なぜ初学者を中心にRubyが人気なのか今のところ僕はわかっていません。

スクールの広告の影響なのか、宝石の名前のおしゃれなイメージなのか。。。

ちなみに僕が最初に学習した2017年頃はこれからRuby、Railsの案件が東京を中心に爆発的に増えると言われていました。(結局そんなこともありませんでしたが、、、)

まず、そもそもRubyが人気になった背景はRubyのフレームワークである「Ruby on Rails」の存在抜きには語れません。

初学者の方にはフレームワークの存在がピンと来ないかも知れませんが、要はRubyでの開発を簡単にしてくれる便利なツールです。

サービス開発をするときによく使われる処理や機能(例えばログイン機能や入力フォームなど)をRubyだけを使用して書くと何十行も書かなければいけない処理を少ない記述量で書くことができるなど開発の効率を高めることができます。

このフレームワークはRubyに限らず、様々な言語に開発を助けてくれるフレームワークが存在しています。

PHPならLaravel、cakePHP、FuelPHP。
JavaならSpring、サーブレットなどが有名でしょうか。

もともとRuby自体が評価されていた訳ではありませんが、このRuby on Railsの登場によって多くの開発現場でRubyが使用されるようになりました。

Ruby on Railsの特徴は?

フレームワークは開発者によって今も日々現在進行形で新しい機能が追加されたり、古くからあった機能が廃止されるなど日々進化を続けています。

また、それぞれのフレームワークの特徴もトレンドはあるものの千差万別です。

Ruby on Rails(以下railsと呼びますね)の特徴は何と言っても圧倒的に少ない記述量です。

もともとRubyは他の言語に比べて同じ処理を書く場合でも多言語に比べてコードを書く必要が圧倒的に少ないです。

他の言語だと処理の終わりに「;(セミコロン)」をつけてその行の終わりを明示的に示してあげる必要があったり、処理一つ一つを括弧でまとめる必要がありますがRubyの場合そういう余計な記述をなるべくしないようにプログラムが書けるように配慮されています。(括弧やセミコロンの記述が必要な部分は当然あるのですが)

例えばJavaとRubyでは文字列を出力する処理を書きたいとき下記のような記述量の違いがあります。(実務ではあまりこのような処理は行いませんが・・・)

【Javaの場合】
public class Main{
public static void main(String[] args) {
System.out.println("( ˙-˙ )");
}
}

【Rubyの場合】
puts "( ˙-˙ )"


この違いは尋常ではありませんね。Javaであんなに色んな英単語が記載されているのにRubyだと一行で「puts」と実際に出力したい文字を""(ダブルコーテーション)で囲うだけで済んでいます。

上記は厳密にいうとrailsではなくJavaとRubyという言語同士の比較ですが、かなり少ない記述量で記載ができることをわかって頂けたんじゃないかと思います。

なぜ同じプログラミング言語なのにJavaとRubyでこのような違いが出るかというと、Railsの場合「設定より規約」という思想のもとに開発されたツールだからです。

「なんのこっちゃ、」と思うかもしれませんが、
もともと多くの言語では「今回この変数やメソッドをこのファイルで使う、変数のタイプ(型)はこれで、変数やメソッドを呼び出すときにはこのメソッドを使うようにして。。。って、やってほしいことは全部漏れなく書かなきゃ動かないよ」と逐一適切なファイルに書く必要がありました。Javaもこのタイプの言語です。これが「設定」です。

それに対してRuby(Rails)ではあらかじめ上記のような設定を省略して書けるようにルールを設けました。
「変数やメソッドのタイプ(型)はいちいち指定しなくても中に入ってるもので勝手に判断するよ、ここのファイルに書いたものはこうやって使うものってことにするからね。ルール守って書いてね。ルールと違う(デフォルトじゃない)使い方したい時にはちゃんと例外の書き方して伝えてね」

というイメージです。(と言ってもまだ学習されていなかったらなんのことかあまりわからないと思いますが、今の段階ではそれでOKです。)

簡単に両者の違いをまとめると

Java・・・どういう動作をするか一から全て命令してあげる必要がある。書くコード量が多いのが面倒ではあるが間違いが少ない。

Ruby(Rails)・・・記述しなかったらデフォルトではこういう動作をする。というルールが決まっている。ルールに沿っていればかなり高速に開発を進めることができるが、ルールを間違えた記述をすると開発者の意図と違う動きをする可能性が高い

ということになりますかね。

一見Rubyは初心者向けに見えると思うが・・・

従来の言語、フレームワークと比べて少ないコードで同じ処理を実現できるならRubyを学んだ方が初心者には良いようにも見えますよね。

しかし、結論から言うと初学者の方がRuby(Rails)から入ることはあまりオススメしません。

開発の処理の流れを理解してないと低スキル、低待遇エンジニアになってしまう恐れがある

先ほど「Railsでは省略された記法で書くことができる」と」お話ししましたが、実際には本当に処理全てを省略できている訳ではありません。

Railsくんが裏で「こういう書き方をされているからこんな処理をすることにしよう」というプログラムが走っていい感じに処理を動かしてくれているんです。

それはそれでありがたいんですが、その恩恵を受け続けていると。実際に「どんな処理が行われているのか理解できていない」というエンジニアが出来上がってしまいかねません。

これは実は昔の僕自身がそうでして、一通りRubyとRailsを学習して簡単なWEBアプリであれば自分で作れるようになったのですが。

「ちょっと複雑な機能に関してはググりながらでも実装が難しい」という問題に直面しました。


WEBの仕組みや、他の言語ではアプリ開発までに学ぶ様々なことを意識せずとも簡単なアプリ程度なら作成できるほどRailsが強力なのです。

しかし、本来WEBシステムであればDB(SQL)の知識、HTTP通信の知識、操作端末の互換性などなどプログラミング言語以外にも様々な知識が必要です。


Railsであれば上記の知識が浅くてもそれっぽいものが開発できたような気になれてしまいます。


Rubyを使った開発案件が特別多い訳でもないですが、プログラミングスクールがこぞってRubyのコースを推すのもこのへんの教えやすさが理由です。

趣味としてのプログラミングであればそれでも問題ありません。しかし実際に仕事としてお客さんからの作って欲しいものの要望を形にするためには上記の開発に必要な最低限の知識は必要になります。(これがないと、分からないことを検索しても検索結果の記事に書かれている内容が理解できませんし現場で会話についていけません。)


仕事がまともにこなせないエンジニアはいくら需要のある言語を勉強していても、いい条件で働くことは難しいでしょう。
Railsは開発を高速で進められることが特徴の言語でもありますので多言語以上に現場での生産性が求められることも忘れてはいけないです。

結論:Rubyは開発者自身が基礎を身につけてから学ぶのが吉

RubyやRails自体はうまく使いこなせば開発者にとってかなり強力なツール、言語であることは間違いありません。

それでも初心者が使うとRubyとRailsの仕組みを十分に理解して開発することは難しいと思います。

僕自身は最初に学んだという贔屓目抜きでもRubyは好きです。
個人開発で何か作るとなったらよっぽど不都合な理由がなければRubyを使いたいです。

ただ、全くのプログラミング未経験者がこれから「仕事として使っていく」ということを考えたらRubyは候補に上がってきません。

仕事としての案件数が豊富なJavaかPHPをオススメすると思います。

また、一つの言語を使えるようになってからなら他の言語の習得は容易だ、とはよく言われますが。Rubyに関してはちょっと特殊なので例外です。

Rubyから入って後からこの二つの言語を学ぶより、JavaかPHPをやってからRubyを学ぶ方がはるかに簡単でしょう。

そういった意味でもweb系を目指すならPHP、プログラミングの概念をしっかり学んで長く通用するエンジニアになりたいならJavaをオススメします。


スポンサーリンク

月額¥9800でエンジニア転職を目指す『Freeks(フリークス)』

巷には様々なプログラミングスクールが存在していますが、エンジニア転職には高額なプログラミングスクールは不要だと思っています。

就職サポート&実務経験3年以上の現役エンジニアがメンターにつき、模擬プロジェクトまで経験できるカリキュラムが『Freeks(フリークス)』なら月額¥9800で受講可能です。

エンジニア転職のために何年もプログラミング勉強に費やすのも効率が悪いです。


初期費用、最低契約期間等が一切ないので、教養としてのプログラミングを学びたい方やプロのエンジニアを目指す方におすすめです


半年~1年くらいサクッと学んでITスキルを身につけましょう



今すぐ無料説明会を予約!月額9800円で通い放題のプログラミングスクール【Freeks】

-エンジニアのキャリア, プログラミング学習

© 2021 地方でまったりエンジニア Powered by AFFINGER5