PHPとRuby:両方を活用するには?そして、それは価値がありますか?[閉まっている]


8

タイトルからお気づきかもしれませんが、これは「PHPまたはRuby」、または「PHP対Ruby」の質問ではありません。これは、同じビジネスでPHP + Rubyを活用する方法に関する質問です。

私自身はPHP開発者です。その便利さから言語が大好きです。Joomla、Drupal、Wordpress、Symfony2、Doctrine2など、それを取り巻くリソースのエコシステムが特に好きです。しかし、言語自体が少しがっかりすることもあります。 。

OTOH、Rubyは非常に美しい言語のように見え、いくつかの側面で表面的に研究したことから、言語自体としてはPythonよりもスリムであると言えるでしょう。ただし、私が見たところからわかるのは、RoRがノイズを発生させることだけであり、RoRはあまり好きではありません(主にモデルレイヤーのため)。

私は会社の共同最高経営責任者兼CTOとして、テクノロジーの人間的側面に焦点を当て始め、PHPとRubyの両方を使用するのが正気かどうかを確認したいので、自由な発想で考えています。ここにいくつかのランダムな考えがあります:

  • Rubyフォークは一般的にPHPフォークよりもプログラマーに適しているようです(平均値の観点から)。非常に優れた、よく設計されたPHPを作成できるため、前の文は多少ばかげていますが、Rubyプログラマーの文化はPHPの。
  • Rubyについてのことは、迅速な開発に適しているように見えることです。これがRoRにのみ当てはまるかどうかは本当にわかりませんが、モンキーパッチのような特定の慣行があることを知っていますより早く満足する必要があります。
  • マーケティングの観点から(そうです、あなたの会社のためにマーケティングBSを活用する必要がある場合があります)PHPはいくつかの不名誉を持っていますが、Rubyはより良いようです。
  • PHP 5.4はトレイトをもたらし、ミックスインよりも優れています。これにより、PHPは特定のものについてはRubyと同じかそれ以上にリーンになる可能性があります。

今、具体的に、私の質問:

  • PHPプログラマーはRubyを学びたいと思いますか?私は知っていますが、逆に、RubyプログラマーはPHPを学びたいと思いますか?。
  • PHPに適さないRubyには、どのようなプロジェクトや状況が適していますか?
  • Rubyの実際のエコシステムは何ですか?RoRを除いて、他の誇大広告テクノロジー/フレームワークを見たことはありません(RSpecを見たことがありますが、BDDが実際に何で構成されているか、およびその影響についてはまったく知らないことを認めています)。
  • Rubyに最適な特定のタイプのプロジェクトがあるとしたら、それをPHPに移行するほうが良い瞬間があるでしょうか。PHPが多くのことを処理できることは知っていますが、Rubyにはスケーリング時に制限があることを読んだことがあります(またはRoRですか、それともその両方に当てはまりますか?)。
  • 最後に、そして最も重要なこととして、プロジェクトを2つの言語で維持することは正気でしょうか、それとも単に愚かです。先ほど述べたように、Rubyは短期的にはリーンであり、それがプロジェクトを実現し成功させる可能性があるように見えますが、長期的にはそれについてはよくわかりません。

私は主に、言語の長所と短所(できれば両方)と実際のRubyのエコシステム、つまりPHPのエコシステムから引用したようなフレームワークとアプリケーションをよく理解している人々からの洞察を探しています。

回答:


7

私の回答を読んでいる間、私のPHPの経験(> 10年)は、私のRubyの経験(数週間遊んだ、まだライブプロジェクトがない)よりもはるかに高いことに注意してください。

PHPプログラマーはRubyを学びたいと思いますか?

個人的には、Web開発用のよりクリーンな言語(特にマルチバイト文字列の認識に関して)とサーバーサイドスクリプト(私のOSX bashスクリプトが私の上で実行されると常に少しか2つあるように見える)を探しながらRubyに来ましたFreeBSDサーバー)。

