BETA

全ての人が学ぶべき1つの言語 (Ruby編)

投稿日:2018-11-11
最終更新:2018-11-11

IT関連技術者に限らず全ての人が学ぶべき一つの言語がある。それはRubyだ。Rubyがあれば何も要らない。

Rubyは何時でも使える。

Rubyは何時でもインストールできる。インストールができない環境であっても、インタプリンタのバイナリを置くだけで使うことができる。

Rubyは何処でも使える。

Rubyは場所を選ばずに使える。

  • 公式実装のRubyは標準的なCで書かれていおり、GCC等がサポートするほとんど全てのOSやアーキテクチャで使える。
  • mrubyを使えば、組み込み環境でも使える。
  • JRubyを使えば、Java VM上でも使える。
  • IronRubyを使えば、.NET上でも使える。
  • Opalを使えば、ブラウザ上でも使える。
  • さらに、少しのコード修正で、静的型付けかつ高速なCrystalとして使用もできる。

Rubyは誰でも使える。

Rubyを使う人に制限はない。

  • Rubyは無料である。使用に制限はなく、商用/非商用を問わず、誰でも自由に使える。
  • Rubyは習得が容易であるため、プログラマー以外も使える。
    • プログラミングを全く知らない人でも、少し学ぶだけで、十分強力なコードを書くことができる。^1
    • 日本生まれであるため、日本語の情報が豊富であり、日本語での学習環境も整っている。
    • 標準でirbというREPLが用意されているため、学びやすい。

Rubyは何にでもに使える。

Rubyはあらゆる用途に対して使える。

  • Webアプリを作れる。
    • 用途に合わせてフレームワークやライブラリを選択できる。
      • フルスタックWebフレームワーク: Ruby on Rails
      • 軽量Webフレームワーク: Sinatra
      • 標準添付CGIライブラリ: cgi
    • 様々なテンプレートがある。
      • タグ埋め込みテンプレート: erb
      • インデントHTMLテンプレート: Haml / Slim
    • バックエンドだけではなく、Opalを使えばフロントエンドにも使用可能。
  • GUIアプリを作れる。
    • Windows版ではコンソールを切り離して起動可能な"rubyw.exe"が用意されている。
    • 様々なGUIツールキットが使用できる。
    • 2D/3Dグラフィックのライブラリを使ってゲームも作れる。
  • CUIアプリを作れる。
    • 標準入出力をサポートしている。
    • ワンライナー可能な実行オプションを搭載している。
    • 強力な組み込みクラス・メソッドによって、一度限りの実行からサービスとして実行まで、様々な用途に使用可能になっている。
  • 処理の自動化に使える。
    • Mechanizeを使ってスクレイピングができる。
    • win32oleを使えば、Excelのマクロ代わりとしても使用できる。
  • テキスト処理に使える。
    • 文字列に対する様々なメソッドが用意されている。
    • 文字列自体が文字コードを持っているため、Shift_JISやEUC-JPのテキストをそのまま操作できる。
    • 正規表現エンジンとして採用しているOnigmoは、Perl互換から多くの拡張がなされており、日本語を含む様々な言語と文字コードに対応するなど、現在最も強力な正規表現エンジンの一つである。
    • あらゆるエンコードに対応したiconvだけではなく、日本語文字コードに強いNKFを標準ライブラリとして採用している。
  • 他にもたくさんの目的に使える。
    • RubyGemsには多くのライブラリが用意されているため、様々な事ができるようになっている。

Rubyは如何ようにも使える。

Rubyはどんなふうにでも使える。

  • 流行りのマルチパラダイム言語である。
    • Smalltalkの流れを組む純粋オブジェクト指向と言うオブジェクト指向の正統派である。
    • LISP由来の関数型プログラミングを支援する機能を一部搭載し、関数型のようにも使用できる。
    • Perlのようによく使う物ほど少ないコードで実装できる。
  • 並列処理ができる。
    • マルチスレッドのみならず、マルチフォーク^2もできる。
    • Fiberをつかったコルーチンもできる。

Rubyを使わない理由はない。

もうわかったであろう。もはやRubyを使わない理由はない。あらゆる人のための言語、それがRubyである。


Python編も書こうと思ったけど、疲れたッス。誰か、書いてくんないッスかね?

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@raccyの詩集

よく一緒に読まれる記事

5件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
11/11 14:27

個人的感想です。 Rubyは、記述の仕方もたいへん好きなんですが、環境のインストールの重さやマイナーバージョン間で動かなくなるアプリが激しいように感じます。 それと、巨大なのか、動作が他のスクリプトに比べると遅いようにも感じます。 二年ほど使ってないので、改善されているかもしれませんが私の印象でした。

11/11 14:48

コメント修正できないのか!

  • すいません、読み返すと好きな言語であることが、アピールできていなくて、悪い面しかとりあげていないコメント担ったしまいました。m(__)m
  • Rubyは、また勉強をしたいと思っていることを、追加でお伝えします。
  • 修正か取り消しできるようにしてほしい。
11/11 15:42

atoris1192 さん

私がRubyをさわり始めたのは1.6.0がリリースされたばっかりの頃で、当時に比べれば現在は爆速になっています。当時は、もう重すぎて重すぎて、本当に使い物にならかった…。2.6ではJITを搭載する予定など年々速度は向上しています。スクリプト言語はJavaScriptが(企業間競争の結果)頭一つ抜き出している印象ですが、それ以外は50歩100歩だと思いますよ。

Rubyでは1.8から1.9で大きな変更があり、互換性が崩れています。1.9が2.0の準備だったと言うこともあったのかも知れません。私自身は、1.9以降は動かないと聞くことはあまりありません。あるとしたら、gemでWindows用のバイナリが用意されていなかったことぐらいでしょうか(Cで書かれたライブラリはコンパイル前提なのでマイナーバージョン間でライブラリのバイナリに互換性がない)。

まぁ、本当の所、一度きりの書き捨てやプロトタイプ、ちょっとしたものぐらいに使うのがいいのかと思っています。膨大な情報を同時に高速に処理するとか言うのは全く向いていません。でも、そんなものが必要になる人ってどれぐらいいるんでしょうか?というのが私の思いです。

11/13 16:59

そのままpythonに置き換えてもほぼOKなので、モダンな言語であれば一つの言語で大体済む、というのがよくわかりました。

11/13 21:20

@hogemax さん

あまい、あまいっすよ。Pythonだと流行りのディープラーニングがおまけでついてくるっすよ。Rubyだとこの分野のライブラリがPythonに比べてどうしても…

目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!