1. Suggested Enhancement(s)

There are probably several ways to handle some of these; I'd like
to see them handled in a reasonably easy-to-manage fashion -
they're features that have existed in connection with other
languages for years, and don't seem to me to be unreasonable to
have with Euphoria, since none of them are actually tied to a
specific language.

(1) Programmatic searching.  Most other languages allow you to
have multiple directories with library definition files, and will
search those directories the same way DOS searches the PATH.
Euphoria doesn't.  It should.

(2) Conditional 'compilation'.  True, Euphoria's not a compiled
language.  True, additional functions probably don't add a lot of
overhead to a bound program, in comparison with ex.exe/exw.exe
(the runtime).  But it's still useful - for example, when
compiling debug versions vs. production versions, or DOS versions
vs Windows versions - or, once the Public Euphoria becomes a
reality, compiling to the public vs. proprietary versions.

(3) Namespaces.  Euphoria allows the shipment of shrouded source.
That means that there will be times when you can't change the
name of a procedure by editing the source of the file that it's
in.  Get two or more with conflicting names (such as with my
frames stuff and Jiri's font stuff, for example), and you're
screwed.  And you can only have cooperative consultation between
developers for so long without it becoming impossible in practice
to manage the situation.  The addition of namespacing puts that
control in the application developer's hands, rather than forcing
all the library developers of the world to try to coordinate
things with each other.  It shouldn't be too difficult, as at
least some of the code is already there - remember that if you
don't declare a variable or function "global", it becomes private
to that file.  This would appear to be an extension of that
capability.  As far as the issue of 'backward compatibility', I
point at C and C++ - when namespaces were added to the standard,
the default, for backward compatibility, was that all symbols
were defined in the default namespace unless explicitly placed
elsewhere, and name references referred to the default namespace
unless another one was explicitly signalled.
--
Jeff Zeitlin
jzeitlin at cyburban.com

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu