Javaの未来についてブライアンゲッツと話す

2日前、オランダでの会議で、私はJava、Project Coin、同時実行、Fork-Join、およびlambda式の将来についてプレゼンテーションを行ったBrian Goetzと話すことができました。 私は彼に、Oracle、モバイルJavaによるSunの買収について質問し、最近Oracleのプレスにどのような圧力がかかっていますか。 以下は、この興味深い日に私が学んだことの簡単な説明です。



オラクルのシニアJava言語アーキテクトであるBrian Goetzは、Java言語とプラットフォームの開発に取り組んでいます。 近年、Sunが事実上「ゲーム」から脱落したため、大きな進歩は見られませんでしたが、Oracleによる買収に伴い、重大な見通しが概説され、明確なリリース計画が策定されました(ロードマップ)。



最初に、Javaの新しいバージョンは、Java 7とJava 8の2つのリリースに分割されます。Java7は、「ほとんどの部分で既に行われている」多くの要素で構成されます。一生懸命働きます。」 したがって、開発計画は次のとおりです。



Java 7:



呼び出しダイナミック

プロジェクトコイン

ClassLoaderアーキテクチャのアップグレード

URLClassLoaderを閉じるためのメソッド

並行性とコレクションのアップグレード( Fork-Joinを含む)

Unicode 6.0

ローカル改善

NIO 2

TLS 1.2

ECC

JDBC 4.1

半透明のウィンドウ

重量成分/軽量成分の混合

スイング: NimbusJLayer

XMLスタック(JAXP、JAXBおよびJAX-WS)の更新

Java 8:

jvmのモジュール化

プロジェクトラムダ

Java型の注釈

プロジェクトコインパート2

Swing JDatePicker



おおよそのリリース日:Java 7-2011年中頃。 Java 8-2012年のいつか。



1つ重要なもの、つまりモバイルJavaがリストされていません。 スマートフォン向けのJavaでの開発(およびJavaアプリケーションの実行)の複雑さと単一のプラットフォームの欠如に関する私の質問に、ブライアンは、技術の開発にもかかわらず、最も安価な電話はオーバークロックできないため、デスクトップ用の単一のJavaプラットフォームを作成することは困難であると答えましたモバイルデバイス。 理想的には、Java SEとJava MEに違いはなく、同じプラットフォームであり、モバイルでのアプリケーションの起動はデスクトップ(Java Web Startなど)と同じように透過的である必要があります。 オラクルには具体的な計画がまだないので、ブライアンは私に「彼らはそれに取り組んでいる」と言うことができました。 実際、この声明は一見思われるほど否定的ではありません。 ブライアンは、Oracleが情報を配布する方法とSunが情報を配布した方法の違いは重要であると説明しました。 だから、サンは多くのことを約束するのが大好きで、これらの約束のほとんどは決して達成されなかった。 オラクルは、公式計画でまだ発表されていない事項については一切発表しません。 Oracleには、Oracleからの公開情報に基づいて意思決定を行う非常に多くの顧客がいるため、声明には非常に慎重です。



(更新):ブライアンは私にメールを送って、すべてのモバイル機器がJava MEの完全に異なるリリース計画に記載されていることを説明しました。 つまり、少なくとも現時点では、OracleはSEとMEのリリース計画の組み合わせについては考えていません。 これは面倒な迷惑だと思います。最初は、Sunはプラットフォームの統合について話しました(ただし、これは「同じ」約束の1つかもしれませんが)。 はい、私自身はプラットフォームの統一が重要であると考えています。最近のモバイルデバイスとデスクトップは近づいているからです。 この問題の解決に進展がない場合は、主要な原則の1つである「一度書いて、どこからでも開始」が危険にさらされます。 だから、たとえオラクルがこの件について一般の人に話さないとしても、この件について考えていることを願っています。 (/更新)。



ブライアンは映画に登場する小さな天使と小さな悪魔を肩に乗せて古い物語について冗談を言った。 Oracleでは、状況は異なります。片方の肩に小さな天使が、もう片方の肩に小さな弁護士がいます。



