@Fibonacci Can FreePascal support syntax like Python's f'string {variable}' or JavaScript's ${variable}for string variable interpolation? Make FreePascal better (great)! 
Unfortunately the forum doesn't send notifications when someone is mentioned in a post, so I'm only now reading this thread.
Good news: I already have this implemented. It's sitting in the
feat-strinterp branch, waiting to be published (or not). It may be available in FPC Unleashed under the INTERPOLATEDSTRINGS modeswitch, or just unleashed mode. I just rebased it to the
devel, so you can merge it yourself without conflicts and play with it

I don't publish everything I write - I'm not even sure if this feature is "worthy enough" to be included in FPC Unleashed. Either way, publishing a feature takes time - documentation, examples, explaining things to people, answering questions, potential bugfixes. And I'd rather write code than deal with people - could really use someone else on the "team" (since currently it's just me

).
Anyway, next to be published is the tuples feature. It's already in the devel branch on GitHub and available for testing. I'll be moving it to main soon and announcing it.
Back to
interpolated strings - in FPC Unleashed the prefix is
$, and it works like this:
var name := 'Fibonacci';
writeln($'Hello, I am {name}');
name := 'a cat';
writeln($'Hello, I am {name}');
for var i := 1 to 5 do writeln($'The value of i is {i}, i*10 is {i*10}');
var pi := 3.14;
writeln($'Pi is {pi}');
writeln($'Pi is {pi:0:2}');
Output:
Hello, I am Fibonacci
Hello, I am a cat
The value of i is 1, i*10 is 10
The value of i is 2, i*10 is 20
The value of i is 3, i*10 is 30
The value of i is 4, i*10 is 40
The value of i is 5, i*10 is 50
Pi is 3.14000000000000010000
Pi is 3.14
Binary size on Win64: ~50 KB.
This is 100% implemented in the compiler -
no Format(), no SysUtils in uses. It just
works out of the box, adding nothing to the binary size.