Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
C++DelphiRAD Studioニュース

RAD Studio 2020年11月付ロードマップのPM解説

このブログ記事は、Marco Cantu、David Millington、Sarina DuPontによる「RAD Studio November 2020 Roadmap PM Commentary」の抄訳です。

はじめに

エンバカデロのRAD Studio製品管理チームは、Delphi / C++Builder / RAD Studioの製品開発ロードマップを定期的にアップデートしています。オフィシャルロードマップのブログ記事が掲載されたことでも分かるように、先日、ロードマップの新バージョンをリリースしたところです。このロードマップは、この先12ヵ月の間に計画している主要な機能についてカバーしています。このブログ記事のロードマップスライドに加えて、ここでは、より詳細は情報や考察を行っていこうと思います。ここで説明する詳細情報をお読みいただく際に、ロードマップスライドを併せてご覧いただくと参考になるかと思います。

ロードマップでは、2021年に向けて計画している主要な機能をリストアップしています。このロードマップの詳細を説明する前に、これまでに提供してきた機能について振り返っておきましょう。

今年初め、10.4 Sydneyをリリースしました。10.4リリースは、多くのお客様から好評をいただいており、Delphi用のCode Insightエンジンを完全にリライトしたバージョンの最初のリリースとなります。これは、LSP(Language Server Protocol)アーキテクチャをベースとしており、このほかにも、長年にわたってお客様からご要望いただいていたC++ Win64向けの新しいデバッガ、カスタムマネージドレコードなどのDelphi言語の新機能も含まれます。さらに、HighDPIモニタのサポートやコントロールごとのスタイルサポートによって、VCLスタイルのユースケースを大幅に拡大しました。

10.4 Sydneyは、2020年9月の10.4.1によってフォローアップしています。このアップデートでは、主に品質改善と、10.4で提供された機能、特に新たに追加されたDelphi LSPサポートのさらなる改善にフォーカスしています。10.4.1には、エンバカデロのQuality Portalで報告された500件以上の問題の修正を含む、800以上の品質改善が加えられています。

10.4.2と10.5のリリース計画の詳細説明に入る前に、10.4/10.4.1が、これまでの10.3や10.2と比較してもより多くダウンロードいただいている、多くの皆さんにご利用いただいているリリースであることを紹介させていただきます。このことは、現在コロナ禍(COVID-19)にあることを考えても、注目に値することです。この成功は、製品リリースのみならず、開発チームと協力してアップグレードや新機能の開発を継続してくれるテクノロジーパートナーとの協業を深めていった成果に他なりません。さらに、製品チームに貴重なフィードバックを提供していただいた多くのお客様にも感謝したいと思います。追加を希望する機能、品質面で強化してほしい分野などのご指摘をいただき、(アップデートサブスクリプション特典のひとつである)ベータプログラムにも参加いただきました。ありがとうございます。

現在、2021年前半のリリースを予定している10.4.2の開発に取り組んでいます。その詳細は、ロードマップとこの解説ブログ記事で説明しています。リリースの少し前の段階で、Delphi / C++Builder / RAD Studioの有効なアップデートサブスクリプションユーザー向けに、来るリリースに向けたベータテストの参加を募る予定です。10.4.2ベータプログラムはNDAベータであり、参加される方はベータプログラムに参加する際に、機密保持契約に署名する必要があります。開発サイクルの早い段階でベータプログラムに参加して、製品管理チームへのフィードバックができることは、アップデートサブスクリプション下で、最新バージョンをキャッチアップしていくことのメリットの1つです。

10.5では、Delphiの新しいターゲットプラットフォームとしてmacOS ARM(Apple Silicon CPUベースのデバイス)のサポート、IDE HighDPIサポートの重要な回避策、C++ツールチェインの拡張、さらに数多くの新機能と品質強化を加える計画です。詳細については、以下の解説をご覧ください。

RAD Studioロードマップのタイムライン

開発チームが現在取り組んでいる機能や、将来に向けて調査している機能の詳細説明を行う前に、ロードマップのメインスライドに示した今後のリリースタイムラインをご覧ください。

