I would vote for FreeBasic over FreePascal if I'm choosing a C alternative with just like C but friendlier, but you will have choose for yourself a limitted subset of the FreeBasic language, though, this language has so many keywords that make me sick. Making C library binding for FreeBasic also easier than for FreePascal, you just check the language and will immediately see this, how similar to C it is!
I've been monitoring FB since 2005-2006, but didn't like exactly that, their increasing reliance on C. Both the language (many posted pieces are more macro code than actual code, and I was always though that overreliance on macro code demonstrates fallacy of the actual language), and the build environment.
In the past there was only one FB distribution (for say, windows), now there is FB-gcc8 FB-gcc7.x etc etc, all with different problems. Ugh!
We've seen it all before, just check the GNu Pascal link I quoted to 440bx
About begin..end I'm disagree. Do you consider using identation and space like Python is better than curly braces or begin..end? If you think so, I have nothing to said.
IMHO neither. While I prefer begin..end over {} (that's because the human mind is trained to quickly read words, but slows down on symbols, just read normal text, and then math equations and you feel what I mean), I think the core fallacy of both is differentiating between single line and multi line blocks.
If you don't have single lines blocks, you can omit the opening block delimiter for all but the "function/method" block. The result is more regular, and avoids the errors that come from mismanages single vs multi statement blocks.
But backwards compatibility is important. But I still regret that this principle didn't caught on more when Pascal's successor Modula2 came out in +/- 1980
As for Python's solution: I never took that seriously.