Wolf Wejgaard: Yet another programming system? Holon is new in Tcl but is based on over 15 years experience with Holonforth under DOS.
Main features:
See http://holonforth.com/new/holon.html for details. Holon is presently available as a free starpack for Microsoft Windows (MIT license).
This is Holon, handling its own source:
Acknowledgements: Holon is built on Wikit. It started by adding a book-structure (HolonWikit), then the wikit pages turned into program containers for source and comments. The hardwired links are replaced by dynamic links to page titles=names. Comments are edited and saved in Tk format; source is saved unformatted. Some Wikit features remain.
Remarks
Storing source in a database makes sense, particularly if a program consists of a large number of units. (The number of units depends on the size of your definitions. If you don't mind writing procedures that span a printed page or more, you are probably better off with text files and a fancy editor.) I prefer many short definitions. Small procedures are simple to write, simple to read and understand, simple to test, simple to change. And: if I store the units in a database, it is a simple matter to keep track of the multitude and to implement useful features for efficient program development.
Handling source in a database is not new, of course. It is common in OO systems (Smalltalk and others). It is used in the powerful Tcl introspection tools and development systems, which work on the internal database in Tcl. Isn't this general: Every modular program is turned into a database as soon as it is converted to code (interpreted/compiled). I keep wondering: Why is source still handled on text files? Are there any real advantages, or is it a matter of software folklore?
Lars H, 2007-07-15: Community inertia is probably a major factor in this, but I can think of at least three reasons why text files are good:
wej - 2007/07/28 (revised comment): Sorry, but I still don't see why text files are good. But thanks anyway for the additional points of view.
If you are used to text files; if you don't mind the inherent complexity and create beautiful programs anyway, why change? I certainly don't mind, just wanted so present an alternative.
NEM 4Aug07: If you store your routines individually in a database you can also always regain a linear narrative sequence by creating some top-level "contents" routine that links to the others. Typically your main routine will probably do this anyway.