cy20 21 roadmap ja05 5026212

10.4.2プランについてのDavidの解説

Delphi Code Insight

上述のとおり、10.4.1では品質改善にフォーカスしてきました。品質改善は 10.4.2でも継続されており、その中でも新しいDelphi Code Insight(Delphi LSPとも呼ばれます)は重点項目になります。10.4.2では、多くの修正や微調整、あるいは(あまり利用されていなかったという理由で)初期バージョンには搭載しなかった機能を追加しただけでなく、コード補完に関する新機能や大幅な機能改善も含まれます。例えば、「inherited」でのCtrl+クリック機能の追加や、「uses」句での補完機能の修正などが予定されています。

C++ Code Insight

C++では、2つの分野にフォーカスして、品質への取り組みというテーマを継続しています。

すべてのC++ユーザーにとって最も注目すべき品質改善は、Clangコンパイラ使用時のC++ コード補完を全面的に刷新することです。10.3でC++17にアップグレードした際に、IDEが使用していたコード補完技術を入れ替える必要性が生じました。その導入以来、各リリースでコード補完機能の改善を続け、特定のコードパターンやプロジェクト設定が引き起こすコード補完の問題に対処してきました。

10.4.2では、お客様が求めている開発者の生産性を提供するために、C++のコード補完の全面的な見直しを行うことにしました。C++ユーザーの皆さんには、コード補完とナビゲーションが安定して適切に機能することをご確認いただけると思います。

ヘッダーファイルでの補完の提供など、より困難なケースにも対応しています(.cppファイルよりもはるかに困難です)。最終的な成果は、お客様の要求に応えるものにしてまいります。

C++の品質と例外のハンドル

10.4.2で、C++の品質に関してこのほかの重要なフォーカスポイントは、例外ハンドルに関するものです。

例外のハンドルは複雑な領域であり、正しく動作させるためにはコンパイラとRTLの間の緊密な連携が必要です。例外については、モジュール境界を越えた例外を許可しない(例:DLLでスローされ、EXEでキャッチされる)などの一般的な規則がありますが、ときに正当な理由がある場合もありますが、これがが常に守られているわけではありません。C++では、C++例外、OS例外、SEH(構造化例外)を処理する必要があり、さらにDelphi例外のハンドルも行わなければなりません。

10.4.2では、例外ハンドルシステムを全面的に見直しました。リリースも間近ですので、そのサポート内容の詳細については、今後のブログ記事をお待ちください。内部的には、現在、いくつかの素晴らしい改善が見られます!

IDE

Delphi / C++のコード補完に加えて、他にもいくつかのIDE機能強化を10.4.2で計画しています。

10.3では、現在選択可能な2つのテーマ、ライトスタイルとダークスタイルを導入しました(ダークスタイルについては、実際には、現行のものとは違いがあるものの、10.2.3で初めて導入されました。これは最も人気のある機能の一つでした)。ライトスタイルは、メインカラーに淡いブルーを使用しています。10.4.2では、メインカラーにブルーではなく伝統的なグレーを使用した第三のスタイルを追加しています。2010~XE7時代のIDEの外観を好む方のためのレトロなスタイルであり、クラシックな外観への回帰であると考えてください。また、視覚上の配慮が必要な方にも役立つと考えています。

そして、デスクトップレイアウト、マルチモニターレイアウト、フォーム デザインなどの分野でも、さらなる品質強化を計画しています。これには、フォームのコードを開きながら、フォームデザイナでフォームをデザインできるようにすることも含まれます。これは古いドッキングなしのデザイナを使用したいという人の最も一般的な理由でしたが、古いドッキングなしのデザイナは10.4.1で削除されていました。この最新のデザイナを使用することで、フォームユニットでコーディングとデザインの両方を行えるようになることは喜ばしい限りです。

最後に、RAD Studioの設定をバージョン間(10.3から10.4など)で移動したり、アップデート リリース(10.4.1から10.4.2など)に移行する際に、設定をより適切に保持するために、設定移行ツールを強化したいと考えています。現在検討中のレジストリ設定に加えて、シナリオごとに特定のプリセット設定を追加し、設定ファイルを含めることを計画しています。

