Javaの世界





最近、HabréでMicrosoftによるApacheのスポンサーについてのトピックがありました。 しかし、作者がトピックを完全に理解していないか、リンクが送信されたニュースリソースのいずれかです。一般的に、MSはApache Webサーバーの開発を後援しているようです。 実際、Microsoftは多くのプロジェクトで構成されるApache Software Foundationを後援しており、 Microsoftブログから知られるように、彼らはWebサーバーだけでなく、後援も使用もしています。



「Apache Wayの強力な承認であり、ASFとの関係に新しい章を開きます。 昨年、Apache POI、Apache Axis2、Jakarta、およびその他のプロジェクトと協力してきましたが、このオープンソースソフトウェアの技術サポートと相互運用性テスト作業を継続します。



残念ながら、Habréには多くのJavaの投稿がないので、この記事ではJavaの世界の多くの重要で興味深いコーナーについてお話しすると同時に、Apache POIとAxis2の神秘的な種類についてお話します。







オープンソース







Apache Software Foundationとの会話を始めたので、続けましょう。 すべてのWeb開発者にとって、Apacheは主にWebサーバーであり、それらの多くにとって、それはWebサーバーにすぎません 。 ただし、Java開発者にお気に入りのASFプロジェクトについて尋ねると、必ずしもApache HTTPDであるとは限りません。 ASFには50以上のトッププロジェクトがあり、それらのほとんどすべてがJavaで記述されています。 たとえば、Microsoftの引用では、Apache POI-OfficeおよびApache Axis2ファイル(Apache Webサービスのサブプロジェクト)を操作するためのライブラリ-SOAP / RESTを操作するためのライブラリについて説明しています...それらはすべてJava開発者向けであるため、Habrの読者が興味を持つ可能性のあるもののみを取り上げます



この話の後、「Apache」という言葉がインド人とWebサーバーだけでなく、あなたに思い出させることを願っています。 一般に、Javaには非常に強力なオープンソースの動きがあります。それは、Apache&Eclipse Sofware Foundations、SourceForgeの(言語の中で)最大数のプロジェクト、Java.net、CodeHaus、および他の多くのプロジェクトです。



基準







「J2MEが世界のすべての電話にどのように浸透したのか」または「Oracle、IBM、SAP、Red HatがJ2EEベースのミドルウェアを提供しているのはなぜですか」と疑問に思った場合、標準はこれに対する答えの1つです質問。 Javaの世界のすべてのコンポーネントは標準化されています。これにより、ベンダーは独自の仮想マシン、アプリケーションサーバー、標準に準拠した場合に相互に互換性のあるライブラリを作成できます。 ここには2つのキーワードがあります。JCP(Java Community Process)、JSR(Java Specification Request)標準の採用を決定するプロセスで、仕様、実装、および標準への準拠を検証する一連のテストで構成されます。



JCPは、多くの場合、多くの批判を投げかけます。時には意思決定の不一致、時には過度の官僚主義が原因です。 ただし、コミュニティは常に標準に準拠しているわけではありませんでした。最近まで、多くの開発者は、J2EE 1.4の代わりにWebスタックTomcat + Spring + Hibernateを使用することを好みました。 JCPが対応し、EJB 3.0の実装はHibernateクローンと呼ばれ、データアクセス標準(JPA)はそれらを組み合わせて、内部のテクノロジーを別のものに置き換えることができます。 Springの作成者は、JEEの次の第6改訂版の主要な参加者です。



JVM



Java Virtual Machine(SunのHotSpotの実装)は、当然別の記事に値します。 JavaプラットフォームをC ++レベルの速度が必要なタスクに適したものにするJVMのアーキテクチャと基本原則については説明しませんが、現在の傾向については詳しく説明します。 おそらく多くの人が、主なものが多言語主義であることに同意するでしょう。 Sunは過去1年間、JRubyとJythonの開発者を雇いました。GoogleはサーバーでRhinoを使用し、JavaScript2(ES4)仕様の公開後の次のバージョンのメインコミッターになります。 APC 次のOpenJDKバージョン7の開発では多くのことが行われ、動的言語のサポートが改善されましたが、PHP / Ruby / Python / JavaScriptでアプリケーションを作成してJVMで実行できるようになりました。 これらの一般的な言語に加えて、GroovyとScalaのJVM専用の言語が2つあります。これらの言語は、動的で機能的なJavaと呼ばれます。 3つの主要なJava IDEの今後のバージョンが上記のすべての言語をサポートすることに注意してください。



個人的にはThe Next Big Languageの登場は期待していませんが、統一されたプラットフォームの登場は期待しています。 開発者はすでに、共通の開発環境であるバージョン管理システムを使用しています。 私の意見の次のステップは、JVM、CLR、Tamarinのさまざまな言語での開発です。



Google Webツールキット



過去10年間の開発の主な傾向は何ですか? そうです-Web。 そして、ユーザーインターフェースで? そして再び-AJAX。 現在のプロジェクトで使用しており、現在非常に満足しています。 まだ最新ではない人のために、GWTはJavaSctiptのJavaコードコンパイラであり、クライアント上でJavaを使用できるようにし(したがって、すべてのJavaベストプラクティス)、Googleからの保証に基づいて非常に高速なJavaScriptコードを生成します。 Googleにはサイト上にかなり優れたドキュメントがありますが、現在の環境にGWTを組み込みたい場合は、最も人気のあるJavaコンポーネントとの統合の例を提供するGWTを使用したPro Web 2.0 Application Developmentの書籍をお勧めします。



キリム







このフレームワークは 、Javaの世界のニュースをフォローしている多くの開発者には馴染みがありません。 開発ブロゴスフィアの最も人気のある爆発の1つは、最近Erlang言語になりました。これにより、アクターモデル上に構築された分散アプリケーションを作成できます。 最近まで、唯一の答えはScala言語のActorsライブラリでしたが、新しい答えはKilimです。 作業のすべての詳細を説明することはほとんどできませんが、開発者のサイトにあるドキュメントを読み、Google Tech Talksで彼のプレゼンテーションを聞くことをお勧めします。



IntelliJ IDEA







DHH(Ruby on Railsの作成者)がかつてインタビューで言ったように:



「Javaをやっていたときに、IntelliJだけが、言語に対する不満で自分自身を殺すことを妨げました。」



IntelliJ IDEAは、おそらくJavaという言葉に関連する私のお気に入りの製品です。 彼は、これがロシアのプログラマーの仕事の結果であるという事実にも誇りを持っています。 その環境でのプログラミングは、ペアリングをやや連想させます。なぜなら、環境は常にあなたの間違いや代替ソリューションを教えてくれるからです。 IDEAを使用すると、Javaの世界のすべてのトレンドを追跡することもできます。たとえば、Groovy&Grailsの本格的なプラグインは現時点でのみです。 また、使用するすべてのコンポーネント(Spring、Hibernate、GWT、Flex、Maven、JUnit)がすぐにサポートされることを奨励しています。 ちなみに、この製品は有料ですが、無料で使用できます。 ヒント:Jetbrainsには、最新のIDEAワークビルドを1か月間ダウンロードして使用できるEAPがあります。 EAPは週に1回リリースされます。 キャッチしましたか? ;)



初めてだと思います メーリングリストで、「Java開発者は自分の小さなJVMの世界に住んでいるので貧しい」というコメントに出会いました。 だから...私は誰もがそのような世界を願っていますが、この記事が誰かに興味があるなら、Javaの世界にはまだ到達していない興味深いコーナーがたくさんあり、次回はそれをしようとします。



All Articles