2006-07-12 Roger Johansson: Quoting Brian Theado:
"Having more web browser like navigation has been on the list and nothing has been done towards it. I haven't been spending as much time on tkoutline in the past 1-2 years and it is starting to smolder in the ashes."
Are there so few tcl programmers in the world that it is impossible to engage a few more to help advance this project? Have any tries been made to search for such help? Could we, the users try to find out where tcl programmers hide out and try to interest them in this program which surely can become much more successful with some activity on the programming side. There are a lot of useful suggestions from the users.
This kind of outliner with so good hyperlinking possibilities can be used for jumping between locations inside and outside its own documents as well as out on the web, into other texts, into a wiki and from that wiki back again into tkoutline and anywhere, it is like an aeroplane we can use to fly through the world of information, saving and organising the info we like in outline structured documents.
2006-07-13 Brian Theado: I've never attempted to recruit developers. The main community sites for Tcl/Tk are http://wiki.tcl.tk and Usenet comp.lang.tcl. Tcl is an excellent language and easy to learn. It doesn't have the mindshare or buzz like other languages. Python seems to be yesterday's hot language and Ruby is today's. Java will remain a big deal for quite some time. Tk is the GUI toolkit written for Tcl. Tk is also available for many other languages including Python and Ruby.
In my opinion the strength of tkoutline is the core outliner functionality which is built on top of Tk's text widget. Tree operations such as expanding and collapsing nodes, grouping and ungrouping nodes, and moving and promoting and demoting nodes are all important. The interoutline links and external url links functionality is important. The fact that it is built on the text widget and has line/character based navigation is important.
All of this core outline functionality could be accessed from another language such as Python or Ruby with perhaps a little bit of work. All the outer parts of the application (managing multiple outlines, menus, preferences, etc.) could be written in the non-Tcl language.
I have had an idea in the last week that I'm somewhat motivated to work on that would greatly help making the core functionality really simple to use from another language (or even from another Tcl application that does a better job with editor window and browsing functionality). Currently the outline widget uses the text widget for display and data entry, but there is an actual tree data structure storing the actual data. The tree structure is the true source of the data. When a node is collapsed, the text for the descendent nodes is actually deleted from the text widget. Since I initially wrote tkoutline, the text widget gained functionality that allows text that is present in the widget to be tagged as hidden so that it is not displayed. With this functionality, the outline functionality could be re-written so all the text is always stored in the widget with it disappearing and reappearing via tags instead of actual insertions and deletions. The core outline widget could become a "folding text editor" instead of a tree structure backed text widget. Everything would look the same to the user with a few important exceptions. To the developer wanting to develop and application around it, it would be much simpler. Everything except for the initial creation of the widget would look to the developer like they were using a plain text widget. The file format of saved outline files could become simple indented ascii text. Having this would really make it more likely someone else would incorporate this functionality into another application. One of the important exceptions is that since outlines would be stored as simple indented text files, extra attribute information such as expand/collapse state and any user defined attributes would not persist acrossed opening and closing the file.