Over the two decades I’ve come across a lot of Delphi projects.

All of them have one thing in common: even for functionality available in the Delphi libraries, much of that code was self-written.

You even see this in big libraries that have shipped with Delphi bit not originate from the Delphi team. Take Indy: lots of “roll your own” in it.

I’ve made some thoughts about that, and see these main causes with the points below.

What’s your thought on this?

A quick example on the issues with StartsWith, StartsStr and EndsStr:

It helps a lot when you write your own unit tests to set (and verify) expectations on even simple RTL functionality. But writing these is time consuming, and should be the responsibility of the library vendor.

Notes:

I stopped reporting issues like these in QC (quality central) more than a year (the web interface is a dork, and the SOAP API is has a huge security issue: it is http-only, passing EDN credentials – giving access to all your Embarcadero information – over the line in plain text, and there have been no signs of improvement since I reported the security risks in April 2014).

I won’t publish bugs in JIRA quality as long as it is not publicly indexed by Google (like QC is/was).

Many other languages and libraries have good naming guidelines available.

Except for the naming conventions (which are dreadful!) I’ve limited the examples as they are all over the RTL, VCL and FMX frameworks in all Delphi versions. Hence the examples from the Delphi 2007 documentation: more modern Delphi versions have improved, but not far enough, and Delphi 2007 is still in use by lots of Delphi projects.

–jeroen