fugafuga.write

日々のログ

Ruby 2.x.x 入門 - Ruby という言語について -

Ruby を学習するにあたって、プログラミング言語としてのRubyとはどういうものなのか。
言語そのものや、周りのことについて調べました。


Rubyとは

公式サイトより、

Rubyは、手軽なオブジェクト指向プログラミングを実現するための種々の機能を持つオブジェクト指向スクリプト言語です。本格的なオブジェクト指向言語であるSmalltalk、EiffelやC++などでは大げさに思われるような領域でのオブジェクト指向プログラミングを支援することを目的としています。もちろん通常の手続き型のプログラミングも可能です。

Rubyはテキスト処理関係の能力などに優れ、Perlと同じくらい強力です。さらにシンプルな文法と、例外処理やイテレータなどの機構によって、より分かりやすいプログラミングが出来ます。

まあ、簡単にいえばPerlのような手軽さで「楽しく」オブジェクト指向しようという言語です。どうぞ使ってみてください。

Rubyはまつもと ゆきひろが個人で開発しているフリーソフトウェアです。

オブジェクト指向であること、
正規表現がつよい(確信)、
シンプルでわかりやすい、
楽しい、
まつもと ゆきひろ氏が作った、

なるほど。


Rubyでggrksしてたら、「Rubyの女神」とか言うサジェストが出てきました。
何の気なしに見てみてたら、1時間くらいRubyの女神について調べていました。
自分でも何が起こったのかよく覚えていません。

どうせメディアが持ち上げてファッションITしてまーすみたいなやつだろとか思いながら。
小1時間Rubyの女神について調べていました。
自分でも何が起こったのかよく覚えていません。

何故か今Google画像検索の画面が開いています。
不可解ですね。(白目)


Google検索のサジェスト機能作った人えらい。


閑話休題


プログラミングをしていて、ワクワクする瞬間はどんな時か。
私の場合、自分が組んだプログラムが動いた時です。

Rubyは、その体験がお手軽にできるところが良いと思っています。

・コーディングしたらすぐ動かせる環境が整っている。(irb, pryなどのREPL環境)
・シンタックスがシンプルである。

・コード書く → 動かす というサイクルを速く回すことができる。

・プログラム動いて楽しい!


Ruby on Rails

Web開発をかじったことがある人は、Railsと言う単語は良く耳にしているかと思います。
Ruby on Railsとは、Web開発の為の、Rubyで作られたMVCフレームワークです。

何故有名なのか?

Railsの基本理念は「同じことを繰り返さない」(DRY:Don't Repeat Yourself)と「設定より規約」(CoC:Convention over Configuration)である。
「同じことを繰り返さない」というのは、「定義などの作業は一回だけで済ませろ」との意味である[1]。「設定よりも規約」とは、「慎重に設計された規約(Convention)に従うことにより、設定(Configuration)を不要にする(あるいは軽減する)」ということである。Railsはフルスタックのフレームワークであり、コンポーネントの統合は手動での設定を必要とせず自動で規約に従い行われる。例えば、Ruby on Railsに組み込みのORMライブラリであるActiveRecordでは、クラス定義においてデータベースから読み取るべき属性名等を指定する必要はない。ActiveRecordはRDBMSの表定義から自動的にその情報を取得する。したがって、プログラムとRDBMSの両方にそれを定義するというような冗長な作業を行う必要はない。
(Wikipediaより)

この哲学が徹底されているおかげで、開発者が実装するコード量が少なくなり、結果的に生産性が上がるという部分が人気の要因になっているのではないかと思います。

ただし、裏を返せば、Railsの型にはまらないようなアプリケーションの場合は、逆効果になる可能性もあります。

フレームワークも道具の一つ。
無用の長物になってしまわないように気をつけたいと思います。


Rubyコミュニティ

Rubyのコミュニティは沢山あります。
コミュニティに参加すると成長できるとMats氏も言っております。



Rubyイベント、Ruby勉強会の一覧 | Doorkeeper



たのしいRuby 第4版

たのしいRuby 第4版

作りながら学ぶRuby入門 第2版

作りながら学ぶRuby入門 第2版



(参考)
Ruby初学者のためのオンラインドキュメントまとめ - Qiita