Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。Microsystemsはちょっとしたファンファーレと共に、よりダイナミックな"生きた"Webページを作成するのに使える、新しいプログラミング言語と環境を発表しました。現在ではもちろんJavaプログラミング言語はユビキタスなツールです。このストーリーはまだ終わっていません。Processを通じて成長、拡大を続けています。6年前、Microsoftは盛大なファンファーレと共に、プログラミングが必要な全てのシチュエーションにおいて使える新しいプログラミング言語のセットと環境を発表しました。Basic)に対して大きな変更を行いました。Basic共に)、ディレクトリサービス、マネジメント(WMI)等々です。このストーリーはまだ終わっていません。3.0)で複数の新しいテクノロジーの搭載を計画していますし、コミュニティも急速に成長しており、.NET環境はオープンソース、商用問わず、新しいプロジェクトやアイデアとともに拡大していきます。数年の間、これらの環境それぞれについて多くの議論がありました。その多くはどちらか一方にとって非常に怒りを掻き立てられるようなものであり、そしてそのほとんどは無益なものでした。結局のところ、"こちらの言語はあなたの言語より優れている"とか、"こちらのプラットフォームはあなたのプラットフォームより速く動作する"とか、"お前ら最低だ"などのやりとりは、カクテルパーティやカンファレンスのパネルディスカッションなどで話し合われる分には楽しいのかもしれませんが、それらはソフトウェア開発を意義あるものにするための生産的な議論ではありません。政争、駆け引き、傷付け合いが一通り済んだ後、Javaと.NETが協調する事について意義のある議論をしようとすると、たいてい議論の方向性は"Webサービス"、"エンタープライズサービスバス(ESB)"、"サービス指向アーキテクチャ(SOA)"といった、ほとんどは具体的なものが見えない、非常に上流のバズワードの議論に終始することになります。その後上流の議論が一通り済んで、実装レベルに踏み込んだなら、SOAP、WSDL、WS-プロトコルだとか、メッセージを介してデータを交換するだとか、CLR内でJVMをホスティングするだとか、その逆だとか、そういう会話になるのが典型的です。関連スポンサーコンテンツ一般的なフレーズに言い換えれば、"あなたは、どうやるか、について論じ、進めてきた。それをすべきか、について論じることも無く。"といったところです。歴史的に、Java/.NET間の相互運用性についての議論は、.NETとJavaのシステムのどちらも持ち、対話させることが必要な特定の企業においてのみ発生する、"必要なときのみ"の相互運用性という見出しの元でしか行われてこず、アーキテクチャの話題の二の次とされていました。それらの議論から抜け落ちているものがあります。それは、開発者には「必要だから」という場合でなくともJavaと.NETをともに動作させたい場合があり、その動機についての議論です。一見して、これは危険な話題です。あるプラットフォームが他方よりも何かしら"優れている"などの示唆に富む意見は、他方のプラットフォームで"○○が不可能だ"なんてうっかりほのめかして完全に怒らせるというよりはましなものの、えこひいきだとか、無知だとの非難を招く恐れがあります(これでは、そもそも"優れている"の意味するところを理解するという、基本的な問題さえ無視されてしまいます)。した意見を軽視したり敬遠しようとしたりするくらいなら、むしろ正面から向かい合って見ましょう。した非難、批判は、無視すべきものではなく、実際、そうした意見がどこから来るのか、と言ったより大きな議論の一部として、喜んで受け入れるべきなのです。言っても、開かれた議論を行うこと、アイデアを検証すること、読者が自身の(批判的な)意見を持つのを許すことは依然として重要です。Java/.NETの相互運用性について語る記事シリーズ第一弾として、我々が本当にやろうとしていることはそういうことです。*Javaと.NET両方についてよく考えるとき、より検討に値するいくつかのシナリオが思いつきます。Officeは、コンピュータの歴史上一番とまでは言いませんが、(より多くのコンピュータにインストールされているという意味で)人気のあるソフトウェアプラットフォームのうちの一つです。Officeは現在では登場してから10年を過ぎ、ユーザが多種多様なデータを入力し、操り、閲覧することのできる、パワフルなプラットフォームの代表格です。したユーザにとって興味深い、膨大な量のデータが、現在J2EEで構築されたエンタープライズサーバ内に存在しています。それらのデータをOfficeプラットフォームに取り込んで簡単に操作し、分析できるとすれば、素晴らしいことです。面白い方法としては、既にSpringやその他の軽量Javaコンテナで書かれているビジネスロジックを、プロセスのコミュニケーションツールを用いて、Officeプラットフォームから利用するというものがあります。Platform)"という記事中の図で、Officeプラットフォームの持つ能力が全て一覧にされています。その完全な一覧をまたここで繰り返し載せるのではなく、Officeの拡張性のうちJavaプラットフォームとうまく協調する点をいくつか整理してみましょう。外部オートメーション。(VSTO)のおかげで、Word、Excel、Outlookなどのコンポーネントのうち多くが外部公開用APIにより動作します。そのため、汎用的なプログラミング言語を用いてそれらのドキュメントを生成することができます。Excelのパワフルな図表作成機能や計算能力、もしくはWordの編集機能やスペルチェック機能は、これら2つがホストされている環境であればJavaアプリケーションからも利用できるというのは非常に魅力的です。Windowsマシン上であれば単体でもWordのドキュメントを作成することができます。これは、ユーザがWordドキュメントを書くのではなく、見るほうが主な用途であるという場合には非常にパワフルです。WebアプリケーションはWordドキュメントを作成し、HTMLよりもリッチなフォーマットを用いて、HTTPを介してWebにそれを公開できます。Officeは"アドイン"をホスティングすることもできます。アドインとは、"プラグイン"してOffice内部で実行されるソフトウェアコンポーネントのことで、通常はメニューバーやコンテキストメニューから利用されます。hostingなど)、バリデーションやデータの検索、保存などのため、Javaのビジネスコンポーネントと関わります。Bean内のJavaコネクタを介してアクセスするのが非常に簡単でした。Excelのユーザ定義関数。Excelは長らく、自身の計算エンジン内でユーザ定義関数を"呼び出す"という機能を持っています。それらは歴史上の理由から、アンマネージドな(生のC++)コードで記述する必要があり、アプリケーションを非常に不安定にしてしまいます。作成するなら、Excelは、多くのユーザを幸せにするような"オンライン"体験を兼ね備えることになるでしょう。これは、Microsoftによって名づけられた、ユーザがドキュメント内で次に行いそうな事柄をドロップダウン形式の小さなボックスによって表示する機能のことです。Wordがミスタイプと判断してオートコレクトしてくれましたが、それが本当はミスではない場合に、訂正された単語の上にマウスを重ねるとスマートタグが出現します。ユーザはドロップリストの中から動作を選択することにより、行われた訂正を"アンドゥ"することができます。スマートタグはアドインによる入力形式であり、クライアントとエンタープライズサーバの間のギャップを橋渡しするための視覚的な補助として、ユーザを助けるために利用できます。Officeはまた、こうしたプログラマティックな要素により書かれ/配布されたコンポーネントやドキュメントに対して、配布を楽にするいくつかのサポートも提供しています。多くのケースにおいて、こういったコンポーネントの機能をアップデートし配布する場合も、共有のダウンロードサーバに何かを置いてリリースするのと同じくらい簡単です。明らかに、こうした利用法はOfficeのライセンスコストが悩みの種になりそうですが、しかし幸運なことに、ほとんどのビジネス環境にはすでにOfficeがインストールされているので、全く、とは言わないまでもコストの大幅な削減にはなります。Vistaに搭載されています。開発者以外の人間が作成したり、見たり、追跡したり、編集したりする手段を提供することを目的としています。ワークフローはプロセスの論理的なステップを表す複数のアクティビティからなり、ワークフローの開発者(従来は.NET開発者、もしくはドメインエキスパート)はそのデザインを行うためにフローチャートに似た環境を用います。Studio内で利用できるのですが、カスタムアプリケーション内で利用することもできるため、企業はこれらの環境を従来の"プログラマのための"ツールセットから切り離して、ワークフローデザイナーを置く事ができます。ワークフローデザインの結果生成された、XMLフォーマットもしくはプログラムコードによる成果物は、ワークフローコンパイラによって通常の.NETクラスにコンパイルされます。ASP.NET、コンソールアプリケーション、もしくはGUIアプリケーションを含む様々な環境の上で動作します。ワークフローはシーケンシャルに、もしくは外部のステートが変化したときに、時には長い時間をかけて動作します。なると、答えはリモートコールとなります。後者の場合は、エンドユーザは直感的に利用できる環境を使用してビジネスプロセスのデザインを行え、しかも従来からあるエンタープライズサーバの世界でそれを動作させることができます。同様に、ワークフローの愛好家は既に、ASP.NETアプリケーション内でWEBページのナビゲーションを構成するためのワークフローの使用方法(Strutsのアクションマッピングファイルとは全く異なる)について述べています。ワークフローをサーブレットコンテナ内で動作させるには同様のアプローチが必要になるでしょう。サーブレット/JSPページの間のフローを視覚化しますが、現在のところはXMLのシンタックスによる判りにくいものになるでしょう。FoundationテクノロジーをリッチでパワフルなUIとして、豊富かつパワフルなJavaサービス(Spring、EJB、ほかいろいろな組み合わせ)が提供するデータモデルの上で使用するという方法です。XAMLをベースとした、WPFの宣言的プログラミングモデルは、つい最近まで行われてきたコードベースのUIプログラミングモデルとは全く対照的で、多くの場合、現在のSwingやSWTよりも複雑なユーザインターフェースの作成をするのが簡単です。XAMLはテキストベースのフォーマットがゆえに、現在HTMLで行われているような、XAMLを動的に生成し、ダウンロードしてクライアント層で実行することが簡単に実現可能です。使用するというものです。加えて、最新のWS-*仕様の多くをサポートするために、WCFは様々な方法でコミュニケーションを行うためのリッチで拡張可能なモデルを提供しています。XMLやPOXと呼ばれる)や、UDPのようなほかのトランスポートメディアを利用できる可能性も備えています。Sunは、Tangoプロジェクトにおいて、このアプローチをより実用性の高いものにしようとしています。同プロジェクトは、設計のゴールとして、WCFとのシームレスな統合を明確に掲げています。*これでJavaと.NETの相互運用のシナリオを全て挙げきった、とはとても言えたものではありません。実際は、この連載がほどよい期間で収まるようにするため、我々はいくつかある他の可能性にはあえて触れませんでした。Eclipseリッチクライアントプラットフォームをクライアントとして使用し、その上で動作するカスタムのRCPビューが、DCOM上で.NET/COM+サービスと対話する、もしくはWCFサービスと対話する。2003マシンにホストされたExcelコンピューティングエンジンの問題を解決する。SWTアプリケーションの内部でDirectXを使用し、ネイティブな3D効果(音声含む)を提供する。Serverを用いて、SwingやJ2EEアプリケーションに対する音声自動認識の"フロントエンド"を提供する。取ってつけたような、そしてやたらとセンセーショナルに聞こえることでしょう。いったシナリオはマーケティングのことなど頭から抜けていて時間がかかりすぎる上、あまり意味がありません。(MarketingとArchitectureを組み合わせた造語で、大したことではなくても、宣伝のために先進技術らしく見せかけること)だとか非難されないように、我々は全てにおいて率直で、明快でいるようにします。.NETならこれができる、Javaならこれができる、逆もまた然り。一つの事実にだけは特に誠実でいるようにします:どちらのプラットフォームにも得意分野があります。開発者の皆さんが心を開いた議論を支持してくれるならば、どんな政治的教義に身を寄せていようと気にはしませんが、お互いの長所を尊重することでとても素晴らしい利益を得ることもあるでしょう。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。