door Marco Cantu, David Millington en Sarina DuPont
Inleiding
Het Embarcadero RAD Studio productmanagementteam werkt regelmatig de roadmap voor productontwikkeling bij voor Delphi, C++Builder en RAD Studio. Zoals u kunt zien in onze officiële roadmap blog postWe hebben zojuist een nieuwe versie van de roadmap uitgebracht, met daarin de belangrijkste functies die we voor de komende 12 maanden hebben gepland. Samen met de officiële slides van de roadmap, wilden we meer details, informatie en inzicht bieden met deze extra blogpost. Het kan handig zijn om de slides ter referentie te openen terwijl je de uitgebreide informatie leest die we hier geven.
Klaar om aan de slag te gaan met de nieuwste RAD Studio-versie? Gratis proefabonnement starten
In onze roadmap vind je de belangrijkste functies die we hebben gepland voor het kalenderjaar 2021. Voordat we naar de details van onze bijgewerkte roadmap gaan, willen we eerst een overzicht geven van wat we tot nu toe hebben geleverd.
Begin dit jaar hebben we 10.4 Sydney uitgebracht. De 10.4 release werd zeer goed ontvangen door onze klanten en bevatte de eerste levering van onze volledige herschrijving van de Delphi Code Insight engine, nu gebaseerd op de Language Server protocol architectuur, een nieuwe debugger voor C++ Win64, die tegemoet kwam aan een zeer langdurig verzoek van klanten, en nieuwe Delphi taalfuncties zoals aangepaste beheerde records. We hebben ook het gebruik van VCL stijlen aanzienlijk uitgebreid met ondersteuning voor HighDPI monitoren en per-control styling.
We volgden de 10.4 Sydney-release op met 10.4.1 in september 2020, die vooral gericht was op kwaliteit en verdere verbeteringen van de functies die in 10.4 werden geleverd, in het bijzonder de nieuw toegevoegde Delphi LSP-ondersteuning. 10.4.1 bevat meer dan 800 kwaliteitsverbeteringen, waaronder 500+ kwaliteitsverbeteringen voor publiekelijk gerapporteerde problemen in Embarcadero's Quality Portal.
Voordat we dieper ingaan op de details van de 10.4.2 en 10.5 releases, willen we eerst benadrukken dat 10.4/10.4.1 een van onze populairste releases tot nu toe is geweest, met meer downloads dan zowel 10.3 als 10.2. Dit is vooral indrukwekkend midden in COVID-19. Dit is vooral indrukwekkend midden in COVID-19. We schrijven het succes toe aan zowel de release als onze toegenomen betrokkenheid bij technologiepartners die met ons team blijven samenwerken om te upgraden en nieuwe functies te ontwikkelen. We willen jullie, onze klanten, ook bedanken voor de geweldige feedback die jullie het productteam hebben gegeven, in de zin van functies die jullie graag toegevoegd willen zien en gebieden waarop jullie willen dat we ons richten op kwaliteit, en jullie deelname aan onze bètaprogramma's (wat een van de voordelen is van een abonnement).
Op dit moment werken we aan de 10.4.2 release, die gepland staat voor het eerste deel van kalenderjaar 2021 en gedetailleerd wordt beschreven in de roadmap en in dit blogbericht. Enige tijd voor de release verwachten we RAD Studio-, Delphi- en C++Builder-klanten met een actief update-abonnement uit te nodigen om deel te nemen aan bètatests voor de komende release. De 10.4.2 bèta zal een NDA-bèta zijn, waarbij deelnemers onze geheimhoudingsovereenkomst moeten ondertekenen voordat ze kunnen deelnemen aan de bèta. Een van de voordelen van een update-abonnement is dat je al vroeg in de ontwikkelingscyclus kunt deelnemen aan bèta's en feedback kunt geven aan het productmanagement.
Voor 10.5 zijn we van plan om een nieuw doelplatform voor Delphi, macOS ARM (gebaseerd op Apple Silicon CPU's), belangrijk werk rond IDE HighDPI ondersteuning, C++ toolchain uitbreidingen, en vele andere extra functies en kwaliteitsverbeteringen te introduceren. Zie hieronder voor meer details.
RAD Studio Stappenplan Tijdlijn
Voordat we ingaan op de details van de functies waar het ontwikkelteam nu aan werkt of onderzoek naar doet voor de toekomst, kijken we eerst naar de tijdlijn van de komende releases, zoals te zien is op de hoofdslide van de roadmap:

Davids commentaar op 10.4.2 Plannen
Delphi Inzichtcode
Zoals Marco hierboven schreef, hebben we in 10.4.1 veel aandacht besteed aan kwaliteit. Dat gaat door in 10.4.2, met als een van de gebieden waar we veel aan hebben gewerkt de nieuwe Delphi Code Insight (ook wel Delphi LSP genoemd). 10.4.2 zal niet alleen veel fixes en tweaks bevatten, evenals minder vaak gebruikte code insight functies die we niet in de eerste versie hebben opgenomen, maar ook een aantal nieuwe of aanzienlijk verbeterde functies in code completion. We zijn bijvoorbeeld van plan om ctrl-klik op 'inherited' toe te voegen, evenals herwerkte voltooiing in 'uses' clausules, onder andere.
C++ code-inzicht
C++ zet het thema van de voortdurende kwaliteitsverbetering ook voort, met een focus op twee gebieden.
Het meest opvallende voor alle C++-klanten is een volledige herziening van C++ code completion bij gebruik van de Clang-compilers. In 10.3, toen we de upgrade naar C++17 uitvoerden, moesten we de code completion technologie die de IDE gebruikte vervangen. Sinds de introductie hebben we code completion in elke release verbeterd, waarbij we gebruikssituaties hebben aangepakt waarbij specifieke codepatronen of projectconfiguraties problemen met de voltooiing konden veroorzaken.
Voor 10.4.2 hebben we besloten om de code-aanvulling voor C++ volledig te herzien om de ontwikkelaarsproductiviteit te bieden waar klanten naar op zoek zijn. Klanten van C++ zouden moeten merken dat codeaanvulling en navigatie betrouwbaar en goed werken.
We hebben zelfs enkele moeilijkere gevallen aangepakt, zoals het leveren van voltooiing in een headerbestand (veel moeilijker dan in een .cpp bestand)! Het eindresultaat zou alles moeten zijn waar je ons om gevraagd hebt.
C++ Kwaliteit en Uitzonderingsverwerking
De andere belangrijke kwaliteitsfocus voor C++ in 10.4.2 is rond exception handling.
Het afhandelen van uitzonderingen is een complex gebied, waarbij nauwe samenwerking tussen de compiler en RTL nodig is om correct te werken. Er zijn algemene conventies voor uitzonderingen, zoals het nooit toestaan dat een uitzondering een modulegrens overschrijdt (bijvoorbeeld gegooid worden in een DLL maar opgevangen worden in een EXE), maar deze worden niet altijd opgevolgd, soms om goede redenen. In C++ moeten we omgaan met C++ exceptions, OS exceptions en SEH, en niet te vergeten de exception handling van Delphi.
In 10.4.2 hebben we het systeem voor het afhandelen van uitzonderingen grondig herzien. Als we dichter bij de release komen, kijk dan uit naar een blogpost met details over de scenario's die we ondersteunen. Intern zien we momenteel enkele grote verbeteringen!
IDE
Naast de focus op code voltooiing voor beide talen, heeft de IDE nog wat ander werk gepland voor 10.4.2.
In 10.3 introduceerden we de huidige twee thema's, een lichte en donkere stijl (in feite werd een donkere stijl, hoewel aanzienlijk anders, voor het eerst geïntroduceerd in 10.2.3. Het was een van onze populairste functies). Het was een van onze populairste functies). De Light stijl is overwegend lichtblauw. Deze release voegen we een derde stijl toe, een die traditioneel grijs in plaats van blauw gebruikt voor de hoofdkleuren. Beschouw het als een retrostijl voor degenen die houden van hoe de IDE eruit zag rond het tijdperk 2010-XE7, een callback naar de klassieke look. We denken ook dat het handig kan zijn voor mensen die speciale aanpassingen nodig hebben voor hun gezichtsvermogen.
We plannen ook verder kwaliteitswerk rond desktop lay-outs, multi-monitor lay-outs, het ontwerpen van formulieren en soortgelijke gebieden. Dit houdt onder andere in dat je je formulier kunt ontwerpen in de formulierontwerper terwijl je tegelijkertijd de code voor dat formulier open hebt staan. Uit feedback bleek dat dit de meest voorkomende reden was voor het gebruik van de oude undocked designer, die we in 10.4.1 hebben verwijderd, en we zijn blij dat je nu zowel kunt coderen als ontwerpen in een formuliereneenheid met de moderne designer.
Tot slot willen we de Instellingen migrerenom RAD Studio-instellingen van versie naar versie te verplaatsen (zoals van 10.3 naar 10.4) en om uw configuratie beter te bewaren wanneer u overstapt naar een update-release (zoals van 10.4.1 naar 10.4.2). We zijn van plan om specifieke vooraf ingestelde configuraties voor elk scenario toe te voegen en configuratiebestanden op te nemen in aanvulling op de registerinstellingen die vandaag zijn overwogen.
Marco's commentaar op 10.4.2 Plannen
In termen van doelbesturingssystemenWe richten ons momenteel op het verbeteren van de bestaande platformen die worden ondersteund in 10.4.x, en er zijn twee aandachtsgebieden waar we aan werken voor 10.4.2.
De eerste maakt deel uit van onze voortdurende focus op Windows als ons primaire doel. Op het Microsoft-besturingssysteem volgen we nauwgezet de huidige Microsoft-richting om de WinRT API en de traditionele Win API te verenigen, via Project Reunion. Project Reünie (https://github.com/microsoft/ProjectReunion) bestaat uit verschillende technologieën, waarvan WinUI 3, WebView2 en MSIX de eerste zijn.
De WebView2 control is een nieuw Windows platform component dat Edge Chromium insluit. We hebben ondersteuning voor deze functie geleverd in 10.4 met het TEdgeBrowser VCL component.
De tweede bouwsteen wordt de ondersteuning voor het MSIX-verpakkingsformaat dat we plannen voor 10.4.2. MSIX is de opvolger van APPX, een doel dat we momenteel aanbieden als onderdeel van de RAD Studio IDE Desktop Bridge-integratie, en is bedoeld voor Microsoft Store en voor bedrijfsimplementatie.
Een ander gebied van onze verbeterde ondersteuning voor het Windows platform, en in het bijzonder voor VCL applicaties, is de toevoeging van twee nieuwe besturingselementen die onze klanten moeten helpen bij het moderniseren en verbeteren van de UX van hun applicaties. We werken aan nieuwe VCL Native Windows Controls, zodat u uw klanten een modernere UI kunt bieden:
- Een daarvan is een sterk geoptimaliseerde virtuele lijstweergave, waarmee je een groot aantal items kunt weergeven met een flexibele combinatie van tekst en afbeeldingen. Het besturingselement zal losjes gebaseerd zijn op de aanpak van het bestaande besturingselement DBCtrlGrid, maar dan zonder gegevensbron. Het zal het gebruik van Live Bindings ondersteunen.
- Het andere nieuwe VCL component dat we toevoegen is een numerieke invoercontrole, vergelijkbaar met de WinUI NumberBox platformcontrole. Dit besturingselement biedt eenvoudigere en soepelere numerieke invoer, waarbij rekening wordt gehouden met verschillende formaten (gehele getallen, drijvende komma getallen, valutawaarden) en waarbij ook eenvoudige expressies worden geëvalueerd.
Het tweede deel van onze verbeteringen is gericht op de momenteel ondersteunde doelplatformen. We zijn van plan om volledige compatibiliteit te leveren met nieuwe versies van besturingssystemen die zijn uitgebracht door Apple en Google nadat RAD Studio 10.4.1 uitkwam. Hoewel je deze platformen vandaag kunt targeten, zijn er een paar open problemen die we op de juiste manier willen aanpakken (in plaats van via workarounds). Het doel is om volledige ondersteuning te hebben voor:
- iOS 14 en iPadOS 14 (Delphi en C++)
- macOS 11.0 Big Sur (Intel) (Delphi)
- Android 11 (Delphi)
In termen van kwaliteitWe zullen in 10.4.2 (net als in 10.4.1) veel aandacht blijven besteden aan stabiliteit, prestaties en kwaliteit. We zijn van plan om door klanten gerapporteerde problemen en escalaties voor ondersteuning op veel gebieden van het product aan te pakken. Tools en bibliotheken waar we ons in het bijzonder op gaan richten, naast de bibliotheken die eerder door David zijn genoemd, zijn onder andere:
- De Delphi compiler (voor alle platformen) om zijn robuustheid en achterwaartse compatibiliteit te verbeteren, maar een bijzondere en diepe focus op de prestaties van de compiler (en linker) om de compilatietijd voor grote projecten te verminderen en ook de LSP-engine (die de compiler gebruikt om de broncode te analyseren) te versnellen.
- De SOAP Client-bibliotheek samen met het WSDL-importprogramma dat de clientcode genereert die wordt gebruikt om te interfacen met SOAP-servers.
- De Parallel Programming Library (PPL), die een geweldige abstractie biedt van de verschillende platformen en multicore CPU's met threading-mogelijkheden, in termen van taken, futures en parallelle for-lussen.
- De Multi tier webservice-oplossingen maken deel uit van RAD Studio, met verbeteringen aan zowel RAD Server als de oudere DataSnap engine, en algemene verbeteringen aan de HTTP- en REST-clientbibliotheken. We blijven ons ook richten op onze Azure en AWS cloud ondersteuning.
- VCL Styles en HighDPI Styles krijgen extra aandacht, samen met VCL in het algemeen
- Voor de FireMonkey-bibliotheek gaan we door met het verbeteren van de TMemo-componenten (in zowel de platform- als de gestileerde versie), het Metal GPU-bibliotheekstuurprogramma dat in 10.4 is geïntroduceerd en het herwerken van sensorbeheer op Android, om betere ondersteuning te bieden voor een verscheidenheid aan Android-apparaten.
RAD Studio 10,5
Ter referentie is hier nog een keer de belangrijkste dia van het stappenplan:

Davids commentaar op 10.5 Plannen
Gebruikerservaring
We hebben een aantal geweldige nieuwe functies, waar veel klanten naar uitkijken, gepland voor 10.5.
Ten eerste plannen we volledige ondersteuning voor hoge DPI in de IDE. De VCL ondersteunt nu al een paar releases hoge DPI, en de RAD Studio IDE, die voornamelijk gebruik maakt van de VCL, zal nu ook hoge DPI ondersteunen. Dit zorgt ervoor dat het scherp wordt weergegeven op alle moderne schermen met een hoge resolutie, ook als je vensters verplaatst over schermen met verschillende resoluties en schalen.
De VCL formulierontwerper is een van de belangrijkste tools die je gebruikt bij het maken van je app. Het doel van de ontwerper is om snel een UI te bouwen die er ongeveer zo uitziet als wanneer uw app wordt uitgevoerd, in tegenstelling tot UI tools die een UI alleen in tekst beschrijven en geen directe feedback / iteratielus bieden. In 10.5 zijn we van plan om dat element van eruit zien zoals je app eruit zal zien als hij wordt uitgevoerd uit te breiden door VCL stijlondersteuning toe te voegen aan de ontwerper, dus als een van je besturingselementen wordt gestyled, zul je ze ook gestyled zien in de ontwerper.
De FMX formulierontwerper is ook een belangrijk hulpmiddel bij het bouwen van een cross-platform applicatie. We zijn van plan om een aantal van de ontwerptools van de VCL designer over te nemen, zoals uitlijningsgidsen, om ervoor te zorgen dat de designer de productiviteitsfuncties heeft die je nodig hebt.
We zijn ook van plan om ons te richten op de integratie van bronbeheer in de IDE, om uw team te helpen bij de samenwerking. Daarnaast zijn we van plan om een aantal verbeteringen aan te brengen in hoe de IDE wordt gepresenteerd wanneer deze voor het eerst wordt gestart, om degenen die nieuw zijn met Delphi en C++Builder te helpen om aan de slag te gaan.
Tenslotte gebruiken veel klanten Delphi of C++Builder op een speciale buildserver. Samen met broncontrole, testen en soortgelijke praktijken, is het een goede gewoonte om officiële builds te laten plaatsvinden op een specifieke machine of VM. Op dit moment moet u de volledige IDE installeren om RAD voor een build server te installeren - maar dit zou niet nodig moeten zijn, omdat voor het bouwen alleen de commandoregeltools nodig zijn. We plannen een installatiescenario speciaal voor buildservers.
C++Builder
In 10.4.0 hebben we een nieuwe debugger voor C++ Win64 geïntroduceerd. Dit kwam tegemoet aan een veelgehoord verzoek van klanten, vooral omdat we 'formatters' hebben toegevoegd, een manier om eenvoudig de inhoud van STL-containers of een andere datastructuur te evalueren, inclusief die van uzelf. Dit was een compleet nieuwe debugger, geen nieuwe versie van degene die we eerder gebruikten. In 10.5 plannen we een soortgelijke nieuwe vervanging voor een ander kerngereedschap, de linker. Net als de debugger zal deze voor Win64 zijn.
Je zult hier een focus op 64-bit Windows opmerken. Veel klanten gebruiken Clang om Win64 te targeten, en we willen ervoor zorgen dat onze tooling gelijkwaardig of beter is dan de tooling die u misschien gewend bent van de klassieke compiler. Daarnaast beginnen veel mensen uitsluitend naar 64-bit te kijken, waarbij 32-bit apps worden geüpgraded en nieuwe apps alleen 64-bit zijn.
Visual Assist is een geweldige productiviteitsuitbreiding voor Visual C++, die code completion, refactorings en meer biedt. We hebben verschillende manieren onderzocht om het te integreren in C++Builder, en zijn van plan dit te doen in 10.5.
Tenslotte zijn we ook van plan om de Delphi/C++ interop te verbeteren. De mogelijkheid om twee talen te gebruiken is een grote productiviteitsboost en een van de belangrijkste redenen om C++Builder of RAD Studio te gebruiken, en dit is werk om die integratie te polijsten. Het moet zorgen voor een soepelere integratie met RTL-functies.
Delphi Debugger
In 10.4 introduceerden we een geheel nieuwe debugger voor C++ Win64 (hierboven vermeld) gebaseerd op LLDB. Ultimate We streven ernaar om dezelfde debugger te gebruiken op alle platformen - vandaag gebruiken we een mix van verschillende debuggers. De sleutel hiervoor is het toevoegen van een Delphi taalfrontend aan LLDB, waarmee je Delphi syntaxis kunt evalueren in bijvoorbeeld het Evaluate/Modify dialoogvenster. We zijn van plan om het eerste platform dat LLDB met dit nieuwe frontend gebruikt in 10.5 te introduceren.
Marco's commentaar op 10.5 Plannen
Platformen
Wat betreft het Windows platform, zoals eerder vermeld, zijn we van plan om ondersteuning te bieden voor de verschillende technologieën die deel uitmaken van Microsoft Project Reunion. In het bijzonder, in de RAD Studio 10.5 release, kijken we uit naar het integreren van de ondersteuning voor moderne Windows UX via de WinUI 3 bibliotheek. Volgens Microsoft's roadmap voor de bibliotheek, moet het mogelijk worden om de componenten van deze bibliotheek te gebruiken in een native applicatie op basis van de klassieke API, waarbij formulieren en besturingselementen van verschillende typen worden gemengd. De feitelijke details zullen afhangen van wat de bibliotheek zal opleveren in termen van integratie met native applicaties, maar ons huidige plan is om deze bibliotheek te integreren in de VCL met nieuwe specifieke besturingselementen.
Over platformen gesproken, we willen een nieuw doel toevoegen voor Delphi applicaties: een nieuwe compiler voor de ARM-gebaseerde versie van het macOS besturingssysteem met Apple hardware aangedreven door Apple Silicon CPUs. Hoewel je Intel-programma's kunt draaien, is het doel om een native ARM-programma te hebben voor de nieuwe generatie Macs.
Dit wordt een aanzienlijke uitbreiding van Delphi, inclusief een nieuwe compiler, updates voor de runtime-bibliotheek en de verschillende bibliotheken op hoog niveau. We hebben ook plannen om de Delphi taalsyntaxis uit te breiden voor alle platformen en de prestaties van de wiskundeverwerkingscode die de compiler genereert op Windows te verbeteren, waardoor toepassingen sneller worden in numerieke verwerking.
We blijven ook werken aan de algehele kwaliteit van het product en zijn van plan om een paar subsystemen te selecteren waarop we ons willen richten, een beslissing die we nemen door de feedback van klanten op de huidige release en komende updates te evalueren.
Samenvatting
We hebben een aantal grote plannen voor de komende releases van Delphi, C++Builder en RAD Studio! Van spannende veranderingen in code completion voor beide talen, tot een hoge DPI IDE, productiviteitsverbeteringen bij het coderen en ontwerpen, Windows UI en nieuwe VCL-componenten, Delphi debugging, Apple Silicon (M1) ondersteuning voor Delphi, kwaliteitswerk voor de compilers, Delphi en C++ RTL, SOAP, multi-tier en meer, een nieuwe linker voor C++ - de komende releases bevatten echt spannend werk. We kunnen niet wachten om ze naar u te brengen!
Opmerking: Deze plannen en routekaart vertegenwoordigen onze intenties op deze datum, maar onze ontwikkelingsplannen en prioriteiten kunnen veranderen. Dienovereenkomstig kunnen we geen toezeggingen of andere vormen van zekerheid bieden dat we uiteindelijk een of alle van de beschreven producten zullen uitbrengen op het schema of in de volgorde zoals beschreven, of überhaupt. Deze algemene indicaties van ontwikkelingsschema's of "product roadmaps" mogen niet worden geïnterpreteerd of geïnterpreteerd als enige vorm van toezegging en de rechten van onze klanten op upgrades, updates, verbeteringen en andere onderhoudsreleases worden alleen uiteengezet in de toepasselijke softwarelicentieovereenkomst.

