May 2017 Roadmap Commentary from Product Management

Posted by on in Blogs

After the 10.2 Tokyo release that introduced Delphi for Linux, we launched our annual developer survey. The survey ran for a couple of weeks and ended at the end of April. Participation in our survey was exceptional (50% higher participation than in the past), providing lots of invaluable feedback to the product management team. We’d like to thank everyone who took the time to participate in our survey. The survey results were very helpful for finalizing our roadmap plans.

 

We just published the May 2017 Delphi, C++Builder and RAD Studio roadmap which we’re really excited about. In our roadmap, you can find the key features that we planned for calendar year 2017/2018. The plans are aligned with Embarcadero’s fiscal year which starts April 2017 and ends in March 2018. We generally plan to update our roadmap every 6 months.

 

We wanted to take this opportunity to share with you more details on several key focus areas outlined in our updated roadmap. 

 

 

More Details from Sarina

Sarina focuses on FireMonkey, the components libraries UX and styles,

RAD Server, the installation experience, plus demos and documentation

 

FireMonkey Native Controls Support on Android  

We currently support pixel perfect, bitmap based control rendering for all of our UI controls across all four supported platforms, in addition to native control rendering for key text input and list controls on iOS and Windows. As part of our roadmap, we plan on expanding our native user interface control support to Android. We are looking to do this in stages, starting with Z-Order support, followed by native controls on Android, focusing on the same key text input and list controls that we have native presentation support for today on iOS and Windows. This provides a lot of flexibility as it allows developers to choose between Styled and Platform control types on a per control basis for controls that include both control types, while still being able to leverage custom FireMonkey styles in multi-device applications.

We plan to introduce additional templates and design elements to aid the design process for FMX applications. We will collaborate with our component vendors in this space to create a richer portfolio of styles and features to make FMX the perfect choice for fast application development.

 

RAD Server Enhancements

If you’re not familiar with RAD Server yet, I’d encourage you to have a look. RAD Server is our turn-key application foundation for rapidly building and deploying services based applications (self-hosted PaaS). RAD Server enables developers to quickly build new application back-ends or migrate existing Delphi or C++ client/server business logic to a modern services based architecture that is open, stateless, secure and scalable. In the 10.2 Tokyo release, we added multi-tenancy support to RAD Server and the ability to deploy your solution to both Windows and Linux servers. This is a game changer for many of our ISV customers who can now create more flexible and efficient deployments for their customer base.

We have plans to deliver ActiveDirectory support for RAD Server and AD synchronization for accounts and Kerberos authentication for clients along with RAD Server support for AngularJS clients. Something else I am really excited about are the RAD Server project templates for several key industries that we are working on. Industry templates are designed to provide you with a great starting point for building your own RAD Server solution. Stay tuned for more info on that in the future.




More Details from Marco

Marco focuses on the Delphi language and RTL, the VCL library and Windows integration, all things database and Web oriented

 

Delphi Language: New Features and macOS Focus

Over the next 12 months we are planning to release a new round of features for the Delphi language, particularly focused around the addition of nullable types to the type system, but also improvements on records initialization and finalization. We are also evaluating some “syntax sugar” enhancements, that is smaller improvements not adding much power to the language but allowing developers to write less or cleaner code.

 

The other area of development will be around the macOS compiler, with the goal of moving to native 64bit support for that platform (most likely leveraging shared technology with the recently released Linux 64bit compiler).

 

Code optimization is also very dear to our customers and will be another focus area for the Delphi compiler.

 

VCL and Windows

The VCL library has been growing and it is finding a place in the modern Windows 10 ecosystem, thanks to styling, new WinRT-like controls, and platform integration including the support for the Windows Desktop Bridge. Over the next year, the plan is to continue in that same direction, exposing more native WinRT APIs, providing additional WinRT-like VCL controls, improving VCL support for modern hardware (like HighDPI screens), and keeping up with the platform evolution in terms of APIs and user experience.

 

All Things Database and Web Oriented

In the database area, the official roadmap doesn’t mention the work we are expecting to do to keep FireDAC drivers up to date with the various RDBMS, since that along with consolidation and improvements to the core technology is part of the expected work. We are planning maintenance updates to the  recent HTML and REST client libraries, along with significant fixes around DataSnap. Most new development is likely to appear in RAD Server (EMS), but we are not forgetting our core infrastructure -- which was just recently ported to Linux in the 10.2 Tokyo release.

 

