個人的なDjangoとRuby on Railsの比較・メリット・デメリットなど

記事公開日:
最終更新日:

Sponsored Links

数年以上前、開発を始める際に DjangoRuby on Rails のどっちを採用しようかと考えながら、海外サイト含めて結構リサーチしていたのですが、どうも決定的な理由が見つからずに困った経験がありました。

数年経って、Django と Ruby on Rails の両方を使って開発した個人的な感想(あくまで個人的です)という点から、両方のフレームワークを比較した内容をメモとして書いておきたいと思います。
今後、どなたかの判断に貢献できれば幸いです。

長い文章読むの面倒だから、要するにDjangoとRailsどっちがおすすめなの?

個人的にはDjangoがおすすめです。
理由としては、Railsは確かにコード量は少なくなりますが、コードの内容が抽象化されすぎてて、レールに乗らない開発や原因不明のエラーが出た際の対処が大変な印象が強いです。ブラックボックス感が多いです。

Djangoはその点、ブラックボックス感が少ない印象です。
他にも色々と理由はありますので、後の項目のDjango/Railsのメリット・デメリットも参考にしていただけたらなと思います。

書いた人、Rubyをほとんど使ってないんじゃないの?

その通りです。Railsを使う際にしかRubyは書きません。
しかも、Pythonで機械学習していたりもしていますので、明らかにRubyよりもPythonのスキルの方が高いので、Djangoが使いやすいと思うのかもしれません。

あと、RailsとDjangoに漠然と存在する思想が、どっちが好きかとかも大きいと思います。
あくまで個人的なイメージですが、Railsは如何にクールなコードを書いて開発するか(なので、抽象化されて短いコードで済む)みたいな感じ、Djangoは如何に明示的にプログラム同士の独立(疎結合)を保つか(なので、可読性が高くてモジュール化しやすい)みたいな印象があります。

Django vs Rails のシェアは?

日本、海外共にRailsのシェアの方が大きいです。
なので、Djangoおすすめですって書いてる人は少数派になります。

Django vs Railsの 学習コストは?

RailsはRubyが書けるとか言うよりかは、Ruby on Railsという名前の通り、Rails独特のルール縛りがあります。
Githubにあるようなアプリの雛形を軽く修正して使うなどの場合に Rails はすぐ使えて便利ですが、レールに乗らない開発やライブラリの組み合わせによるエラーがでた際には非常に大変です(という個人的印象)。

Djangoはある程度Pythonが理解できていれば、素直なコードで構成されているので全体像は理解しやすいと思います。
MTVのうちテンプレート(ヘルパーなど)の記法がDjango独特ですが、チュートリアルを参考にする程度で使えると思います。

Django/Railsのメリット・デメリットは

Django/Rails各々のメリットの逆がおおよそ、デメリットみたいな感じです。主にメリットを列記しておいて、デメリットを括弧内に書いています。
最後は、メリット・デメリットでなく好みによって決めるのが良いと思います。

Railsのメリット:

  • Railsはコード量が少なくて、簡潔な書き方ができる(明示的でないので、コード内容が分かりにくい)
  • Rubyは日本語周りが強い(慣れればPythonでもあまり苦にはならないが、この点は明らかにRubyに軍配)
  • Railsは日本語コミュニティの層が厚い(海外においては情報量ではDjangoが強い)
  • バージョンアップが早い(コードがすぐに陳腐化する、メンテナンスにおいては致命的)
  • Railsは便利なライブラリが充実している(ブラックボックスが多い、エラーが出たときに結構大変)

Djangoのメリット:

  • 上級者と初心者が書いたコードがあまり代わらない(コード量が多い)
  • DjangoはRailsに比べるとコード量が多くなる(明示的で、コードが分かりやすい)
  • (個人的には)DjangoはRailsと比べると別のアプリにモジュールが移植しやすい(一つのアプリ内で重複するコードが多くなる)
  • (個人的には)Djangoも便利なライブラリが充実している(コードが明示的なのでRailsに比べるとブラックボックスが少ない、エラーが出ても対処が比較的容易)

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報facebookページGoogle+そしてTwitter、またRSSfeedlyLINE@にてお知らせしていますのでフォローよろしくお願い致します。


Sponsored Links