Version 64 of XotclIDE

Updated 2003-12-13 12:53:32

What: XotclIDE

Where: http://www.xdobry.de/xotclide

Description: Integrated interactive development environment for the XOTcl extension (but supports also regular Tcl programs). Provides a Smalltalk like graphical programming environment (ENVY, Squeak, Visual Works) with graphical introspection and editing of a running system. It supports also normal Tcl procs and packages. State can be saved in the form of Tcl packages. Can optionally use a sql-based version control system (MySQL, PostgreSQL, Tclodbc, SQLite). Currently at 0.56 (as of 13 Dec 2003).

IDE supports following development tasks:

  1. coding, editing (with syntax hightlighting)
  2. code completion
  3. oo-system introspection and browsing
  4. global variables inspector
  5. syntax checker for (tcl and xotcl) Static Syntax Analysis
  6. debugging (partially) and full with atkdebugger
  7. tracking objects method calls
  8. Coverage Analysis of objects methods calls
  9. configuration (also versioned)
  10. deploying (generation of distribution directories or use-ready tclkit or starkit files directly from IDE)
  11. version control (edition, versions, versions comparing)
  12. testing (Extreme Programming test framework based on SUnit)
  13. open plug in architecture
  14. documentation (html doc generator)

Updated: 12/2003.

Contact: mailto:[email protected] (Artur Trzewik)

XOTclIDE is also available [L1 ] as wrapped TclKit and StarKit for Windows and Linux Intel. You can run XOTcl on Windows from one file without any installation or another requirements.


Here is the place for your comments for XOTclIDE

TV Nice app, I quickly went over it and would mostly be interested to try out tcl programs, I'm not such a fan of the OO stuf where things are wrapped and classed and all (though I did years of Objective C work), I didn't see an easy way, let's say, to set up a tcl program and inspect it, though it seems pretty extensive in what it does.

Artur Trzewik 11.04.2003 - There are special script "START.tcl" in XOTclIDE that can be used to start XOTclIDE from any tcl application. After this you can use XOTclIDE to inspect your application. Up from version 0.42 you can use a wizard to import tcl procs into XOTclIDE from Tcl-Interpreter. There are also a global variables inspector. Man can also starts tcl scripts from XOTclIDE or use project importing function.

DP I am sure this is the kind of ingenious application needed to improve programming productivity. Many thanks for making it available!! Unfortunatley I have no idea how to use it. I am a TCL programmer and wanted to edit, develop and debug TCL/XOTCL code efficently. I do not know anything about OO or XOTCL and read all the manuals on XOTclIDE I could find. So far I have failed to figure out how to even start editing my existing TCL scripts. Do you have an suggestions or an idiot's guide I could follow to get me going or is this application too advanced for a novice user??

JMN I too am having difficulty working out what to do with this program. The tutorial at (Artur Trzewik - see User Guide) looked like a good place to start, but when I tried to enter a speed parameter, wish crashes saying "Tcl_AppendStringsToObj called with shared object". I managed to get a bit further by not entering a parameter, so as to accept the default - but RS's demo is more than a little heavy going on my CPUs (dual 400MHZ CPU machine) - trying to click on dialogs whilst that train is running is like wading through mud. .. I'm running XOTclIDE from within a tclkit, so I'll try unwrapping it and see how it goes.

All that aside - I feel that something is missing in the way of a high-level explanation of this IDE. I come to this program with the simpleminded notion of opening and closing text-files as the way to develop - so I guess what I'm missing is a basic overview of how all this class browsing relates to the files on disk - and indeed whether I can even use it on applications that aren't entirely XOTcl based...

Artur Trzewik 01.09.2003 - Newly released version 0.50 of XOTclIDE has a new improved "User Guide" (also as PDF). The "User Guide" contains a tuturial (section Getting Started) that explains how to save and reload components for regular Tcl programmers and how they are related with tcl packages with many examples. There is also a new section that describes the importing of Tcl projects.

I believe that the main problem programmers might have with XOTclIDE is that it uses a different development paradigm: an IDE that is not a File or Script Editor. It does not manage Files or Scripts, but works in an interactive mode with a Tcl interpreter.

The normal development steps in XOTclIDE are

  1. Start IDE
  2. Load sources into interpreter (per source or package require). IDE recognize structure of sources and build components. (Component is quite equal to Tcl package)
  3. Change interpreter state by deleting, modifying, and creating tcl procedures
  4. Store interpreter state (all defined procedures) as tcl package or in version control system

Indeed, the developer does not need to care how components are stored on file system or into sql repository and do not operate directly on files.

XOTclIDE is also not the right tool to manage short Tcl scripts (with no defined procedures). The really power of it can be used if your projects are:

  • application more that 10000 lines of code
  • more than one developer
  • need for developing documentation tool
  • long maintenance (patches and improvments)
  • need for version control

Although there are also features that allow very comfortable evalution of short tcl scripts (expressions). There are also Plug-In "Script Editor" that is ideal to programm short scripts and supports also Syntax Checking, Code Completion and directly Evaluation or Debugging.

escargo 18 Jul 2003 - There is a fundamental semantic gap between software development using an editor (like emacs) and using a full-up IDE like XotclIDE. There is a much different philosophy, which requires much different thought and actions. Part of this stems from a more Smalltalk view of development.

"I mean, source code in files. How quaint. How 70's." (Kent Beck, Smalltalk Solutions'99 speaking about Java.)

If you are not already familiar with developing in such an all-encompassing IDE, retraining does seem to be necessary. I have downloaded Squeak Smalltalk several times over the years, but I have just never gotten into programming with it (not because of the language, which is as dead simple as Tcl in many ways).


Here is the place for your suggestions and wish-list items for XOTclIDE

escargo 10 Mar 2003 - There are a couple of major features that are of interest to me since the parallel with the Smalltalk browsers seems to be a key differentiator of XotclIDE from other Tcl object systems.

  1. Refactoring Browser[L2 ]
  2. SUnit work alike[L3 ] (maybe covered above)

(You do say there is a "test framework" but it would be nice to know how it compares with SUnit.)

Artur Trzewik (11 Mar 2003)

answer 1) XOTclIDE contains Tcl/XOTcl parser that can create syntax trees. They are used for syntax highlighting and the syntax checker in XOTclIDE. The syntax checker is very similar to smallint. There is no refactoring browser with complex functions as moving methods in class hierarchy or manipulate class hierarchies. Some of refactoring functions are integrated directly in Component and Class Browsers. There are: searching after text, methods sender and methods implementors (in class, component and global contex), copying and moving classes/object in components. I know the smalltalk refactoring browser but I have not used it often and have no big experience with it. Another nice thing would be OO-Metrics (statistics about code distribution in OO-Structures) also with time aspect taken from version control (It can be simply implemented in XOTclIDE). It can be very useful to learn about the code stucture and maturity without analysis of all sources.

answer 2) Indeed the Test Framework in XOTclIDE is very similar (almost equal) to SUnit. There are small differences. First XOTclIDE makes no difference between run time errors and asserts failures (The difference can be noticed in the error report). The test methods are also invoked in alphabetical order.

escargo 2 Sep 2003 - I had a late night thought: Add a reaper function to XOTclIDE (something like wish-reaper or wiki-reaper. Then people running XOTclIDE would be able to use it to download code from this wiki (and potentially other wikis, I suppose) to try or import into the XOTclIDE environment. Potentially, you could even use a wiki as an exporting and importing source.

Artur Trzewik 3 Sep 2003 - I can image 2 kind of it. The first one were simple "wiki in" function that load code from wiki address. It could be used in "Workspace" or any XOTclIDE edit area. (Just better way than copy and paste.)

The another one were saving and loading XOTclIDE components on Wiki (Use Wiki as Repository). The Wiki content is often both computer programs and text. I think, code repository on wiki would be not appropriate usage of it. It can be difficult to read so saved components and most users use wiki to for reading. It have also no important functions as Version Control.

The idea of having central code repository is not so bad. XOTclIDE use mysql as code repository that can be accessed also per internet. One disadvantage of it now is that it is 2 layer fat client. That is clients invoke (access mysql) sql itself. It would be not very robust and secure because with small SQL-Statmants one could destroy all repository and it is not possible only with SQL grants to ensure right authorization (solution must be only read access for most users). There should be 3 layer architecture. It would better work than CVS because it has not check-outs and it better for agile development. It were big work and now XOTclIDE version control is less used to be stable for it so CVS systems with internet interface are the best one now. The usage of XOTclIDE is to small to afford such public internet repository.

escargo 3 Sep 2003 - When I suggested using a wiki for export, I did not mean as an alternative for configuration control, only as a way of getting code out of the normal repository to make it accessible externally. While normally a wiki is used for human reading and writing, it can be used for other purposes. I agree that, in general, it is not appropriate for a code repository. (And many wiki implementations do have version control. The fact that ours appears not to is not a major problem.)

Artur Trzewik 23 Sep 2003 - Version 0.51 has wiki reaper as additional plug in. After activating of this plug in ("Wiki Reaper") every editor have new additional menu (Edit->Wiki In) that can be used to recieve tcl code from this wiki. see wish-reaper that code I have reused.


There are many small programing tcl tools that can be easy integrated into XOTclIDE as plug ins. I think here about something like tkinspect, sql-table viewer. Please write here if you have another candidates.

escargo 29 Sep 2003 - I would be in favor of some documentation aids, ones that would help make Tcl code conform to the Tcl Style Guide.

I could also see a little one based on my own recent experience: A function that would wrap a code selection with if 0 { (and then remove it on command later); this would have been very useful when I was doing some experimental coding today.

Artur Trzewik 11.10.2003 - XOTclIDE has integraded version control system. Indeed man do not need uncomment or if 0 { code areas to set somme lines of code off for short time. Just delete it and than you want to reactivate it you can get to last version by menu method->version control->load previous. Consider in XOTclIDE version control every method/proc body have their own version (edition). It works better then cvs like version control systems and prevent code from uncommented code rubish. Do not fear about losing code was the first lesson I have learned by using smalltalk version control system (ENVY). Everything you type and accept to interpreter stay in version control you do not even need to ask for (check in)


See also XOTcl, IDE.


Category Application | Category Dev. Tools