web-dev-qa-db-ja.com

Rails Rubyで書かれたのはなぜですか?

PHPとRubyを知っています。

Symfonyと呼ばれるPHP Rails clone(選択不可ではありません))を使用します(これは明らかに最良のPHPフレームワークです)、私はそれがRailsのクローンであることに気づきました。Symfonyは馬鹿げていると思います(SensioLabsは賢いビジネスです)Railsが既に存在するためです).

Railsがすでに存在する場合、なぜ人々がPHPでRailsクローンを作成しているのか、なぜRailsを使用しないのか、なぜオープンソースプロジェクトはお金を稼ぐのか分かりません。 ?確かにDHHコーディングRails with Ruby for a reason。

Symfonyを使用していて、何かが適切に感じられないことに気づきましたが、それが何かはわかりません。私はRailsがらくたのSitepoint電子ブックで学んでそれを忘れていたので、今はPragProg電子ブックで学んでいます。その電子ブックが大好きです。Railsは完全にはわかりませんが、方法は理解していますそれは機能します(symfonyに感謝します)電子ブック全体を読み終えて2 Railsアプリを作成できるようにしたいと思います。覚えていますRailsより楽しいSymfonyはSitepointの電子ブックを使用していますが、これは完成できず、Rubyのかなりの構文とは何の関係もありませんでした。

  1. RailsがRubyでコーディングされているのはなぜですか?
  2. PHP Railsクローン、正しくないと感じることについてはどうですか?
  3. Railsがやっていること、それがRailsクローンがやっていないことは何ですか?
9
desbest

1.)RailsがRubyでコーディングされているのはなぜですか?

Railsはもともと [〜#〜] dhh [〜#〜] のBasecampでの作業から抽出されました。 Rubyで。時間の経過とともに、Railsコア開発者はRailsへの機能の抽出と開発を続け、最終的には本格的なフレームワークになりました。

Rubyは長年にわたって力と表現力が増してきましたので、フレームワークに適しているため、フレームワークに適した言語であり続けています。(さらに、「C#on Rails」または「Java on Rails」にはニースの対義語はありません。)

2.)PHP Rails clones、それは正しくないと感じることについて)

これは実際に客観的に答えることはできませんが、おそらく#1が原因です。 Railsの動作と内部は、Rubyに存在する多くの機能を利用しており、他の場所で正確に複製することは困難です。たとえば、PHPにはメタクラスがありません。これはRailsに大きく依存します。

Railsがすでに存在しているのに、PHPでRailsクローンが作成されている理由がわかりません。なぜRailsを使用しないのですか? ?確かにDHHコーディングRails with Ruby for a reason。

誰もが新しいフレームワークを学ぶために新しい言語を学ぶための時間、予算、または傾向があるわけではないからです。

類推として、 Brainfuck が非常に人気のあるWebフレームワークであることが判明した場合、それはあなたがBrainfuckでアプリケーションを作成していないクライアント?それはビジネスを運営する方法ではありません。

PHPとRubyを知っています。

「PHPとRubyの両方を知っている」などの文は、どちらか一方の深み、豊かさ、特異性をまだ十分に理解していない可能性があることを示唆しています。

26
John Feminella

1. RailsがRubyでコーディングされているのはなぜですか?

Rubyでプログラミングするという決定がかつてありました。この設計決定は今日まで続きます。

2. PHP Railsクローン、正しくないと感じることについてはどうですか?

それはあなたが持っている感じで、このようなウェスバイで言うのは難しいです。あなたはあなたともっと親密で、あなたの感情についてもっと知っている人や、それらを共有する人に聞いてみたいかもしれません。

3. Railsがやっていること、Railsクローンがやっていないことは何ですか?

Railsの正確なクローンは、定義ごとにRailsが行うすべてのことを行います。そのため、これは、クローンがどのように正確に行われたかに依存します。異なる部分は、異なる動作。たとえば、他の言語への翻訳の場合、他の言語には言語機能がない可能性がありますRails on Rubyが利用している、その結果、デザインが異なり、次に動作が異なります。

6
hakre

RailsがRubyでコーディングされているのはなぜですか?

Rubyはlotメタプログラミングを許可し、その寛容な構文により、メソッド呼び出しのように見えない素敵なAPIを作成できます。

たとえば、RailのオブジェクトリレーショナルマッパーであるActiveRecordは、これらの両方をうまく処理します。まず、Rubyのメタプログラミング機能を使用して、データベースのフィールド名に対応するその場でメソッドを作成します。

次に、ActiveRecordを使用すると、オブジェクトへの関連付けを宣言できます:Person可能性がある_has_many :books_。そのhas_manyは宣言のように見えますが、実際にはメソッド呼び出しです。 (Rubyはこれをhas_many(:books)として読み取ります。

Rubyには、経験豊富なプログラマーの生活をより簡単にすることも目標としています。

Rubyはこれらのことを簡単にするので、人々はそれを行います。他の言語はこれらを難しくします、またはこのような魔法のものは明らかに文化の一部ではありません。 PythonメガフレームワークであるDjangoは、Pythonではそれほど簡単ではないため、メタマジックがはるかに少なく、Python暗黙よりも」(PHPカルチャーまたはその側のWebフレームワークについてはあまり知りません。)

私はこれらがDHHがRubyに夢中になった理由のいくつかだと思います、そして彼はRailsでこれらの言語機能を強力に使用しています。

6
RyanWilcox

レールを使用しないのはなぜですか?

両方のユーザーとして、いくつかの視点を提供します。私はRuby/Railsでプログラムを趣味とし、仕事でPHPのみを使用しています。 (注:私はRuby/Railsを趣味の環境として却下していません。これがまさに私がそれを使用することを選択した方法です。)

多くの人々が、Ruby/RailsをWebサイト開発の聖杯として扱っています。これは、人気のワゴンであり、その「異なる」ためです。多くの点で、確かにPHPを古いものとして却下することは十分ではありません。

SymfonyはRailsのように感じません。PHPはRailsが提供する構文糖の一部を欠いているためです。 PHPはこの点で改善されており、5.3のクロージャーの追加により、私たちの何人がコードを書くかが変わってきました。

誤解しないでください。私はRubyが大好きで、Railsが大好きです。しかし、複雑で高価なウェブサイトのホスティングに対処したくない場合や、パフォーマンスや「最先端」であることを心配したくない場合でも、PHPは今日でも非常に関連性が高く、フレームワークも非常に優れています。

  • Redbeanは、PHPで優れたORM機能を提供します。 Doctrine、Idiorm/Paris、Propelも同様です。
  • Symfony2とCakePHPは、Railsに似た精神の膨張したWeb開発フレームワークを提供します。
  • CodeIgniterは、肥大化のない完全なフレームワークソリューションを提供します。
  • Slimは、シナトラのようなフレームワークを提供します。

PHP Railsクローンが「正しく感じる」と思わないというあなたのほのめかしは誤解です。なぜなら、それらはクローンではなく、Railsと同じではないからです。 PHPソリューションのシンプルさと親しみやすさを理解する。

2
Chris G.