We have some exciting plans to introduce new Enterprise Application connectivity adapters that will make connectivity from RAD Studio to many applications, such as Salesforce and Netsuite, as easy as working with the existing FireDAC technology. This will give our users unique accelerators for even faster and broader application development.

 

Further we are working to expand web development options that are fast and robust, so stay tuned.



More Details from David

David focuses on the C++ language, the debugger, and IDE and user experience.

 

C++ Builder

C++Builder has some very unique and powerful tooling, especially through the VCL and FMX frameworks, which are better in many areas than other options in the market. Our language extensions further differentiate it, even compared to strong products such as Visual Studio.

 

The first key new capability we plan to deliver this year is C++ for Linux Server. This will make Linux deployments for new and existing server or console apps seamless.

 

Other key focus areas for C++Builder include:

  • Bring our language support to C++17. We are addressing this by upgrading the version of Clang we extend, and plan to keep this up to date as Clang evolves.

  • Make it easy to work with the larger C++ ecosystem. Here, we want to add support for CMake, both to recognise our compilers and some level of in-IDE support. We also want to ensure that a number of popular C++ libraries can be easily brought into projects and used with C++Builder.

  • Improve the IDE tooling.  This addresses areas such as code completion, refactoring, and so forth.

 

10.2 had some fantastic improvements in compiler quality, and you can expect ongoing work. This also includes areas such as Delphi / C++ compatibility, where we have a focus on ensuring the interaction layer works as a C++ developer would expect.

 

You may note that macOS 64 is listed for Delphi, not C++.  Don’t worry: this does not mean that we are not planning macOS 64 support for C++. We are considering whether to implement with our existing or new upgraded C++ toolchains, and Delphi’s support will enable us to deliver C++ support afterwards.

 

Debugger

In 10.2, we delivered several key quality improvements addressing customer issues, especially on Win64, iOS and Android, and that will continue. We also plan quality improvements for Linux Server.

 

We have several different debugger backends on various platforms, and as an ongoing process are working towards consolidating them towards one, LLDB. This provides a number of benefits, not least of which is that a single debugger codebase will result in debugger features and bug fixes being available on multiple platforms much more quickly.

 

IDE

The IDE is one of the most important parts of RAD Studio, because it is where all other parts of it are presented and through which are interacted with. One personal drive of mine is to make significant quality and feature improvements here and you can look forward to some great things over the next year.

 

One example is adding a dark theme, something many users have requested. Many tools, including Photoshop and other IDEs, have a ‘dark’ theme for nighttime use. Ours will be easily toggleable on and off.

 

Other areas we are looking at include component icons, with an eye towards consistent styling, clarity, and recognisability; overall IDE tidiness and layout; overall UX, both for ease of use and ease of seeing data; quality, for code completion and related items; and new features.

 

Note: These plans and roadmap represent our intentions as of this date, but our development plans and priorities are subject to change. Accordingly, we can’t offer any commitments or other forms of assurance that we’ll ultimately release any or all of the described products on the schedule or in the order described, or at all. These general indications of development schedules or “product roadmaps” should not be interpreted or construed as any form of a commitment, and our customers’ rights to upgrades, updates, enhancements and other maintenance releases will be set forth only in the applicable software license agreement.

 



About
Gold User, Rank: 5, Points: 558
Senior Product Manager, RAD Studio