しかし、冗談を残しましょう-ブライアンは、オラクルの経営の質に快く感銘を受けたと言いました。 彼は、オラクルのマネージャーは会社を経営する方法を本当に知っている非常に賢い人だと思っていました。 実際、あなたが考えたかもしれないように、文化の間にはそれほど違いはありません。 彼らはスタッフとうまくやり取りしており、ブライアンはN年間で初めて専門家を雇うための予算を持っていました。



Oracleへの圧力について尋ねられたとき、ブライアンは、Oracleがメディアにあまり伝えない(またはまったく伝えない)ことであると私に説明しました。 プレスリリースは慎重に検討されます。 したがって、多くの場合(たとえば、AppleによるJVMの拒否)、メディアは問題に関する1つの観点のみを提供し、Oracleはこれに対応しません。 人々はすべてが悪いと考え、これに商業会社としてのオラクルの適切な評判を追加します。そして、これはニュースサイトの別の批判記事です。 ブライアンは、OracleはJavaに本当に関心があると私に約束しましたが、将来的に焦点を当てて、短期ではなく遠方でお金を稼ぐことに賭けています。 結局のところ、OracleにとってJavaよりも優れているものは何でしょうか。Javaは実際、今では世界で最も人気のあるプログラミング言語の1つです。 長年にわたり、最初の重大な進歩が遂げられました。



1日を通して、ブライアンは並行性、Fork-Jounフレームワーク、そして私にとって最も興味深いと思われるLambdaプロジェクトについていくつかのプレゼンテーションを行いました。 Lambdaプロジェクトは完璧です。 ラムダ式は、SAMタイプに「変換」されます。 SAMタイプのタイプは「単一抽象メソッド」です。つまり、1つのメソッドを持つインターフェイス、または1つの抽象メソッドを持つ抽象クラスです。 その場合、Lambda式はSAMと同じタイプになります。 さらに、たとえば、ActionListener、Comparable、Cloneableなど、SAMが現在使用されている場所であればどこでもLambda式を使用でき、これらすべてを既存のほとんどのAPIと互換性があります。 特に時間がかかりますので、深く掘り下げません。ブライアンがしたように明確に説明しませんが、抵抗することはできません。

//Old-style code: Collections.sort(people, new Comparator() { public int compare(Person x, Person y) { return x.getLastName().compareTo(y.getLastName()); } }); //Lamda expressions & SAM-conversion: Collections.sort(people, #{ Person x, Person y -> x.getLastName().compareTo(y.getLastName()) }); //Better Libraries: Collections.sortBy(people, #{ Person p -> p.getLastName() }); //Type Inference: Collections.sortBy(people, #{ p -> p.getLastName() }); //Method References: Collections.sortBy(people, #Person.getLastName); //Extension Methods: people.sortBy(#Person.getLastName);
      
      





ご覧のとおり、Lambda式に加えて、プログラマがLambda式の最適な使用を実現するために使用できるさまざまな可能性があります。 ラムダ式を使用すると、マルチコアマシンのプログラミングが簡単になります。 この点で、フォーク-ジョインフレームワークは非常に便利です。



SAM変換が素晴らしいアイデアだと言ったとき、ブライアンはこれを提案したJoshua Blochを巧みに指摘しました。



最後に、iPhoneやiPadなどのAppleデバイス上のJavaについて尋ねました。 答えは希望を与えるのと同じくらい神秘的でした。 彼はラリーとスティーブは良い友達だと言いました...



これで終わりです。 ブライアン・ゲッツとのある日、私はあなたに話さなければならない-最初に、OracleがSunを買収することを聞いたとき、私は他の多くの人と同じように恐怖に陥った。 お金だけを気にする大きな悪いボスは、Javaを破壊します。 しかし、時間が経つにつれて、公式の発表と計画が現れ始めたので、私は物事をより積極的に見始めました。 まだ警戒していますが、偏りは少ないです。 次に、JavaOneに関する記事を読んだ後、OracleによるSunの買収がJavaにとっても有益であると考えるようになりました。 そして最後に、ブライアンとの会議の後、私はそれを確信しています。 これはJavaに役立ちます。 最後に、何が起こっているかを本当に知っている人と話をする機会がありました。そして今、OracleがJavaプラットフォームのレベルを維持し、引き上げようとすることを確信しています。




All Articles