10.4.2プランについてのMarcoの解説

ターゲットOSに関しては、現在、10.4.xでサポートしている既存のプラットフォームの改善にフォーカスしており、10.4.2での重点分野は以下の2つです。

プラットフォームの改善

1) 次世代Windowsプラットフォームのサポート

まずWindowsについては、一番重要なターゲットOSとしてそのフォーカスを継続しています。Microsoft OS環境では、Project ReunionによってWinRT APIと従来のWin APIを一元化するという現在のMicrosoftの指針を密接にサポートしていきます。Project Reunion(https://github.com/microsoft/ProjectReunion)はいくつものテクノロジーの複合体になるのですが、その最初の要素は、WinUI 3、WebView2、MSIXになります。

WebView2コントロールは、Edge Chromiumを組み込んだ新しいWindowsプラットフォームコンポーネントです。この機能のサポートは、TEdgeBrowser VCLコンポーネントとして10.4で提供したところです。

2番目の構成要素は、10.4.2で計画しているMSIXパッケージング形式のサポートです。 MSIXは、現在RAD Studio IDEデスクトップブリッジ統合の一部として提供しているターゲットであるAPPXの後継であり、Microsoftストアおよびエンタープライズ配置を対象としています。

Windowsプラットフォーム、特にVCLアプリケーションのサポートの改善を進めている別の分野は、お客様がアプリケーションのUXをモダナイズし、改善できるようにすることを目的とした、2つの新しいコントロールの追加です。新しいVCLネイティブWindowsコントロールで動作するため、よりモダンなUIをアプリケーションユーザー顧客に提供できるようになります。

  • ひとつ目のVCLコンポーネントは、高度に最適化されたバーチャルリストビューです。このコントロールを用いれば、テキストとグラフィックを柔軟に組み合わせて、多数のアイテムを表示できます。 コントロールは、既存のDBCtrlGridコントロールのアプローチが大まかなベースになっていますが、データソースは必要ありません。 LiveBindingの使用をサポートします。
  • もうひとつ追加しようとしている新しいVCLコンポーネントは、WinUINumberBoxプラットフォームコントロールに似た数値入力コントロールです。 このコントロールは、さまざまな形式(整数、浮動小数点数、通貨値)を考慮し、単純な式の評価も含めて、より簡単でスムーズな数値入力を提供します。

2) 現行ターゲットプラットフォームへのフォーカス

2つ目の改善ポイントは、現行のサポートターゲットプラットフォームへのフォーカスです。 RAD Studio 10.4.1のリリース後に、AppleとGoogleによってリリースされたOSの新バージョンとの完全な互換性を提供する計画です。 現在、これらのプラットフォームをターゲットにすることはできますが、(回避策ではなく)適切に対処したい未解決の問題がいくつかあります。 目標は、以下を完全にサポートすることです。

  • iOS 14 および iPadOS 14(Delphi および C++)
  • macOS 11.0 Big Sur(Intel)(Delphi)
  • Android 11(Delph)

品質の改善

品質に関しては、(10.4.1で行ったように)10.4.2でも安定性、パフォーマンス、品質の向上に尽力します。製品の多くの領域で、お客様から報告された問題や、サポートからエスカレーションされた問題に対処する予定です。先にDavidがリストアップしたものに加えて、特に以下のツールとライブラリに、フォーカスしています。

  • (すべてのプラットフォーム向けの)Delphiコンパイラの堅牢性と下位互換性を向上。特に、コンパイラ(およびリンカ)のパフォーマンスにフォーカスし、大規模プロジェクトのコンパイル時間短縮、LSPエンジン(ソースコード分析でコンパイラを使用)の高速化を図ります。
  • SOAPサーバーとのインターフェイスに使用されるクライアントコードを生成するWSDLインポートツールに加えて、SOAPクライアントライブラリを改善。
  • 並列プログラミングライブラリ(PPL)は、タスク、非同期アクセス、および並列forループの観点から、さまざまなプラットフォームとマルチコアCPUスレッド機能に対して高度な抽象化を実現します。
  • RAD Studioの多層Webサービスソリューションを構成するRAD Serverと以前からのDataSnapエンジンの両方を改善。HTTPおよびRESTクライアントライブラリも全般的に改善します。 また、AzureとAWSのクラウドサポートにも引き続き注力していきます。
  • VCLスタイルとHighDPIスタイルについても、VCL全般の改善に加えて、特に注力していく分野です。
  • FireMonkeyライブラリでは、TMemoコンポーネント(PlatformとStyledバージョンの両方)、10.4で導入したMetal GPUライブラリドライバーの改善を継続し、Androidのセンサー管理についての見直しを実施。さまざまなAndroidデバイスのサポートを強化していきます。