Comments

  • MassimoM
    MassimoM Monday, 22 May 2017

    C++ Builder. When you're programming, you need to find the body of a function. In the latest IDE you find ONLY the declaration, in the include file (.h). I think this function is a must!
    It is planned?

  • Thomas Jourdan
    Thomas Jourdan Friday, 19 May 2017

    Hi there! Have you seen Delphi IDE Colorizer (https://github.com/RRUZ/Delphi-IDE-Colorizer) yet? No need for you guys to waste time on a special "dark theme"... ;-)

  • Lena I2199
    Lena I2199 Thursday, 18 May 2017

    Hi. When we can create C++ services for Android in C++ Builder? Thanks.

  • Zack
    Zack Thursday, 18 May 2017

    David H - I think you're spot on.....I got away from Delphi around version 6 and moved to .net via C# and never looked back. I take that back, I looked back a few years ago during Xamarin mess I was experiencing. I felt like an Alpha tester - stuff was always broken with no ETA for a fix. So I stumbled back upon Delphi. Visual Studio is my "Daily Driver" and I'm very productive in the C# language for my day-to-day things. However when I do mobile development and need a quick app, I'm much, much quicker designing in RAD Studio. Just drag a couple things on the form, and done. I still write my backend stuff in C#, but love that Delphi natively compiles my frontend work down for all the mobiles and it just works. Quick and easy.

  • David Harper
    David Harper Friday, 19 May 2017

    Hi Zack, seems we have the same approach: FMX on the front-end, C# on the server.

    FMX is great, with huge potential, just wish Embarcadero would inject some serious effort into modernizing Object Pascal. I mean the enumerators feel like C# 1.0, lambdas are so verbose I don't want to use them. Everything is so verbose.

    Yup, Xamarin was painful back in the day. But with Microsoft taking over, making it free, converging around Xamarin Forms/Uwp, VS for Mac, .Net Standard, .NET Core, Roylyn, Xamarin.Mac, Xamarin for Linux, within a year it will be a compelling option. C# just keeps getting better and better.

    No matter how good FMX is, at the end of the day we write code; the language is critical to developer happiness and productivity. A better language also results in better libraries and a more vibrant community.

  • David Harper
    David Harper Thursday, 18 May 2017

    Looks great, but please prioritize language improvements to Delphi.

    I was attracted back primarily because of FMX. Delphi has a certain elegance, but once I got stuck in, I found it painful compared to C#/Ruby/Kotlin/etc.

    It's missing record destructors, class operator overloading, non-COM related interfaces (proper abstractions). Verbosity needs to be reduced (i.e. concise lambdas, expression methods/properties, a yield statement, tenary operator, better implementation of IEnumerable, inline variable declarations esp. on loops etc.), support for modern paradigms (tuples, pattern matching, etc.), and so on.

    FMX drew me back, Delphi is driving me away - it's too rigid, not fluid, too verbose, less expressive, and generally harder to do things.

    This is a nice post on proposed Delphi language improvements:

    https://www.finalbuilder.com/resources/blogs/postid/750/delphi-language-enhancements

    Oxygene is another nice example of advancing the language.

    Thanks for the great work, but please improve Delphi ASAP.

  • David B4407
    David B4407 Tuesday, 23 May 2017

    I agree entirely. Delphi is very capable in a wide range of use cases, can we now please have a focus on making it faster and easier to use by improving the language itself. Succinct, easy to write and easy to read code is critical, as is being able to abstract code in a wide range of ways using more powerful interfaces, generics, etc. Vincent's list is a good starting point.

  • kamiko
    kamiko Saturday, 20 May 2017

    i agree to this: please prioritize language improvements to Delphi.

    i find it also painful against c++:
    missing structure inheritance and virtual functions without VMT
    ( TQuad = record(Trgb) ...
    and no, for bitmaps and so on i can't use classes, that must be records);
    missing preprocessor (no it isn't unstructured, but it helps in readability and performance, e.g.
    #define CHK_EQUAL(a,b) \
    __log( ##a + " is not equal + ##b + " in line " + IntToStr(__line__) + " " + __file__ + " " + getDllName());
    CHK_EQUAL(v,1024);CHK_EQUAL(z,"ok");
    );
    missing multi-class inheritance
    ( TA= class(Tb,Tc) );

    it would often be helpful to outsource the interface-parts like header files in c
    ( f.e.
    mylist.hpas:
    TMyItem = class;
    TMyList = class
    function getItem(index:integer):TMyItem;
    ...
    end;
    TmyItem= class
    parent: Tmylist;
    ...
    so we can split big implementations in mylist.pas and myitem.pas without circular references in "using" each other);
    and please allow inheritance of frames and forms also without a .frm-file for the cases design is always the same, but we need different implementations.

  • Steve J
    Steve J Wednesday, 17 May 2017

    Good.
    But you should focus on something that is more and more asked by Apple: Watch support. This becomes a requirement to put iOS apps to the front store.
    iOS should be more supported. When Apple releases a new SDK version (Xcode), Embarcadero should catch up within a week. You can't leave us without iOS development solutions for weeks, or months.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: