LoginSignup
1
0

More than 1 year has passed since last update.

彦摩呂「Rubyや~~」

Last updated at Posted at 2021-09-09

こんにちは!
スクールのカリキュラムの通りに実装を進めて教材の通りに
Ruby on RailsでWebアプリケーション作成しました。
しかしふと思ったんです。

何でRuby?

ラビットの麒麟川島「Rubyだ」

PHP、Java, Pythonとあって何でRubyを俺は使ってる??
と思いました。
まさしく僕は誰?状態です。
メモ用としてRubyのことについてディグっていきたいと思います。

いつできて誰が作ったの?

Rubyが生まれたのは1995年です。
はいそうです、僕と同い年です。
しかも開発された方は日本人の
まつもとゆきひろさんという方だそうです!!

海外旅行に行くと
レペゼンジャパンはドラゴンボールやキャプテン翼などが挙げられますが、
エンジニア界隈では「Rubyやん!」と言われることもあるんじゃないの。

Rubyの特徴

動的型付き言語でありシンプルな構文なので記述量が少なく、
プログラミング初心者でも比較的入りやすい言語のようです。
また、オブジェクト指向を採用しているため、保守、運用に優れています。

これ初めて聞いた時、因みに僕はこう思いました。

どこがやねん

めちゃくちゃ何言ってんのかわからんがな。

数こなしていく内に点と点が線でつながるようになりましたが、
プログラミングにおいて数をこなす事が大事だったのかなと今では思っています。

動的型付き言語????

むちゃくちゃわからん単語出てきたがな。理解できんまま進めんわ。
ということで調べてみました。

そもそも動的と静的という言葉はなんやと思い調べると
動的:状況によって状態を変える
静的:状況によらず状態を変えない
だそうです。

動的サイトならユーザーの要求で表示内容を変えるサイト
静的サイトならいつでも表示する内容が変わらないサイト
と言えます。

これを踏まえて
動的型付け言語とは
変数などのデータ型の宣言がいらない言語のことで、
静的型付け言語とは、
変数などのデータの定義が必要な言語
ということです。

記述の違いを見て考えていきましょう。

動的型付け言語の記述例

a = 2
b = 3
puts a + b

簡単に書けますね。実行結果は5です。

静的型付け言語の記述例

#include <iostream>
using namespace std;

int main()
{
    int a = 2;
    int b = 3;
    cout << a + b << endl;

    return 0;
}

いやなっが。
すごいですね計算結果5を出す為だけにこんなに記述しないといけないのか。
int型という整数の変数a,bが定義されています。

動的型付けと静的型付けを比較して解ること

動的型付け言語なら変数などのデータ型の宣言がいらないので
記述量が大幅に減り、比較的容易にプログラムを書くことができます。

短く簡単にプログラムをかけるんなら全部動的型付け言語でええやんけと
思いました。

静的型付け言語のメリットについても考察してみました。

  • コンパイル時にエラーが発生
  • パフォーマンスの向上

コンパイル時にエラーが発生
コンパイル時にエラーが発生するので
プログラムを実行する前にエラーを特定することが可能です。
int型の変数なのに文字列を代入しようとしてしまってるとかですかね。

確かに動的型付け言語だとプログラムが実行された後にエラーが発生するので
見返すのに時間がかかったりしちゃうんですよね。

パフォーマンスの向上
静的型付け言語ならデータの型が分かるので、
整数同士の計算や
小数同士の計算が
プログラム実行前に解る。

データの定義がされているのでコードを見返すのが楽ちんですね。

また、Rubyはインタプリタ方式を採用しています。

インタプリタ方式とコンパイル方式

インタプリタ方式とは簡単にいうと
プログラムの内容を人間がわかる言葉からコンピュータがわかる言語へ一つずつ翻訳しながら動かす方式のことです。

人間がプログラムを入力→
入力されたプログラムをコンピュータが解るように翻訳→
翻訳された命令に従ってコンピュータが仕事を実行する
というそんな流れ。

この入力されたプログラムを1行ずつ繰り返すのがインタプリタ方式です。

彦摩呂のグルメコメントでインタプリタ方式を例えてみましょう。

彦摩呂がウルフギャングでステーキを頬張る(人間がプログラムを入力)→
彦摩呂の心の声「ん?ジューシーやな?これは何てコメントしよかいな」(入力されたプログラムをコンピュータが解るように翻訳)→
彦摩呂がコメント「味のIT革命や〜」(翻訳された命令に従ってコンピュータが仕事を実行する)

コンパイル方式は入力されたプログラムを全部翻訳しその翻訳された
プログラムを実行する方式です。

コンパイル方式を彦摩呂で例えてみましょう。

彦摩呂がステーキを完食する(人間が入力したプログラムをコンピュータが全て翻訳)→
彦摩呂のコメント「赤かぁ~。てんこ盛り~~っ!食べ物を美味しく表現するのが僕の使命です~。お肉と野菜とタレの騎馬戦や~。肉汁のドリンクバーや~。」(翻訳されたプログラムを基にコンピュータが実行)

Rubyのデメリット

インタプリタ方式を採用してるから処理速度が遅いんですよね。

上記の彦摩呂のグルメコメントを例を基に考えてみましょう。
インタプリタ彦摩呂はステーキを一口一口頬張るごとに、
いちいちコメントをしています。
それに対してコンパイル彦摩呂はステーキを完食してから
考えたコメントを発言しています。
食べ終える時間が遅いのは明らかにインタプリタ彦摩呂ですよね。

インタプリタ方式を採用するということは、コードの記述量が増えれば増えるほど
処理速度が遅くなるということです。
食べる量が増えれば増えるほど彦摩呂は食べ終えるのに時間がかかりますよね。

だから大規模なアプリや処理速度が命のアプリなものには
Rubyは向いていないと言えますね。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0