STEP

Purpose: Discussion of projects dealing with open issues in the Tcl community, their interactions, collection of the various important thoughts and ideas.


The acronym STEP resolves to Some Tcl Enhancing projects. No recursion, sorry.

The motto is: A STEP forward.


I am currently aware of 3 initiatives discussing various projects with the goal of enhancing tcl. These are:

  • WOBBLE, by Jean-Claude Wippler, cross-platform generation of extensions and applications (incubation center for extension writers).
  • The Grand extension catalog, by Mark Diekhans, catalog of extensions with intelligent downloading.
  • Package installation, by Karl Lehenbauer, a low-key project to address the possibilities of package location, creation, dependencies and retrieval.

A rather new project was started by Bryan Oakley on news:comp.lang.tcl , the Official library of extensions.

The primary source of these descriptions (for the first 3 projects) is the Jumbo page [1 ] by Alexandre Ferrieux.

The people on the E.L.M.O mailing list [2 ] discuss these topics too.

AFAIK none of them is heading for a (completely) integrated solution, which is a sad thing , because each provides functionality adding more value to the others.


The original STEP site [3 ] was conceived to remedy this by collecting thoughts in the different areas and presenting them as a coherent whole, with references to the interacting parts.

People might ask whether we really need this infrastructure. Some answers can be found here [4 ].

The main projects STEP currently consists of are ETEN, WOBBLE and SEE.

This http://www.oche.de/~akupries/step/pic/step_over.gif picture shows the basic relationships between them.

  • ETEN is the archive part of the infrastructure. It manages all packages created by the various users, the dependencies between, etc. Another important exported functionality is the ability to search for and retrieve managed packages.
  • WOBBLE is a system taking source packages as input and returning them in compiled form, as binary packages, of course for specific architectures.
  • SEE is the frontend to the above parts seen by the users.
  • And Packages are the things which are used by all of them.
  • We should not forget the users of the system and their different needs.

Synergy effects:

  • The existence of a system like WOBBLE enhances the value of the archive, as it is made easier for users without an development system to use the vast functionality stored in it.
  • An archive system like ETEN on the other hand enhances the compilation service by giving it a steady supply of software to compile. The service is not restricted to compilation-on-demand anymore, but can be run in batch-mode.
  • A smart editor environment is of course useful by itself as it enhances the productivity of developers (at least it should do so). Nevertheless, ETEN and WOBBLE enhance its value. WOBBLE f.e. enable developers restricted to one architecture (or a small of architectures) to compile their product for a variety of systems, enhancing their ability to produce portable code. The archive on the other hand is a supply of functionality which was written at other places, obviating the need to write them here again.

A general remark about interfaces and technology:

  • Although the whole site is written under the title of STEP and with the goal to enhance the infrastructure for tcl it should be kept in mind that the technology supporting such a system could be used by other communities as well, not only us. Because of this I recommend that we should strive towards language-neutral specifications and interfaces, and not tcl-centric ones.
  • I have to tone that down a bit: A tcl-based interface definition is no problem as long as it is written with an upgrade path to a language-neutral specification in mind. The data-as-code pattern for structuring information comes to mind. Just changing the definitions of the data-defining procedures allows us to write converters for any other possible structuring data-format.

-- AK