RAD Studio 10.5

参考として、メインロードマップスライドを再掲しましょう。

10.5プランについてのDavidの解説

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

10.5では、多くの製品ユーザーに要望いただいている新機能がいくつか計画されています。

1) HighDPI IDEのサポート

VCLでは、これまで数回のリリースでHigh DPIをサポートしてきましたが、10.5では、VCLを使用するRAD Studio IDEでもHigh DPIを完全にサポートする計画です。これにより、さまざまな解像度とスケールの画面間でウィンドウを移動する場合を含め、最新の高解像度スクリーンのすべてで鮮明なレンダリングが可能になります。

2) デザイナ上でのVCLスタイルのサポート

VCLフォームデザイナは、アプリケーションを作成する際に使用する重要かつ主要なツールの一つです。デザイナを利用する上で最も重要なポイントは、デザイン時の画面の外観とアプリケーション実行時の画面の外観をいかに近づかせ、そのUI画面の構築をいかに迅速に行えるかということです。

10.5では、デザイナに対してVCLスタイルをサポートする機能を追加することで、アプリケーション実行時の外観に近づける要素を拡張する予定です。つまり、VCLコントロールにスタイルを適用すると、デザイナの表示でもそのスタイルが適用され、実行時のアプリケーションと同じ外観がプレビューできます。

3) FireMonkeyデザイナの改善

FMXフォームデザイナも同様に、クロスプラットフォームアプリケーションを構築する際の重要なツールです。 FMXデザイナでも、開発者が必要とする生産性機能を確実に利用できるように、位置合わせガイドなど、VCLデザイナが持っているいくつかの設計ツールを提供する予定です。

4) 複数開発者での生産性の強化

チームのコラボレーションを支援するために、IDEのソース管理統合にもフォーカスしていきます。 さらに、DelphiおよびC++Builderを初めて使用するユーザーをサポートするために、最初の実行時にIDEがどのように表示するかなど、いくつかの機能拡張を計画しています。

5) ビルドサーバーに特化したインストーラーの実装

開発者の中にはRAD Studio(Delphi、C++Builder)を使用するために専用のビルドサーバーを構築している方もいます。そのような開発者は、ソース管理、テスト、および同様のプラクティスに加えて、公式ビルドを特定のマシンやVM上で行うというベストプラクティスを採用しています。

現在、ビルドサーバーにRAD Studioをインストールするためには、従来のようにフルセットのIDEをインストールする必要がありますが、ビルドサーバーでビルドするために実際に必要なのはコマンドラインツールのみです。そのため今後は、ビルドサーバーに特化したインストーラーの実装シナリオを計画しています。

C++Builder

10.4では、Win64 C++向けの新しいデバッガを導入しました。このデバッガでは、C++ユーザーから要望が多かった複雑なデータ型の評価を実現する「フォーマッター」を搭載しており、主要なSTLコンテナのデータ型や独自のデータ型など、複雑なデータ構造も簡単に評価できるようになりました。このデバッガは、以前のバージョンで使用していたWin64 C++向けのデバッガの改善版ではなく、あくまで全く新しいデバッガとして提供しています。10.5では、もう一つの主要ツールである「リンカ」に対してもデバッガと同様に、全く新しいリンカの置き換えをWin64向けに計画しています。

