神話やJavaを人間の顔で叫ぶ

ここでHabréを読んだ後、このトピックについて短いメモを書くことにしました。これは、新しいデスクトップアプリケーション用の開発言語の選択に関する議論です。 うらやましい不変の状態で、視覚的にJavaアプリケーションが不器用に見える瞬間が言及されました。 そこで、この問題を明確にすることを少し決めました。



それでは、Javaでのデスクトップアプリケーションの実装の特性は何ですか。なぜそれらは非常に美しいのでしょうか。 また、Java GUIの劣等神話はどこから来たのでしょうか(一部の高貴な人格は「悲惨さ」という言葉を使用することさえあります)、以下を読んでください。 私は微妙なことをせず、コードを書かないようにし、実際にJavaの世界に固有の知識を使わないようにしました。 この技術から遠く離れた人々にこのメモを理解してもらいたい。



ほとんどの博学なプログラマーはそれを知っています... Javaアプリケーションは、可能な限りクロスプラットフォームである必要があります。 また、原則として、彼らの最も博識な人は、異なるオペレーティングシステムの外観標準がわずかに異なることを知っています。 したがって、疑問が生じますが、美しさという意味でアプリケーションが美しく見えることを実際に達成する方法は、特定のオペレーティングシステムのユーザーがどのように評価するのに使用されるのでしょうか?



そして、ここに方法があります。 どうやら、Winampが何であるかを知っていると言っても、私は誤解しないでしょう。 そして、おそらく彼は肌が何であるかを知っています。 私たちは皆、このプログラムの「スキン」を変更すると、このプログラムがまったく異なるように見えるという事実に慣れています。 もちろん、他の多くのプログラムにもこの機能があります。 そして今、私たちのba ...私たちのJavaに戻ります。 Javaデスクトップアプリケーションの開発に使用され、プラットフォームに標準で付属している主なソフトウェアフレームワークはSwingです(ハザードは黙っています!)。 このフレームワークは、一般的にOOPアプリケーションの設計の良い例ですが、現在、その機能のうち2つだけに興味があります。



機能番号1-アプリケーションで表示されるすべての視覚要素は、システムの最も基本的なグラフィックプリミティブを使用して、このフレームワークによってのみ直接描画されます。



機能番号2-すべてのこの描画mutoten、慎重にきちんと、明確に仮定され、オープンなインターフェイスを持つ別のレイヤーに配置されます。 このレイヤーは、インテリジェントな方法で、ルックアンドフィールと呼ばれます。 そして、ここでは、「明確に想定されたオープンインターフェース」という言葉に特別な注意を払うようお願いします。 これは人生で何を意味しますか? しかし、人生において、これは、この素晴らしいJava言語を知っているすべての開発者が好みに合わせて実装できる一種の「ソフトウェアスキン」(スキン)を持っていることを意味します。 Windowsロゴが内側にジャンプする丸い半透明のボタン? 問題ありません!



しかし、それだけではありません。 主なことは、これらの同じルックアンドフィールの市場が長い間登場していることです。 つまり、美の本質に対する個人的な理解の観点から、これらのルックアンドフィールを熱狂的に描き始めた愛好家の大規模なコドラがあります。



もちろん、ウォームアップするために、最初に、Outlook(すべてのバージョンを見つけることができます)、Windows XP、Unixの世界の有名なインターフェイスの外観と動作を作るピールがありました。 正しく理解しているように、JavaプログラムにApple OSのようなアプリケーションの外観を与えるLook&Feelが長い間ありました。 インターフェイス要素にアクセスするための標準キーの作業を含みます。

標準Javaライブラリパッケージには、いくつかの異なるルックアンドフィールの実装があります。 インターネットにアクセスできる人は、たとえば次のような良いサンプルを見つけることができます。



www.jidesoft.com



またはここ:



www.incors.com/lookandfeel

www.javasoft.de/jsf/public/products/synthetica/themes



ご理解のとおり、これはすべて次のことも意味します。Swingを使用して記述されたJavaプログラムは、あらゆるオペレーティング環境でまったく同じように見える想像可能なビジュアルインターフェースを持つことができます。 一方、どのプログラムにも、操作中にメニューから直接切り替えることができるいくつかのビジュアルインターフェイスが付属しています。 そして、これらの美しいインターフェースは長い間あなたのために行われ、無料で配布されています。 または有料で配る。 これらは無料のものよりも優れている場合があります。 常にではありませんが。 また、これらすべての視覚コンポーネントが1つの共通の祖先から継承されていることも明らかであるため、それに依存して、描画され、自分の好きな方法で動作する独自の視覚コンポーネントを思い付くことができます。 上記のすべてを考慮し(実際に私が検証しました)、Javaがいという声明は、おそらく(顧客の存在下で)Java Windows XP Look&FellをネイティブWindows XPと区別できなかったマイクロソフトウェアの仕事です。 別の説明を見つけるのは難しいです。 :-)



ここでは、どうやら、麻酔薬が私に反対しますが、この美しさがすべて描かれるのは非常に長い間ではないので、すべてのピクセルをJavaで描く必要があることがわかりますか? そして、彼らは部分的に正しいでしょう。 これは確かに数ミリ秒長くなります。 麻酔薬の場合、Javaの世界では、異なるアプローチと異なるフレームワークがあります。 SWT(Standard Widget Toolkit)と呼ばれます。 もちろん、オープンで無料です。 まあ、それは明らかです。



このフレームワークは他の原則に基づいています。 アプリケーションが起動されるコンテキストで、オペレーティング環境のグラフィック要素を最大限に活用します。 それらは、可能であれば、動作環境自体によって描画され、この環境では慣例のように見えます。 つまり、ボタンです。アプリケーションが起動されたシステムのユーザーがそれを見るために使用されるボタンはどこにでもあります。 すべてが少し速く描画されます。 より標準的に見えます。



誰もが自分に近いものを選択します。 しかし... ...インターフェース速度に関して、2つの良い例があります。 これらは、これまでで最も人気のあるJava IDEです。 率直に言って、これらは非常に強力なIDEです。 おそらく、ソフトウェア開発の世界で現在地球上に存在する最も強力なIDE。 IntelliJ IDEAおよびEclipse。 最初はSwingで、2番目はSWTで書かれています。 仕事の速度に大きな違いはありませんでした(そこに何があるのでしょうか?)。 さらに、よく知られている別の開発環境があります-Visual Studio、あなたは誰から(穏やかに、これはA. Lebedevではありません)、あなた自身があなたが何を知っているかを書いています。 そのため、主観的に評価することも、何らかの理由で主観的に評価するのが速くなりません。 まあ、そのようなこと。 :-)



そして今、悲惨さの神話がどこから来たかについてのいくつかの言葉。 私が思うように。 Swingの「Hello World」レベルの標準的な例は、何らかの環境で何らかの方法で実行できるように作成されています。 どういうわけか...テキストを表示するためにTahomaフォントを配置する人はいません。 通常、どのシステムでも3〜4個のフォントが利用できます。 そして今、この不名誉は灰色の、のボタンから始まり、...、それは動作します。 どこでも! しかし、スパルタンではエレガントでシンプルです。 開発者はこれをすべて見て、カブをひっかき、評決を出します-たわごと...(取り消し線)これはあなたのJavaの良いGUIではありません。 以上、stopudovoで終わりました。 そして、Habréキャンペーンでは、このJavaがあまり良くないという点を(取り消し線で)言います。 まあ、ドキュメントのこのルックアンドフィールインターフェースについて同じナンセンスを読まないでください。 他にも十分な心配があります。 :-)



All Articles