この記事はプロダクトマネージャー Sarina DuPont, Marco Cantu, David Millington によるロードマップの解説記事 May 2019 RAD Studio Roadmap Commentary from Product Management の抄訳です。

エンバカデロを代表し、RAD Studio Product Management チームが、Delphi、C++BuilderおよびRAD Studioの製品開発ロードマップの継続的な更新を担当しています。 ブログに投稿した公式のロードマップの記事でわかるように、私たちは最新のロードマップを公開しました。これから12カ月間に計画している主要機能を説明しています。公式のロードマップスライドに加えてこの追加のブログ記事で詳細、情報、および考察を解説いたします。この記事の解説とスライドの内容を併せてお読みいただくことでロードマップをより正しくご理解いただけると思います。

私たちのロードマップでは、2019年から2020年にかけて計画している主な機能を紹介しています。新しいロードマップの詳細に入る前に、これまでの提供内容を要約します。昨年末には10.3 Rioをリリースしました。10.3 Rioリリースはお客様から非常に好評を博し、非常に長年にわたるお客様の要望に応えたWin32向けC++17サポート、新しいインライン変数宣言構文などの新しいDelphi言語機能、AndroidでのFireMonkey Zオーダーやネイティブコントロールサポートなどを含んでいます。(Google Playストアの要件である、APIレベル26をターゲットにする機能を含めて)。また、Windows 10 についても VCLとHigh DPIHighDPIの改善、ユーザーエクスペリエンスを重視した改善、長時間IDEを利用する場合向けの新しいカラーテーマやUIの広範なモダナイズ、RAD Serverの機能強化、すべての製品分野およびランタイムライブラリにおける品質とパフォーマンスの改善も含まれています。


2019年2月にリリースされた10.3.1では、iOS 12およびiPhone Xシリーズデバイスのサポートの拡張、Ext JSフレームワークへの移行によるRAD ServerコンソールUIの再設計、FireDAC での Firebird 3.0.4 とFirebird Embeddedに対するサポート強化が行われました。また、10.3.1では、新しいVCLおよびFMXマルチデバイススタイルとIDE向け生産性コンポーネントのナビゲータとブックマークが追加され、いずれもIDEのGetItパッケージマネージャから追加できます。さらに10.3.1には、お客様から報告された150以上の問題に対する修正も含まれています。

現在10.3.2のベータ版は、DelphiのmacOS 64-bitサポート(InterBaseを含む)、Win64 向けの C++17、RAD Serverウィザードの改良、RTLパフォーマンスの向上、および全体的な品質の向上などをテストいただける状態です。10.3.2ベータ版はNDAで提供するベータ版であり、参加者はベータ版に参加する前に機密保持契約に署名する必要があります。有効なサブスクリプションを保有していてベータ版への招待を受け取っていない場合は、エンバカデロの営業担当者にお問い合わせください。

GetItパッケージマネージャーについては、今後数ヶ月の間に、エンバカデロとそのパートナーからの新しいプラグインやアドオンについて、エキサイティングな発表を予定しています。

10.4では、DelphiによるLanguage Server Protocolのサポート(10.3でC++Builderへの初期サポートを行っており。これは10.3.2で強化されます)、VCL High DPIスタイルのサポート、Delphi での Android向け64-bitサポート、RAD Server向けツーリング、拡張C++ライブラリのサポート、大幅な品質の向上など、IDEツーリングに関する重要な作業を計画しています。 詳細は下記とこちらをご覧ください。

この機会を利用して、当社の最新ロードマップに概説されているいくつかの重点分野に関する詳細をお客様と共有したいと思います。


Sarina DuPontからのコメント

Sarinaは、FireMonkey、コンポーネントライブラリのUXとスタイル、インストールエクスペリエンス、およびデモとドキュメントにフォーカスしています。

新しいプラットフォームサポート

私がエンバカデロに2011年に参加して以来、FireMonkeyは引き続き重点分野の1つです。開発者がこのフレームワークを使って構築できるものが大好きです。

2019年8月時点では、GoogleはすべてのGoogle Playストアアプリケーションが64-bit対応であることを必要とします。Delphi向けのAndroid 64-bitサポートは現在取り組んでいる最中です。この新しいGoogleの要件に間に合うように、Delphi での Android 64-bitアプリケーションのビルドをサポートする10.4ベータを今年の夏に提供開始する予定です。通常のベータ版の制限では製品向けアプリケーションのビルドとデプロイは許可されていませんが、10.4のベータテスターがAndroidアプリをGoogle Playストアにデプロイできるようにする特別なベータ向けのEULA規定を含める予定です。昨年夏のGoogleのAPIレベル26の要件についても10.3で同じアプローチを採用し、そのプロセスはうまく機能しました。Android 64-bitのInterBaseサポートも進行中です。

昨年、AppleはOpenGLのサポートを廃止し、Appleの新しいGPUライブラリであるMetal 2を支持することを発表しました。10.4リリースでMetal 2をサポートする予定です。DelphiのmacOS 64-bitサポートは、10.4ポイントリリースでサポート予定のiOS 11、iOS 12、およびiOS 13 Simulator(一度リリースされた)の基盤にもなります。

プッシュ通知とGoogle Play Serviceの再アーキテクチャ

昨年、GoogleはGCMとして知られていたサービス Google Cloud Messaging を非推奨としました。FireMonkeyではGCMをサポートしていました。GoogleはAPIが非推奨であり、2019年5月29日に廃止する旨を発表しました。

今後FireMonkey Androidアプリケーションでプッシュ通知サポートを使用するには、GoogleのFirebaseを使用する必要があります。私たちは近日中にRAD Studio 10.3.1のお客様向けにFireMonkey AndroidアプリケーションにFirebaseプッシュ通知サポートを追加する方法についてのパッチと詳細な説明を公開する予定です。10.3.2リリースでこのサポートを簡素化し(RAD ServerでAndroid Firebaseプッシュ通知のサポートも含めて)、10.4でFirebaseとその他の関連サービスを完全に統合したサポートを提供する予定です。

私たちが10.4向けに再検討することを計画している分野の1つは組み込みの広告サポートであり、AndroidとiOSの両方でAdmobをサポートするために必要であり、私たちが顧客からリクエストを受けているものです。

ユーザーエクスペリエンスを第一に

テンプレートとスタイル

昨年、私たちは開発者の皆様がのマルチプラットフォームアプリケーションの開発を容易に始めやすくすることを目的に多数のFireMonkey UIテンプレートをリリースしました。GetItから入手可能なこれらのテンプレートは非常に人気があり、私たちはいくつかの材料設計をテーマにしたものを含む追加のテンプレートに積極的に取り組んでいます。あなたが見たいと思うGUIテンプレートのための追加のアイデアがあれば、私に連絡してください。

10.3.1リリースでGetItに追加した新しいFMXおよびVCLスタイルも非常に人気があります。カスタムテーマを適用することは、アプリケーションの外観を見直すための最速の方法の1つです。IDEのGetItパッケージマネージャからテンプレートとスタイルをダウンロードできます。

インストーラの改良

最初のユーザーエクスペリエンスの向上に関連するのは、GetItテクノロジを使用した、オンラインとオフラインの統合インストーラーに関する作業でもあります。これは初期インストールを助けるだけでなく、ポイントリリースをインストールするためのより円滑なプロセスを今日提供するので私達はポイントリリースのために初期インストールと同じインストールメカニズムを使用するように要求します。インストールテクノロジを統一することで、オフラインインストーラを使用しているお客様は、IDEから追加のプラットフォームをインストールすることもできます。これは、現在GetItオンラインインストーラを選択した場合にのみ可能です。


Marco Cantuからのコメント

Marcoは、Delphi言語とRTL、VCLライブラリとWindowsの統合、RAD Serverを含むすべてのデータベースとWeb指向にフォーカスしています。

Delphi言語の拡張

私がフォーカスしている分野の1つは、Delphi言語と低レベルのランタイムライブラリとプラットフォームの統合です。Sarinaが今述べたように、そして我々のロードマップがカバーしているように、今後数カ月の間の私達の焦点はmacOS 64-bitとAndroid 64-bitのための新しいネイティブDelphiコンパイラを提供することです。これにより、既存のコンパイラに3つの追加のDelphiコンパイラが追加され、合計11個(Windows、macOS、iOS、Android、iOSシミュレータ用に2つ、Linux用に1つ)になります。将来的には無関係になったものを非推奨にする予定ですが、現時点では、さらにいくつか追加します。

