読者です 読者をやめる 読者になる 読者になる

或阿呆のブログ

Pythonを好んで使っているプログラマです。Ruby,Perl,PowerShell,VBAなどでもたまに書いています。おバカなことが大好きです。

Ruby on Rails というフレームワークにおける「フレームワーク」とは何か?

僕は、PythonからRubyへ鞍替えしたわけだけど、以下の理由による。

  1. 日本では、PythonよりRubyのほうがシェアが高い。*1それに伴って、PythonよりもRubyのほうが情報が多い。独学する者にとって情報が多いというのは大きなメリット。
  2. RubyにはRailsという強力なWebアプリケーションフレームワークがある。PythonにもDjangoがあるじゃないかと反論されるかもしれませんが、知名度も情報量も実績も比較にならんほど。

フレームワークとは何か?

Ruby on Rails 4 アプリケーションプログラミング

Ruby on Rails 4 アプリケーションプログラミング

↑これ読んだらめちゃくちゃわかりやすかったので引用しておく。

フレームワークとは、問題をより一般化し、解決のための定石をまとめた枠組み(Framework)であると言っても良いでしょう。

p.2

ライブラリとフレームワークとの違いは?意外と、ここはわからなかった。ライブラリもフレームワークも「再利用可能なクラス」というところは一緒。違いは、ユーザーコードから呼び出されるのがライブラリ。それに対して、

アプリケーションフレームワークの世界では、ユーザーコードがアプリケーションフレームワークによって呼び出されます。

p.3

このように、プログラム実行の主体が逆転する性質のことを制御の反転と言います。制御の反転こそが、フレームワークの本質であると言っても良いでしょう。

p.3

ふむふむ。

つまりは、Ruby on Railsでは、どうやって制御するか?ということを考える負担がだいぶ軽減されるということだと思う。Ruby on Railsによって制御されるパーツを書くという感覚なんでしょうね。

発想の転換ですね。

難しいことや面倒なことを考えると、思考が停止してしまう。手が止まってしまう。結果、コードを書くのを止めてしまう。パーツを書くという発想で行けば、案外サクサク行くのでは。気分的に楽だ。

*1:海外ではRubyよりPythonのほうがシェアが高いようです。