Yes, it is a very “strictly typed” language. You are forced to do type conversions explicitly. The most differences to C++ are:
- All code for a class in in a single “unit” file. The declaration and the implementation… No .h and .cpp separation.
- No garbage collection. You allocate it, you dispose it.
- “String” is a native data type. Ok, internally its a pointer, but the compiler hides that syntactically.
- Execution does not fall through “cases”. So no extra break is required for each block.
- A function does not end once the result is assigned. The “result” is treated like a local variable and can be assigned over and over.
- Delphi offers RTTI (RunTime Type Information) for its objects. So you can evaluate all kind of class and instance information.
- There is no preprocessor in any form. (The only thing that I miss). Delphi does not know the concept of macros, unless you count inline-functions as “macros”
- Delphi uses more keywords than single literals. Example: “begin” and “end” instead of “{” and “}”
There is probably more, but those are the main things that come to my mind…