なぜ PHP は強制収容所なのか
ある日、私は ダンボ を追った
素晴らしい新興企業
上司は、PHP 以外の世界の開発者が一般的に PHP や PHP 関連のコミュニティを軽蔑する理由について雑談しながら話しました。彼の指摘は私にとって心に残りました。その主な理由は、私がこのような意見をこれまで聞いたことがなかったからです。 ほとんどのプログラマーが PHP に関してどのような不満を抱いているかがわからない場合、その不満は次のようになります: しかし、彼が言及した PHP の問題は別の問題です。同氏は、この言語に何か問題があるとは言っていない。この言語は共通の文化現象、つまり通常は言語の作成者によって生み出された文化的伝統に囲まれており、それが現在、いくつかの悪いプログラミング手法の原因になっていると考えている。励ましの役割を果たした。つまり、PHP コードが劣悪になり、保守不能になります。 創設者の哲学的思考を体現し、関連コミュニティから高く評価される言語またはフレームワークという現象は実際に存在します。彼は Ruby とその創設者である Matz を持ち出しました。
例として。 Matz 氏が望んでいたのは、読み書きが容易で、プログラマーの作業効率を向上できる言語でした。 Ruby 開発者が迅速な開発と言語の優雅さについてどのように語っているかわかりませんか? それから DHH
?
そして彼のRailsフレームワーク。そしてグイド
そして彼のPython言語。そこで私はこう考えました:ラスムス
PHPについてはどうでしょうか? ラスムス・レルドルフ氏の感想は非常に興味深いです。彼は PHP 言語のオリジナル バージョンを作成し、言語の改良を続けています。PHP コミュニティでは神のように崇拝されており、PHP のあらゆる面で最大の権威を享受しています。彼は数多くのカンファレンスに招待されています
スピーチをして大手インターネット会社に雇われましょう
、ほとんどの非 PHP プログラマが軽蔑する PHP の多くの問題の顔となったにもかかわらず、彼は皆の尊敬を集めました。 Rasmus は、フレームワークの使用を避け、PHP をテンプレート言語として扱うことを主張しています。彼にとって、このアプローチは直接的な運用効率と拡張性をもたらします (プログラム負荷は既知です)。他の人にとって、このアプローチは手続き型コードのぐつぐつした混乱と保守不可能なプロジェクトをもたらしました。 1995 年に PHP が誕生してから約 10 年間、すべての PHP プロジェクトはこのガイダンスに従って作成されてきました。 同時に、別の問題が突然現れました。PHP5.0 より前の、PHP の初期の頃、PHP は多数の初心者のフォロワーを獲得しました。この言語への参入障壁は驚くほど低く、誰でも自己解凍型の ×AMP Windows プログラム インストール パッケージをダウンロードして、2 ~ 2 分でこの言語を使い始めることができます。さらに、当時は、Web 開発手法における MVC パターンについての本当のコンセンサスはありませんでした。したがって、初心者のグループが、適切な開発慣行が欠けている言語と組み合わせた場合にどのようなものを作成できるかは想像できます。管理不能なゴミの山。そして全体の環境はこんな感じです。 誤解しないでください。当時でも優れた PHP 開発者はまだたくさんいました。しかし、私が言ったように、粗末な新人の仕事はどこにでもあります。カウボーイの PHP プログラマーが集まって、何の指導原則も持たずにプログラムを開発したとき、PHPbb、PHPNuke、および多くの粗雑な .php3 パッケージが登場しました。しかし、単純に PHP 開発者を責めることができるでしょうか?できません!他の Web 言語の巨人である ASP と Perl も同様に悪名が高く、シチュー形式の開発アプローチを推進しています。 これが、PHP がひどい評判を受ける理由です。それは歴史的な広がりによるものです。すでに Python、Ruby、Java に移行していた往年の PHP 開発者のほとんどは、MVC の概念が Web 上に登場したときに、その言語に戻って再考することはありませんでした。さらに、「Ruby 少年」Zed Shaw が一部のプログラマーの精神が「PHP に毒されている」と訴えたような露骨な風刺もいくつかあり、このような発言 は RubyInside で非常に人気があります。
。 PHP は強制収容所です
しかし、Zend や CodeIgniter のようなフレームワークの出現により、言語は正しい開発方向に押し上げられました。実際、それは PHP を Rasmus が望んでいたものとは逆の方向に推し進めました。 Zend フレームワークと CodeIgniter フレームワークを見てみると、これらが十分に文書化され、適切に記述されたコードを備えた数少ないプログラムの 1 つであることがわかります。 Ruby を学ぶほとんどの開発者は、Rails と MVC の知識も学びます。PHP はその前から 10 年間使用されてきました。 Ruby が今回は初心者に自由にプレイする時間を与えてくれないなんて、初心者にとってはくそったれだ。 Rails には既製の標準ガイダンスがあり、その参入障壁は比較的高く、通常、一部の経験の浅い開発者はブロックされます。 実際、PHP アプリケーションは他の言語と同じように作成でき、実行速度の面でも一定の利点があります。 PHP の世界で MVC スタイルの開発手法が台頭してきたのは、近年になってからです。この変更をもたらしてくれた Rails に感謝する必要があることを認めなければなりません。 それでは、今日の PHP はどのようなものでしょうか? さらに、Facebook、Digg、Wikipedia、WordPress、Drupal など、インターネット上のほとんどの影響力のある Web サイトは、バックエンド言語またはツールとして PHP を使用しています。 PHP を徹底的に習得することで、プログラマーにとってさらに未知の領域への扉が開かれると私は信じています。 上記の内容に同意できない場合は、コメントを残すか、私に電子メールを送ってください。そう思わない理由を聞きたいです。 実のところ、私は PHP のファンではなく、この言語に対して何の思い入れもありません。私が主に PHP を使用しているのは、ご想像のとおり、誰かが私にお金を払ってくれるからです。だから、すべてはこれのせいです: ソフトウェア設計において情報に基づいた意思決定を行いたい場合、Web アプリケーションの開発には PHP が最適です。
ところで、次の Web アプリケーションの開発に PHP を使用したいと確信している場合は、CodeIgniter を試してみてください。
。これは、軽量でプレーンな超高速 PHP フレームワークです。私は CodeIgniter のファンです。 ? :)
私も CodeIgniter が好きで、現在学習中です。
言語の欠点を補うことはできないと感じています。フレームワークだけで、私は Python と C# をフォローすることに決めました。どちらも非常に素晴らしく、IronPython と C# は相互に呼び出すことができます。 . C# と Python を組み合わせるとどのようなプロジェクトが可能になりますか? 他のプロジェクトではどのようなことが困難ですか?
それでは、PHP フレームワークのファンの皆さん、終わりはありません。困難に直面しても、いつでも戻るチャンスはあります... PHP より優れたものはありますし、それらはたくさんあります。
symfony フレームワークはあまり良くありません。 Codeigniter はまだ使っていないと感じますが、ZendFramework は Yii と比べるとさらに遅く、設計が過剰なのであまりお勧めできません。もちろん、私は Python と Django に精通していますが、Web サイトを作成するには、まず適切なフレームワークを選択し、時間をかけて学ぶ必要があります。
6階 キシアイ 2011-05-17 私は長年にわたって zend を使用しています。zend の特徴は、パッケージの 1 つに満足できない場合は、そのパッケージを使用しないことです。使いたいものを選択するだけです。
7階 バルド 2011-06-06 私はブロガーの見解に完全には同意できません。主にフレームワークの認識にあります。 PHP に適したフレームワークはありません。ゼンドさん、私はこのウェブサイトでそれを批判しました。 CodeIgniter に関しては、せいぜいおもちゃにすぎません。小規模な企業サイト程度しかできず、それをベースに書き直されたKOHANAも含め、セキュリティや拡張性などにかなり問題がある。
現時点での PHP の最大の悲劇は、良いフレームワークが存在しないことです。定番のものもありますよ。例: log4php。JAVA からコピーされます。 CAKE、RORからコピーされました。悲しいことに、これをコピーする人は PHP にまったく習熟していないということです。したがって、それもゴミです。