プログラミング言語とそれらのフレームワークの比較

画像 確かに多くの人が質問に苦しめられました-彼が彼らの仕事のためにどの言語とフレームワークを選ぶべきか。 この問題についても考えたので、テストの結果を記事で説明します。



私は数年前からWeb開発者であり、Web開発環境の開発を常に監視しています。

私の専門的な活動の過程で、私は多くのテクノロジー、言語、ライブラリ、フレームワークなどに精通することができました。



「自分のためだけに永続的な仕事をするために何を選ぶべきか(どの言語、どのフレームワーク)?」という質問を定期的に自問しました。 しかし、彼は驚きました、なぜなら 必要な情報が見つかりませんでした。 すべての記事は、すべての言語とフレームワークが特に個々のタスクに適しているため、勝者が誰であるかは言えません。 答えを知りたいなら、すべてを試して、自分で決めてください。



私は最後の声明に完全に同意しますが、単純な主観的な答えは必要なかったでしょう、数字が欲しかったのです。 次に、プログラミング言語、フレームワーク、およびそれらの通常の機能を比較するための一連のタスクを思い付きました。 なぜなら 私はPHPで仕事をしています。まず、この特定の言語のフレームワークの選択から始めました。 テスト済み:Yii2、Laravel5。 彼らは奪われた、なぜなら 最も人気のあるPHPフレームワークです(はい、Symfony、私もあなたのことを覚えています)。



他の言語(およびフレームワーク)からJS(NodeJS + SailsJS)およびRuby(Rails)が採用されました。 また、ある程度の知人もいました。



これらの言語/フレームワークが採用された理由をすぐに説明します。



私の主な目標は、私のものと私が働いている会社の両方の将来のプロジェクトの開発のための技術の選択です。 もちろん、数字で主観的な評価を指定することはできないため、結果の表には定量的な指標のみが表示されます。 一般に、phpとruby +は、上記のフレームワークにほぼ同程度に便利であるという結論に達しました。 しかし、nodejsでの開発は、私にとってそれほど便利で、高速で、クールではありませんでした。



したがって、言語の特定のタスクのパフォーマンステスト:







最初のテストは、反復回数= 100000000のPi番号の生成です。

次は、マンデルブロ集合を生成するためのテストです。

後-言語自体を使用して指数を生成し、その言語で利用可能な追加のライブラリを使用します。



実際、結果はそれほど驚くことではありませんでした-nodeJSは自信を持って残りの部分を先取りしています。



PHP7には非常に満足しています。バージョン7のパフォーマンスの向上は、5.6と比較して非常によく感じられます。 しかし、なぜlibsで指数を生成するテストの結果がそのような結果を与えたのか-私はまだよくわかりません。



次のフレームワークがテストされました。







このテストは非常に単純で、単純なサイトでは一般的です。データベースから情報を取得し、レンダリングのためにビューに送信して、バッファに出力します。



この場合、Mysqlの3,000行がデータベースの10,000行から取得され、ページネーションが構築されます。



ここで、正直に言うと、SailsJSは驚きました。 私は彼が彼のすべての競争相手を活発に捧げることを期待しました。 そして彼は彼がしたことをしなかったが、Laravelにも負けた。



キャッシュなしですべてがテストされました。 キャッシュが有効になっている場合、データはもちろん若干異なりますが、状況は変わりません。



おわりに



速度と利便性のために、引き続き言語とフレームワークをテストします。 この段階では、ユーザビリティ/開発速度とアプリケーション速度に最も近いものであり、私にとってコード編成はLaravelです。



私のリポジトリへのコメント、コメント、プルリクエスト大歓迎です。



All Articles