コンパイラを新しいプラットフォームに移行することは大きな努力ですが、それが私たちが取り組もうとしている唯一の努力ではありません。また、モバイルプラットフォーム上のオブジェクトの自動参照カウント(ARC)モデルを無効にして、すべてのコンパイラとすべてのターゲットオペレーティングシステムに単一のメカニズムを提供することで、すべてのプラットフォームでメモリモデルを統一することに取り組んでいます。私たちは10.3(Linuxプラットフォーム用)でこの変更を始めました、そしてそれは我々の顧客にとって非常に好評でした。この道を歩み続けることは、私たちがシングルソースのマルチプラットフォームという約束を達成するのに役立ちます(そして他の競合ソリューションよりもうまくいくでしょう)。

それにもかかわらず、我々はまだマネージドレコードから始めて、言語自体の作業を継続することを計画しています。この機能は10.3での提供を目指して作業に着手しましたが、十分に安定せず既存のコードとの互換性で問題を引き起こすため、リリースを一旦先送りにしました。私たちは後方互換性を非常に真剣に考えており、非常に強力な追加の言語機能を提供しながら既存のコードのスムーズな移行を提供するアーキテクチャに取り組んでいます。マネージドレコードは、null許容型と追加のメモリ管理モデルの基盤でもあります。これらは、言語で計画されている機能のリストの次にあります。

言語とコンパイラに対する副次的な焦点として、Davidが後で説明するように、IDEコードツール(Code Insightと関連機能)を改善するための重要な計画があります。

RTLとランタイムパフォーマンスへのさらなる焦点

コンパイラへの作業とともに、プラットフォームAPIとの完全統合、例外処理、メモリ管理、スレッド化などの低レベルのメカニズムを使用して、採用しているすべての新しいプラットフォームに同じRTLライブラリを提供することに重点を置いています。RTLの大幅な拡張は予定していませんが、2つの主な方向で作業する予定です。1つ目はパフォーマンスであり、常に改善の余地があり、多くの顧客が求めている分野です。Delphiネイティブアプリケーションは、他のソリューションよりもパフォーマンス上の優位性とメモリ消費量の削減を実現します。これは、RTLが適切なレベルに達している場合でも同様です。

2つ目は全体的な品質と安定性であり、ライブラリには不可欠ですが、RTLのような基本的なライブラリ要素にはさらに重要です。パフォーマンスのために再考する必要があるLiveBindingのような特定の分野と、品質と機能の完成の観点から十分な焦点を必要とするParallel Libraryのような他の分野があります。また、HTTPクライアントライブラリは、さまざまなプラットフォーム、およびその他多くのRTLサブシステムに対して継続的な改良が必要です。

Windows 10用のさらなるVCLへの拡張

近年、RAD StudioはFireMonkeyを使用したマルチデバイスアプリケーション開発に注力しているだけでなく、VCLとWindowsプラットフォーム、特にWindows 10にも重点を置いています。このライブラリには、最新のWindows 10 UI用の特定のコントロールが多数あり、WinRT API(Bluetooth LE、通知、およびWindowsストア用の特定のコンポーネントを含む)との密接な統合があります。 10.3で導入された新しいコントロールと機能を含みます。さらに、IDEは、Windowsデスクトップブリッジ(別名Centennial Bridge)を使用してWindows 10 UWPアプリを作成するための統合サポートを提供します。プロジェクトオプションの一部として、アドホックまたはWindowsストア展開用のAPPXを生成するためのすべての構成設定を指定できます。

私たちは同じ方向性を継続していく予定です。

スタイル付きアプリケーション用のHigh DPIおよび4Kモニタを完全にサポートし、現在のVCLスタイルアーキテクチャを改善し、スタイル付きフォームとスタイルなしフォームおよびコントロールを混在させることも可能にします(すべてのサードパーティ製コントロールとの統合も改善します)。最終的には、主にVCLアプリケーションであるIDEもこのサポートの恩恵を受けるでしょう。

私たちが注力しているもう1つの分野は、Windowsストアおよびエンタープライズソフトウェア配布の基盤となりつつあるMSIXインストール形式を採用することによって、Desktop BridgeおよびMicrosoftの新しい展開モデルに対するサポートを拡大することです。

