Embarcadero’s annual on line series of webinars is back again !
This time they’ve changed the format to make it a large number of smaller videos, allowing you to dip in and out much more easily.
There is an overall theme for each week.
For more about CodeRage 2019 (including the list of each of the active weeks and how to register) go to Jim’s CodeRage2019 Blog
It’s very common to have integers that are used to count objects. It’s also very common to have integers that are offsets into arrays (or similar structures).
Humans tend to count from 1 to n. In almost all cases when software uses offsets it makes sense to design the offset to run from 0 to n-1. Sometimes it is obvious which applies to a variable or function parameter. Sometimes this starts off being obvious but with the passage of time and the increase in the code complexity it becomes less obvious (even to the original code author). I know because I’ve been there.
There are also cases where it may not be so obvious from the start. Suppose you have a function which is passed the user response to the question “which one in this list of items do you want?”. Does the function return “1” if the user want’s the first one in the list or does it return zero?
I strongly encourage the use of the words “Index” in variable names which are expecting 0 to n-1 values and “Number” in variable names which are expecting 1 to n variables.
Thus you might declare the above function as
if the function returns 1 if the user selects the first item, or
if the function returns 0 if the user selects the first item.
Similarly if you have three things to control stored in an array, you might write:
const int NumberOfWidgets = 3;
and you could have a function somewhere that is declared as
void DoSomethingWithWidget(int WidgetIndex);
This is then immediately clear to everyone that the integer passed must run from 0 to n-1 (ie 0 to 3).
It’s a simple naming convention but it can save you hours when supporting your older (ongoing) code..
Embarcadero currently have an excellent series of webinars running which discuss various ways that the VCL framework supports Windows 10 features. Actually a lot of the content also applies to FireMonkey applications.
For more information go to this summary page
Embarcadero have updated their road map to include Android 64 bit support for their C++ users. It is listed under “version 10.4.x – mid 2020”.
My last posting (22nd July 2019) suggested a short term work around for current C++ Android developers.
There has also been a 12 month extension granted by Android for Embarcadero C++ developers who have already got applications on the Google play store (this does not apply to new applications). Details are given here
Additional information is available here
This is good news for existing developers.
But the really good news is the appearance of the C++ for Android 64 bit in the road map. Embarcadero always restate that the road map is not binding but the reappearance of this product goal is an indication that they have realised this is an essential part of the C++ tool chain and it’s availability is vital to the survival of Embarcadero C++.
Go to the roadmap (as updated August 2019) by clicking here
As in my posting of Posted on 29th May 2019 it seems that Embarcadero have dropped the ability to compile for 64bit Android from the road map completely.
This seems disastrous for all C++ Android / Firemonkey developers.
One of the big names in Embarcadero C++ programming is Remy Lebeau.
He has offered a work around for C++ Android / Firemonkey developers at the following link.
How to get Android 32 bit apps onto google play store
It’s worth pointing out that this is only a short term solution and every C++ Android / Firemonkey developer should still be doing their best to pressurise Embarcadero to reconsider their decision.
Embarcadero have announced that those on subscription upgrade with Architect or higher license for Delphi or RAD studio can now install the FMX for Linux package.
This promises Delphi users the ability to use the Firemonkey framework to write Linux GUI applications and as such is a major new development.
Again it shows the advantage that Embarcadero have when developing products based on their propriety form of pascal (Delphi = Object Pascal). They don’t have to jump through many hoops to get the compiler targeting different operating systems.
Even though RAD studio uses versions of open source (clang) C++ compilers (thus theoretically requiring no “original” development) Embarcadero seem reluctant to develop and sell C++ equivalents to their cutting edge Delphi offerings.
As well as the lack of FMX for Linux using C++ there is also the recent lack of commitment to provide 64 bit C++ support for Android and iOS.
If you are looking at Windows only applications then Embarcadero C++ (VCL or Firemonkey) is still a sound choice. But, in this day and age, how can you be sure that your application will remain in the “Windows only” category?
For more information on FMX for Linux search on line for the webinar of 9th July 2019 “Introduction to FmxLinux – Delphi’s FireMonkey for Linux Solution” presented by Jim McKeeth.
The latest road map for Embarcadero RAD Studio, C++ Builder and Delphi is now available at the link below.
Multi-device Delphi users will be impressed with soon-to-be-with-us options and multi-device C++ users may be less impressed with the failure of the C++ side of multi-device development failing to keep up…..
It’s an interesting read, here’s the link.
Embarcadero Road Map (May 2019)
Embarcadero RAD Studio (C++ and/or Delphi) provides a convenient set of tools for interfacing to many third party web based APIs. These tools are known as “Enterprise Connectors”.
In an effort to publicise these useful technologies Embarcadero are running a series of webinars on some of the more common ones
In May 2019 its the turn of the (disparate) pair: SurveyMonkey and Twilio
Click here for more information
The FireMonkey framework (commonly abbreviated to FMX) allows cross platform development for Windows, MacOS, iOS and Android from the same code base (either Delphi or C++).
A very common question is “when is FireMonkey for Linux coming?”. Embarcadero are regularly asked this and their reply is always along the lines of “we are keeping an eye on it but at present the market place doesn’t make it worth while”.
Developing general purpose tools for Linux is challenging because there are so many different versions of Linux out there.
However one firm ARE promoting FireMonkey for Linux – using Delphi as the supported language.
Interested parties may like to take a look at FMX for Linux
To many this may be obvious. But it’s amazing how many people use the editor that comes with each of their IDEs with the confusion that arises as a consequence of each editor supporting different “advanced” features and/or short cut keys etc.
The Embarcadero IDE editor is a good one. Having got to learn it “inside out” I now use it for all major program writing. For example when working with Freescale microcontroller C code I use the Embarcadero editor for all code creation and only use the Freescale “Codewarrior” IDE editor for quick fixes whilst in the debugger.