試す前に、Lisp、Perl、Python、Node.jsをいじっていました。適切なエディターの欠如(emacsか何もない、復讐でemacsを憎む)、Webアプリの構築における奇妙さ(ツールはあるが、使用するのは自然ではない)と、Lispをやめました。時折quirkiness(私は、あなたを見ているcarcdrcons)。マルチバイト文字列の認識に関しては、PerlをPHPと同じぐらい悪臭を放ちました。私はPythonがあまり好きではありませんでした(それは単なる好みの問題です。正当な理由はまったくありません)。そして、約束しながら、私はNode.jsを若すぎて過度に過大なものとしてストロークしました。(私もErlangを検討しましたが、チュートリアルを超えたことはありません。)

逆に、RubyプログラマーはPHPを学びたいのでしょうか。

(...)最後に、そして最も重要なこととして、プロジェクトを2つの言語で維持することは正気でしょうか?

私はここで自分のために話すことができるだけですが、Rubyで遊ぶほど、PHPコードを読み書きするたびに意地悪を感じるようになります。

PHPに適さないRubyには、どのようなプロジェクトや状況が適していますか?

1つは、UTF-8文字列の処理に関連するもので、間違いなくWeb関連のすべてが含まれます。PHPにはmb_*関数があります。そしてIntlクラス; および関数の/u修飾子preg_*。そして... PostgreSQLジャンキーとして、私は当然ながらUTF-8処理を行うようになりました。これは、特にライブラリに関しては、大文字と小文字や照合などのロケール固有の問題を超えて、心配したくない種類のことです。

(ところで、Rubyはこの点で完全に完璧というわけではありません。Python は少し優れています。しかし、私はミックスインを使いたいと思っています。15年間のコーディングで、データベース以外の非ASCII文字列をソートする必要はほとんどありませんでした。または、URIに変換するビットや断片を文字変換するだけでなく、ケースハンドルを使用します。)

シェルスクリプトは別です。PHPもこの種のものに使用できますが、言語の不整合と乱雑さにより、PHPはあまり快適ではなくなります。

Rubyの実際のエコシステムは何ですか?RoRを除いて、他の誇大広告テクノロジー/フレームワークを見たことはありません(RSpecを見たことがありますが、BDDが実際に何で構成されているか、およびその影響についてはまったく知らないことを認めています)。

実際には、Rails以外にもいくつかのフレームワークがあります。Merb、Camping、Ramaze、Sinatraなどです。RoRが早い段階で多くの誇大宣伝を得ただけです。

Rubyにはスケーリングの際に制限があることを読んだことがあります(またはRoRですか、それともその両方に当てはまりますか?)。

PHPも同様です。:-)

個人的には、Rubyのバローニーだと思います。スケーリングするときは、どの言語でも、ボトルネックを調べて1つずつ作業します。そこから、垂直方向と水平方向にスケーリングします。

必要に応じてペットの言語を置き換えます(たとえば、PHPやRubyでチャットサーバーや高性能の金融サービスを実行しません)。しかし全体として、私の経験では、言語がどれほど遅くても、スケーリングは問題の核心ではありません-アーキテクチャはそうです。(言語が問題の中心にあった場合、サイトは主にC、C ++、C#、Java、Lisp、Erlangなどで記述されます。後者はそれぞれ、PHPおよびRubyよりも1桁または2桁優れています。)

RoRについては、私には言えません。私はそれを表面的に調べただけです。RoRがグラフィックデザイナーやCSの学生を満足させる理由や方法については十分理解しています。それは私がデータベース開発者として当たり前に思うようになったすべてのものを侮辱しました。

しかし、私は後にZed Shaw(Ruby Webサーバーを作成した人)の長い怒りにぶつかりました。とりわけ、彼は自分のプロダクションサーバーを平均4分以上実行し続けることができないため、Railsの作成者あざけりました。(これはその後改善されました。)


Rubyの基本を学んだ後、PHPが吐き気と嘔吐を引き起こすことに同意します。Railsに関しては、Active RecordのすべてのポイントはORMであり、データベース設計に精通していない開発者に、ほとんどのトラブルを回避しながら基本的なデータベースのことを行わせることです。睡眠中にSQLを記述できる場合、Active Recordは非常に制約を受け、おそらく「つまらない」と感じるでしょう。しかし、悪いコードを書くよりも良いコードを書くことをより簡単にするために、またはさらに悪いことに、セキュリティホールのあるコードのために、それは価値があると思います。
マイケルハンプトン

2

率直に言って、あなたの質問は私には不明瞭に思われますが、それでも私はそれらに答えようとします。

PHPプログラマーはRubyを学びたいと思いますか?私は知っていますが、逆に、RubyプログラマーはPHPを学びたいと思いますか?。

問題はありませんが、この質問には答えられません。それは実際にはあまりにも多くの要因に依存しており、その多くはプログラマーの個性に関係しています。簡単な答え:もちろん、なぜですか?これは、ウェブサイトを構築するためのもう1つのツールです。

PHPに適さないRubyには、どのようなプロジェクトや状況が適していますか?

プロジェクトに関しては、どちらも同じように適切です(私がよく覚えている場合、ルビーの実行速度は遅くなりますが、これは、AFAIK以来、塩を少し入れてしまうためです)。特定のフレームワークを使用する予定がある場合、または2つの言語のいずれかでより多くの経験を積んでいるチームでチームを構成している場合は、どちらか一方の方が適しています。特定の言語に「理想的」である決定されたタイプのプロジェクトは本当にないと思います。それは実際には、各プロジェクトの詳細に要約されます(それでも、違いはわずかです)。

Rubyの実際のエコシステムは何ですか?RoRを除いて、私は他の宣伝されたテクノロジー/フレームワークを見たことがありません。

Ruby on RailsはRubyの成功の大きな部分を占めています。Rubyは、RoRが公開されるまで不明な言語のままでした。Ruby上に構築された興味深いプロジェクトはたくさんありますが、成功とコミュニティによる受け入れという点で近づいているものはありません。RoRの上に構築されたCMSがよく知られています。LessによるLovd。

Rubyに理想的な特定のタイプのプロジェクトがあるとしたら、それをPHPに移行するほうが良い瞬間があるでしょうか。

私が想像できる唯一のケースは、Rubyでプロトタイピングした直後であり、PHPがより高速な開発に貢献できると感じている場合です。しかし、プロジェクトが開始されたら、どのように「それをPHPに移動」するつもりですか?書かれたすべてのコードを移植しますか?

最後に、そして最も重要なこととして、プロジェクトを2つの言語で維持することは正気でしょうか

バズーカを頭に向けていない場合は、絶対にしないでください。
2つの異なる言語で2つの完全に異なるプロジェクトを維持するつもりなら、絶対に。同じ言語で長期間行くことはないと思います。たとえば、私は常に言語から言語へとホッピングしています。私はほんの少ししか習得しませんが、(今まで)状況から抜け出すのに十分なほど他の人を知っています。私はフリーランサーですので、企業で働く人々は異なる経験をするかもしれません。しかし、私の主張は、さまざまな言語でさまざまなプロジェクトを維持することは簡単(十分)で楽しいことです。


2
私は最近、stackxchangeがASP.NET MVCに基づいて構築されていることを読みました。それはあなたの投稿にとってジャーメインだというわけではありませんが、私はそれを言及したいと思いました。
なくた

あなたが正しい、私はそれを修正するために私の投稿を編集します。
Xananax

+ 1「バズーカを頭に向けていない場合は、絶対にしないでください。」同じプロジェクトで言語を混在させると問題が発生します。プロジェクトのすべてのメンテナーが両方を理解する必要があるためです。また、両方の言語で十分に優れた開発者を見つけるのは困難です。もちろん、すべての部分(たとえば、バックエンドとフロントエンド)の間に明確な分離がある場合、それは言い訳になる可能性があります。しかし、それは通話の問題のようなものです。
CarlosCampderrós、2011年

私は両方の言語で単一のプロジェクトを意味するのではなく、PHPとRubyのいくつかのプロジェクトを持っています。
dukeofgaming 2011年

私の悪い。あなたの質問が不明確であるか、私が取り組んでいたものの影響を受けていたかどうかはわかりません(jsのプレビュー付きのphpのマークアップエンジン-stackxchangeとまったく同じです)結果)。もちろん、さまざまな言語でさまざまなプロジェクトを実施するつもりなら、もちろんです。しばらく使用していない言語を選択するには、常に数日は必要ですが、すぐに戻ってきます。
Xananax 2011年


0

読んでいるとき、私はRuby on Rails開発者であり、そのエコシステムからの回答であることを覚えておいてください。私の見解はその方向に傾くでしょう。

PHPプログラマーはRubyを学びたいと思いますか?私は知っていますが、逆に、RubyプログラマーはPHPを学びたいですか?

ほとんどの場合、絶対にそうではありません。PHPが好きではない(嫌いですが、使用しています)だけでなく、ツールセットには根本的な理想的な違いがあるためです。Rubyの世界では、rakeやrspecなど、TDDの一部を支援するツールがたくさんあります。ほとんどのruby(そしてもちろんRails)では、チュートリアルのテストが最初に行われます。PHPでこれを実行できないと言っているのではなく、規約が異なるだけです。また、2つの言語間の従来の違いは、一般に、直接対立しています。

PHPに適さないRubyには、どのようなプロジェクトや状況が適していますか?

デスクトップアプリケーション、シェルスクリプト、MVCアプリ(再びレール)、および小さなコンソールアプリケーション。これらのどれもphpでは実行できないということではなく、Rubyのサポートが向上しているだけです。Rails(申し訳ありません)アプリを書くとき、私はルビーで1つのオフスクリプトを書くことがよくあります。これにより、配置スクリプトまたはセットアップスクリプトをアプリケーションと同じ言語で使用できるようになります。PHPでは、PHPでシェルスクリプトを作成することすらありません。私はbashだけを使用します。私はRuby QTアプリ、MVCアプリ(Railsとそうでないものの両方)とrubyを書いており、それらを取り巻くライブラリは、これらの場合に「よりよく機能する」だけです。

Rubyの実際のエコシステムは何ですか?RoRを除いて、他の誇大広告テクノロジー/フレームワークを見たことはありません(RSpecを見たことがありますが、BDDが実際に何で構成されているか、およびその影響についてはまったく知らないことを認めています)。

これは一種の誤解です。RoRはうまく機能するので人気がありますが、コアでrubyを使用する他のツールセット/スタックがあるかもしれません。すでに代替案があるスペースに進入しているため、人気は低くなっています。Rubyで簡単なGUIアプリケーションを書くのが好きです。しかし、python、C#、VB、LISPなどはすでにこれを行うことができます。RoRはゲームチェンジャーでした。したがって、それは人気があります。PHPについても同じことが言え、人気のあるPHPフレームワークと呼ばれています。いくつかありますが、リストから製品(ワードプレスなど)を削除してください。

Rubyに理想的な特定のタイプのプロジェクトがあるとしたら、それをPHPに移行するほうが良い瞬間があるでしょうか。私はPHPが多くのものを処理できることを知っていますが、Rubyにはスケーリング時に制限があることを読んだことがあります(または、RoRですか、それとも両方のバローニーですか?)

これはトリッキーな質問です。あなたは尋ねなければなりません、私のプロジェクトにとってどの言語がより良いですか?Railsでブログを書くことはありません。これは標準のチュートリアルの例ですが、ブログが必要な場合は、ワードプレスが適切なツールです。ここでも同じことが言えます。言語をルビから切り替える必要があるという確かな例に出くわした場合、直面する技術的な制限により、PHPも除外されます。

最後に、そして最も重要なこととして、プロジェクトを2つの言語で維持することは正気でしょうか、それとも単に愚かです。先ほど述べたように、Rubyは短期的にはリーンであり、それがプロジェクトを実現し成功させる可能性があるように見えますが、長期的にはそれについてはよくわかりません。

Rubyは長期的には素晴らしいです。長期的な成功の最大の難関は言語ではなく開発者です。2つの言語の維持に関しては、プロジェクトの定義方法によって異なります。Railsで重いアプリケーションを使用しているプロジェクトがいくつかあり、ブログまたは販売サイトでwordpress / dupral / some phpを使用しています。私はそれらを別々のプロジェクトと考えています。最終的にサポートする言語が増えるほど、すべての言語で優れた優れた開発者を見つけることが難しくなります。たとえば、私はワードプレスを使用して推奨していますが、PHPでRoRにいるほど「良い」とは言えません。クライアントがPHPのコア製品の半分とRoRの半分を本当に望んでいる場合、私は本当に理由を理解する必要があり、その答えによっては作業を断る可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.