This is exactly what I like so much with Delphi, just as with C or
I like to know which asm code will be generated.
I like to know how memory is allocated/released.
I do not like to play with a black box, but I enjoy to rely on identified source code (e.g. the Delphi RTL).
I like to know how the hardware will react to my code.
I like to run a profiler and see what is going on here.
I like to know how my software will run on the customer network and database.
When you know how the language and the compiler works, when you know about
the various data structures used and generated by the compiler and the RTL, you
are more efficient with it.
Compilers are just tools.
Computer languages are just abstraction of the hardware.
One of the problems of today's programmers is that most of them do not know
any more what is "under the hood".
Coding is seen as a list of recipes.
It is pretty easy to (ab)use of Intellisense/Resharper, Linq, and whatever the language/IDE is offering to you, and you forget about what will be executed.
Everything is fine on your own computer, but on the customer's side, it does not work as expected.
It just remembers me coding in ZX81 basic... already typing on a black box... good old days doing plenty of things with 768 bytes of free RAM...
You can be a lazy programmer (which is something good, IMHO), and at the
same time know what happens.
In fact, a true lazy programmer needs to know how it works.
Delphi is simple enough to be understood by an average human being like me
(after years of daily efforts), whereas I consider mastering .Net or Java
out of scope of my poor brain.
Object pascal is a abstract enough to allow high-level style of coding (e.g. as I've done with SynProject), and also low-level enough to release the whole hardware potential.