さらに、XAMLアイランドおよび関連するWindows 10テクノロジに関する研究を計画しています。これにより、従来のGDIおよびユーザーコントロール(VCLの基になっています)をブラウザ、地図、XAMLサーフェスなどのWinRTネイティブコントロールと組み合わせることができます。サーフェスを描画します。これはマイクロソフトがまだ開発中の領域であり、(それをサポートしているWindowsのバージョンに関して)それがより完全で主流になったら採用することを計画しています。

RAD Serverは改善を続けています

私が取り組んでいる製品のもう一つの分野はRAD Serverです。RESTとJSONに基づいてWebサービスを構築およびデプロイし、マイクロサービスモデルに基づいて多層アーキテクチャを作成するためのライブラリおよびエンジンです。もともとモバイル(EMS、Enterprise Mobility Servicesと呼ばれる)のバックエンドと考えられていたRAD Serverテクノロジは、JavaScriptで構築されたWebアプリケーションも含め、あらゆるタイプのアプリケーションをより適切に提供するために長年にわたってその範囲を拡大しました。これに関しては、URLマッピングアーキテクチャを大幅に拡張し(特に10.3)、サーバーサイドの設定コンポーネントを使用してコーディングを簡素化しました。もう1つの重要な変更点は、ライセンスの変更です。今から、RAD StudioのEnterpriseエディションでは1つのサーバーインスタンスの配置権が、Architectエディションでは無制限の配置が含まれます。

今後のリリースでは、ウィザードとコーディングスタイルの改善により、開発プロセスをさらに簡略化することに重点を置いていますが、新しい構成ツール、インストーラ、およびそのサポートにより、構成、展開、および管理プロセスを大幅に改善します。 Dockerのようなコンテナ。また、JavaScriptおよびExt JS WebアプリケーションのバックエンドホストとしてのRAD Serverの使用をさらに簡素化する方法についても検討しています。


 

David Millingtonからのコメント

Davidは、C++言語、デバッガ、そしてIDEとユーザーエクスペリエンスに焦点を当てています。

C++の向上:ツーリング、品質など

2018年11月、Clangで強化されたWin32ツールチェーンサポートC++17のアップグレード版をリリースしました。次のリリース10.3.2では、Win64用のこのツールチェーンもサポートする予定です。これは、すべてのWindowsがC++17サポート、標準ライブラリの更新、RTLの改善などを含む新しいツールチェーンを使用することを意味します。特にこのアップデートされたツールチェーンはC++標準とのより良い互換性を持ち、そしてまたクラシックコンパイラからより良いアップグレードパスを提供します。Windowsは、C++のお客様にとって最も重要なプラットフォームであり、Win32とWin64の両方に対して同じツールチェーンとC++17のサポートを提供することで、私たちの最高のプラットフォーム要求に対応できます。

昨年も今年もC++の全体的な焦点は、根本的に改善することです。C++Builderをあらゆる分野でリードすることを目指しています。最近のバージョンのClangへのツールチェーンのアップグレードとC++17のサポートは、ここでの重要な取り組みであり、将来の重要な作業の基盤となります。

今年の最大の焦点はIDEのツールサポートになります。これには、コード補完、エラーの洞察、リファクタリングなどが含まれます。これらは、IDEの生産性にとって重要な領域であり、他のコードエディタに匹敵する、さらには超えるための作業の必要性を認識しているところです。10.3では、cqueryを使用してC++(Clang Win32用)のコード補完を導入しました。これはコード補完エンジンを非同期に実行するため、機能しながら入力を続けることができます。私たちは多くの顧客に私達のcqueryサポートを使用してもらい、彼らが機能の次のイテレーションで欲しいと思う特定の品質改善について貴重な意見を提供いただきました。10.3.2では大幅に改訂され、高速で高品質のコード補完、パラメータ補完、エラーの洞察などが提供されます。10.3.2 Betaに参加すると、Beta版を通じて利用可能になったすべての機能強化を早期に確認することができます。

ロードマップでわかるように、Visual AssistをC++Builderに統合することも計画しています。Visual AssistはVisual Studio用のプラグインであり、今後もそのまま使用されますが、リファクタリングやナビゲーションなどのコア機能もC++Builderに統合されます。Visual Assistは、C++ツールの世界的リーダーであり、Visual C++、CLion、Resharper C++、またはその他の製品で利用できるものよりも優れた、より柔軟なツールを提供します。その統合により、C++BuilderはC++開発者ツールの最先端に位置することになります。

来年は、広く使用されているC++ライブラリのサポートと品質の向上にも重点を置いています。今日のGetItでは、Eigen、Google Test、Boostなどの主要なC++ライブラリ、およびその他に便利なその他のライブラリをインストールできます。これらのライブラリはすべて[Libraries]カテゴリに含まれています。新しいライブラリもGetItで利用可能になります。また、古いバージョンで遭遇したかもしれない品質の問題はすべてのリリースで取り除かれることを目指しています。つまり、最新バージョンのC++Builderをいつも選ぶことには大きな価値があります。

また、昨年導入したCMakeサポートをIDEに統合するための拡張も予定しています。

最後に、すべてのプラットフォームからARCを削除するDelphiと一致させるために、C++もこれに追従します。C++開発者にとって、これは大きな動きです。メモリモデルの混在を取り除き、スマートポインタなどの正規のC++メモリ管理パターンを使用できるようにします。

C++のプラットフォームサポート

私たちはC++の顧客と多くの素晴らしい議論をしてきました、そしてWindowsサポートと強化されたツールと全体的な品質は最も要求されたフォーカス領域でした。

私たちは、Windows 64-bit での C++17サポートを10.3.2で取り組んでいます。C++のコードツールと全体的な品質は、10.4以降での大きなフォーカスとなります。これらの分野で計画してきたすべての機能強化にわくわくしています。

あなたがC++に関して特に気づくかもしれない1つのロードマップ変更は、今年私たちがmacOS 64-bitとAndroid 64-bitプラットフォームのサポートを掲載していないことです。これは、C++用のこれらのプラットフォームのサポートを今後追加しないことを意味するのではありません(そして、今年はDelphi用にこれらのプラットフォームをサポートする予定です)。macOSおよびAndroid for C++Builderの64-bit サポートを提供することによって既存のプラットフォームのサポートを維持することは、将来のリリースではまだ検討中ですが、ロードマップを進化させるにつれて、引き続きお客様のニーズに関するフィードバックを求めています。私達はあなたのプラットフォームの使用とこれらの計画についてのあなたの意見を歓迎し、そしてあなたの特定のmacOSとAndroidの必要条件についてもっと知ることができます。

デバッガ

C++用のClangアップグレードにより、LLDBの最新バージョンを使用することができます。私たちは、Delphiの言語サポートをLLDBに統合し、モバイルとmacOSをはじめとする主要なプラットフォームでの使用に移行する予定です。LLDBは非常にフル機能のデバッガです。これにより、すべてのプラットフォームでWindowsに匹敵する高品質で機能豊富なデバッグ体験が得られます。

IDEのユーザーエクスペリエンス

RAD Studio 10.3では、IDEに新しいルックアンドフィールが導入されました。今後のリリースでは、これを改善し、品質に対処し、いくつかの優れた新機能を追加しています。RAD Studio 10.3.2では、焦点はUX品質にあります。IDEの多くの問題が解決されるでしょう。

今後のリリースでは、IDEの新機能にフォーカスします。最も重要なものは、IDEでのHigh DPIサポートであり、2020年初頭ごろに予定しています。これは、4K画面などの非常に高解像度のモニターで、またはWindowsが100%以外の拡大/縮小設定を使用している場合に、IDEが正しく拡大縮小し、正しくレンダリングされることを意味します。

この作業は、Marcoがすでに述べたように、High DPI イメージリストを含む10.3で導入したVCLでのHigh DPI サポート、および10.4でのHigh DPI  VCLスタイルサポートに基づいています。RAD StudioはRAD Studioを使用して構築されているため、これらの機能が導入されるとIDE自体でも使用されます。

Delphiのコードツーリング

上記のC++のセクションでは、C++コード補完のためにcqueryをどのように使用しているか、そしてそのテクノロジが10.3.2でどのように大幅に改善されるかについて述べました。Cqueryは、Language Server Protocol(LSP)による言語サーバーです。LSPは、IDEまたはコードエディタ(クライアント)と、コードを解析してコード補完などの結果を提供するサーバーとの間の通信に使用されるJSONベースのプロトコルです。

LSP標準は、多くのIDEやエディタで広く使用されています。これにはいくつかの重要なメリットがあります。一つは、それが非同期であるということです:エディタは決して一時停止することなく、あなたはいつでも入力を続けることができます。エディタやIDEとは別のプロセスでもあり、メモリ使用量の改善(クライアントIDEでのメモリ使用量の減少、およびサーバープロセスでのコード解析専用のメモリ領域全体)を意味します。 LSP対応IDEは、組み込みのサポートではなく、サーバーを使用するだけで、あらゆる言語のコード補完などの機能を提供できます。

C++BuilderがRAD StudioのLSPサポートを主導し、10.3.2が高速、非同期、高品質のコード補完、パラメータ補完、エラーインサイトなどを提供します。特に、これはLSPクライアントサポートがすでにIDEに組み込まれていることを意味します。

Delphiに組み込まれているコード補完とエラーインサイトも私たちが大いに改善したい分野です。今日のエラー洞察では、特にインライン変数などの新しい言語機能について、誤った結果 - 誤ったエラー - が表示されることがあります。たとえばコードエディタで誤った「赤い波線」が表示される可能性があります。今日のコード補完でIDEが一時停止したり、巨大なプロジェクトを解析しながら大量のメモリを使用する可能性がある、何百万行ものコードを含む大規模プロジェクトの動作を改善したいとも思っています。

IDEのLSPサポートをDelphiに拡張し、ネイティブのDelphi言語サーバーを提供することでこれに応えます。

cqueryのような言語サーバーがコンパイラに基づいているのと同じように(cqueryはlibclangを使用し、clangはライブラリとして使用します)、Delphi言語サーバーはDelphiコンパイラをコアとして使用します。これは、あなたが見るコードインサイトや報告されたエラーについて、コンパイラによるコードの解析が正確、精密に行われることを意味します。

これはあなたがより速いコード補完を見ることを意味します。 IDEは完了時にブロックすることはありません。エラーインサイトは正確な結果を提供します。これは、Delphiのコードツーリングに対する長年の最大かつ最善の改善であり、リリースすることに非常に興奮しています。


まとめ

今年のロードマップは大規模な多数の機能が計画されています。私たちは品質に重点を置き、システムを改善または交換してお客様にもっと良い経験を提供しています。DelphiとC++の両方のお客様に、私たちが提供する機能と、品質と生産性の両面で、大幅かつ大幅な機能強化を目指します。

これには、Delphiに対する64ビットのmacOSとAndroidプラットフォームのサポートが含まれておりいます。 アプリケーションを Mac App Storeおよび Google Play ストアで配布できます。Delphiのさらなる言語機能強化。 Delphiのコード補完、ナビゲーション、エラーの洞察などを大幅に改善します。また、すべてのWindowsコンパイラをアップグレードされたC++17 Clangコンパイラと統合しています。 C++のコード補完、ナビゲーション、およびインサイトに大幅な改善を加えました。VCLスタイルに対するHigh DPI サポートもあります。モバイルおよびmacOS用のより強力なデバッガを提供します。 Google Firebaseプッシュ通知および関連サービスのサポート。多くのRAD Serverの機能強化。 RTL、特にLiveBinding、Parallel Programming Library、HTTPクライアントライブラリなどの品質とパフォーマンスが向上します。

ロードマップのスライドとこのブログ投稿からわかるように、このロードマップには多数の機能が含まれており、IDEの主要な生産性領域の大幅な改善など、品質に重点が置かれています。これらは私たちがあなたにとって重要であると聞いているすべての分野です。そして私たちは来年あなたに提供するものを大いに楽しみにしています。RAD Studioの各バージョンと、これらの機能および改善点がリリースされるたびに入手できるように、必ずアップデートサブスクリプションをご利用ください。


注意:これらの計画とロードマップは、現時点でのエンバカデロの方向性を示したもので、開発計画とその優先度は、変更される可能性があります。従って、ここに記載した製品機能や提供スケジュールのいずれについても、その提供をお約束するものではありません。また、製品スケジュールや製品ロードマップは、いずれの契約を中止ないしは置き換えるものではなく、お客様が利用されている製品のアップグレード、アップデート、機能改善、他のメンテナンスリリースについては、ソフトウェアライセンス契約に基づいて提供されます。