[Prev][Next][Index][Thread]

Namespaces, Flexibility & Dylan



Just finished work on a(n intentionally limited) UML->HTML
parser/generator (which I use as a CGI executable).  A problem I had
was UML concepts had the same names as Dylan ones (particularly,
<class>).

This problem was a fruitful one, as it led me to discover how libraries
and modules work as an advanced namespace system.  In my UML-parser
module, I added 'use dylan, rename: { <class> => <dylan-class> };' and,
thereafter, UML and Dylan <class> objects where able to co-exist
peacefully (I needed to use both in my system).

Coming from using C++'s 'namespace' keyword, and Java's 'package'
concept (anyone use the Java ORB and need to specify what Object
(org.omg.CORBA.Object or java.lang.Object) they mean?), this
functionality is simple, easy to use, and revolutionary.

-----

So, I showed the company owner the UML diagrams served from the Dylan
CGI.  She made made some recommendations for changes, which, because I
had made these configurable as run-time parameters, I was able to
implement in 30 seconds, with no down time.

That's another beautiful thing about Dylan:  its flexibility.
Certainly, other programming languages allow seperating
responsibilities between compile- and run-time roles, but in Dylan I
find I can leverage these roles more effectively.

Some happy thoughts of a Dylan programmer.

Sincerely,
Douglas M. Auclair


Sent via Deja.com http://www.deja.com/
Before you buy.