It's good mentioning for "generic paradigm", I would ask if free pascal supporting this style of programming.
I think beginners tend to declare everything as public, in classes, functions, procedures, variables ... etc, this makes me remember the first days of BASIC programming language that everything there is public or global, we had no local data.