10.5では、64ビット向けのWindowsに引き続きフォーカスしています。多くのC++ユーザーがWindowsアプリケーションを64ビットへ移行するためにClangを使用しており、このコンパイラが従来のコンパイラ(bcc32)と比べて同等、あるいはそれ以上の品質を達成することを目標として考えています。これによって、既存の32ビットのアプリケーションから64ビットへの移行が容易になり、さらに多くのC++ユーザーが、今後のターゲットとして64ビットのみに絞った検討が行えるようになります。

Visual Assistは、Visual C++向けに生産性向上を目的とした素晴らしい拡張機能を提供していますが、エンバカデロではこの拡張機能をC++Builder向けに統合するために様々な研究を継続的に行っており、その第一段階としていくつかの機能を10.5で搭載する予定です。

最後にDelphi/C++Builderの相互運用性の向上も計画しています。RTL機能との統合がよりスムーズに行えれば、Delphi/C++の2つの言語をもっと簡単に使用できるようになり、生産性向上もこれまで以上に見込めるため、C++Builderだけでなく(Delphiも含めた)RAD Studioを使用する重要な理由の1つになりえます。10.5では、2つの言語の親和性は以前よりもっと高まりますので、期待してください。

Delphiデバッガ

10.4では、LLDBをベースとした全く新しい Win64 C++向けのデバッガ(上述)を導入しました。現在は、プラットホームごとに異なるデバッガを組み合わせて使用していますが、最終的には、すべてのプラットフォームで同じデバッガを使用することを目指しています。これを行うための鍵となるのは、Delphi言語のフロントエンドをLLDBに追加することです。これにより、たとえば、[評価/変更]ダイアログでDelphi構文を評価できます。10.5では、この新しいフロントエンドによってLLDBを使用する最初のプラットフォームを導入する予定です。

10.5プランについてのMarcoの解説

プラットフォーム

Windowsプラットフォームについては、前述の通り、Microsoft Project Reunionに含まれる様々な技術への対応を予定しています。特にRAD Studio 10.5では、WinUI3 ライブラリによる最新のWindows UXのサポートを統合したいと考えています。Microsoftのライブラリのロードマップによると、このライブラリのコンポーネントを、従来のAPIをベースとしたネイティブアプリケーションで異なる種類のフォームやコントロールと混在させて使用することが可能になるはずです。実際の詳細は、ネイティブアプリケーションとの統合に関してライブラリが提供する内容によって異なりますが、現在の計画では、このライブラリを新しい特定のコントロールによってVCLに統合する予定です。

プラットフォームといえば、Delphiアプリケーションの新しいターゲットを追加したいと思います。それはApple Silicon CPUを搭載したAppleハードウェアを搭載した、macOSのARMベース版OS用の新しいコンパイラです。Intelアプリケーションを実行することはできますが、目標は、新世代のmac用ネイティブARMアプリケーションを用意することです。

さらに新しいコンパイラ、ランタイムライブラリの更新、さまざまな高レベルライブラリの更新など、Delphiの重要な拡張機能になります。また、すべてのプラットフォームに対応したDelphi言語の構文を拡張し、Windows上でコンパイラが生成する数学処理コードのパフォーマンスを向上させて、アプリケーションの数値処理を高速化することも計画しています。

また、引き続き全体的な製品品質に取り組み、いくつかのサブシステムを選択して重点的に取り組むことを計画しています。これは、現在のリリースと今後のアップデートに対するユーザーの皆さんからのフィードバックを評価することによって決定していきます。

まとめ

Delphi、C++Builder、RAD Studioの今後のリリースでは、いくつものすばらしい計画を立てています。エキサイティングな変更から双方の言語向けコード補完、HighDPI IDE、コーディング作業とデザイン時の生産性向上サポート、Windows UIと新しいVCLコンポーネント、Delphiデバッグ、DelphiによるApple Silicon(M1)サポート、コンパイラの品質向上、Delphi/C++ RTL、SOAP、多層開発、さらにはC++の新しいリンカなど。今後のリリースには、いくつかの非常にエキサイティングな作業の成果が含まれてくるでしょう。ぜひご期待ください!

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


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES