Re: Euphoria vs. other programming languages
- Posted by mattlewis (admin) Mar 09, 2009
- 1474 views
If an identifier appears at line x in file y, you now don't know at all in which line and which file it was defined. In 3.1, you know it comes from a previously parsed symbol.
A previously parsed symbol...from somewhere. Could be anywhere, maybe without any reference to that file, or anything remotely like it. Granted, this is still possible (and is why I mentioned global scope), but less likely, and should at least give the coder a warning in 4.0.
Likewise, there is no way to determine easily where a public symbol is being seen. You have to follow all the chains of "public include" directives that start from the definition file to sort it out. In 3.1, a global symbol was seen from the point where it is defined onwards, period.
As opposed to wondering which files were included and were filling up the global namespace? At least there is a chain of public includes.
I really can't understand what your point is in bringing this up. Are you concerned at determining who can see a particular symbol from the perspective of that symbol? As you mentioned, everyone can see a global symbol. That's a very blunt instrument, and has consequences that make it a lot less useful than it originally sounds.
I guess you're interested in some sort of external packaging mechanism again. I know that you love to add maintenance points, but I've had enough of config files that affect code behavior with java and its endless xml files. Even there, the trend seems to be away from that, and towards code annotations, which at least are done right where the code is.
Further, even though the "global" keyword has been left in, its semantics have changed, to the effect of breaking most complex libraries available. win32lib is perhaps the most obvious example.
I've used Win32Lib with 4.0. So have others. Perhaps the example isn't as obvious as you think.
Need more? There is.
Since you've yet to give any reasons why it's more difficult in 4.0 to determine scope and to find where symbols are defined than with 3.1, yes, I would like to hear more.
Matt