Munair wrote:...
Well perhaps I should have said "null reference", but the line is thin and basically another name for the same thing (something that points to something).
...
Yes and no. It depends to what you're trying to apply it to.
References are indeed a different concept that just a 'raw' pointer (called 'unmanaged pointers' in .Net, for example). A pointer is just that, a pointer. A reference, on the other hand, is a more complicated concept and its semantics would depend on the underlying language, not only on whether they are implemented or not (as with pointers).
Munair wrote:
...
So from a FB perspective - the way pointers and references are handled - yes, they are 'different'. Unfortunately, "dim byref" is not the only weirdness. Take for example fixed length strings that are still null-terminated, making them unsuitable for use in UDT's. The language has become a mix of classic QB and C, which doesn't speak in its favour.
Do note that, albeit the FreeBasic's semantic for a 'reference' is simplistic, this doesn't imply that it is the same on other languages. Just wanted to point out that there are differences between the two concepts here (in spite of FreeBasic's a-reference-is-a-pointer-that-can't-be-null approach).
But yes, the dialect is a kind of 'Frankenstein Monster' at the moment. The real problem is simply one of
too much baggage: while still maintaining some degree of 'compatibility' with its root language (QB) is nice, I think that the days of prioritizing compatibility over progress are long gone, and it just became a burden for the devs now (as Munair wisely pointed out on other threads).
EDIT: Bah, I accidentally wrote 'pointers' where I meant 'references' (see underlined text above).