Web上のObjective-C:サーバー側のビュー

今回は、サーバー側でObjCの主題に触れました。 残念ながら、その詳細はより少なく、より多くの哲学ですが、誰かがこのエッセイを面白いと思うことを願っています。



そして、サーバー側でObjective-Cを試す​​ことのポイント、それが存在するかどうか、そしてそれがもたらす利点は何ですか。





動作速度の観点から(以下、測定はapacheベンチマークによってのみ確認され、物事の本質を反映しない場合があります)Objective-Cは完全にコンパイルされたC ++コードに遅れをとりますが、Python(Djangoによって表される)およびPHPをバイパスします。 合成テストabのバイパス。キャッシュされていない素材の返品率のみが実際に測定されるため、走行距離は異なる場合があります



一方、Web指向言語(PHP)およびWebフレームワーク(Django、Ruby on Rails)は、典型的なWebベースのタスクを解決するための幅広い組み込み機能を開発者に提供します。 同じDjangoを使用すると、バランスの取れたMVCロジックを考慮して、Webシステムのコードをすばやく作成できます。



他のサーバー環境の側からこの質問を見てみましょう。 OSXサーバーが(ハードウェア上または仮想化された)OSとして機能する場合、多くの既製のソリューションを備えた開発者が開発者の手に渡ります。デスクトップ用のようですが、それらの多くはサーバーアプリケーションに使用できます。 たとえば、 Core Dataを使用してデータとそのデータへのORMアクセスを保存し、他のプロセス(別のコメットサーバー、またはリモートOSXまたはiPhoneOSクライアントなど)で作業するために、 Distributed Objectsを使用できます。



もちろん、サーバー側のOSXを使用するコストは、Linuxでホストするコストよりも桁違いに高くなります。 このプラットフォームで安くて陽気な人は、Cocotronに到達します。 APIのカバレッジはCocoaよりも少ないですが、一般的なアプローチは維持されています。 また、ObjCはCとC ++の両方で適切に動作するため、欠落している場所ではサードパーティライブラリが役立ちます。 Google CTemplateは最終結果の出力に対応し、データへのアクセスはSQLite Persistent Objectsまたはmysql / pgsqlへの直接リンクを介して行われます。 動的ランタイムの魅力はすべて残っています。



少し前に、Objective-Cの典型的なタスクを解決するための基本的なWebフレームワーク作成しようとしました 。 この方向でコードの最初の行を書いてから長い時間が経ちましたが、すでにいくつかの結論を引き出すことができます。



ObjCで簡単なWebシステムを作成するのは (開発者が費やす時間の観点から) 高価です。 動作速度と消費されたOPでのみ顕著な向上が達成されます(たとえば、OpenVZでは、複数のdjangoプロセスとmysqlが一緒にすべてを食べることができるため、OOMを無料で取得できます)。



iPhoneおよびWeb用の一般的なシステムを作成すると、興味深い結果が得られます 。 その後、コードの再利用性が向上し、データ転送および同期タスク(WebシステムとペアリングされたiPhoneアプリケーションなど)を大幅に節約できます。 もちろん、新しいHTML5グッズを使用して、iPhone用のWebアプリケーションを作成できますが、本格的なプログラムには、開発、デバッグ、機能APIのシンプルさという利点があります。



さらに興味深い結果は、サーバーでObjCを使用し、クライアントでCappuccinoリッチアプリケーションを使用した場合です。 利点はほぼ同じです。objjの外観(cppはプリプロセッサといくつかの#defineでうまく機能します)の下でコードを少しだけ組み合わせる必要があります。 同じオブジェクトモデルをサーバーとWebクライアント(および潜在的に-デスクトップクライアント)に保存できます。



いつかChromeOSが使用されるようになり、すべてのデータはクラウドに保存されます。 それまでの間、多くのデスクトップアプリケーションはWebのアプリケーションよりも便利で機能的であり、一部のタスクはWebインターフェイスからデスクトップに簡単に転送できます。 たとえば、いくつかのIPBフォーラムは、ネイティブOSXクライアントを介してモデレートするのが簡単です。ネイティブOSXクライアントは、必要なブランチをすばやく表示し、キーワードで自動モデレートを行い、OPを控えめに消費します。 Tidy、libxml、およびlibxsltはすべてCocoaに搭載されており、最小限のコストでカスタマイズされたデスクトップバージョンのサイトを作成できます。 また、サーバーとクライアントに共通のロジックを使用することは多くの場合に便利であり、サーバー側からObjective-Cを使用することを正当化できます。



All Articles