I'll tell you about my favorite development system for Tcl. It's an open-source product called TclKit that solves many of my biggest programming problems.
The Deployment Challenge
The challenges I face often have to do with configuration and deployment. Debuggers, editors, and other components of conventional "integrated development environments" don't impassion me the same way; a future installment of "Tcl Counselor" will look at those. Code-slinging programming and debugging rarely occupies much of my time, even though those are the fun tasks. The biggest puzzles I face typically involve working out details of how to install and maintain hundreds of desktop application instances, or how to co-ordinate development by a distributed team of engineers. This is where TclKit comes in handiest.
Think of the normal course of development of a Tcl application: you quickly put together a nice working model expressed as several source code files, plus a few compiled-object extensions, a configuration file or two, and perhaps a database backend. It works flawlessly! You're a success! Now, how do you get it to do the same on any host other than your development workstation?
The traditional answer is with an installation procedure that takes responsibility for locating a usable version of the Tcl interpreter (which itself requires that at least three, and possibly many more, files be in place), situating all source files and configuration specifications where they'll be found, and spinning up a database or other services.
I've mostly given up on that tradition. The usual installation is too fragile to put in the hands of most full-time computer workers, and it's an act of open hostility to inflict it on someone trying to accomplish a task in the real world. It's worse than the most extreme "some assembly required" joke furniture or bicycle makers pull.
Independent developer Jean-Claude Wippler's TclKit offers a different answer. With TclKit, I can
do all my usual Tcl development however I choose. I spread around source files, data files, and everything else in a way that makes sense for my engineering team. TclKit then packages everything about the application into a single file. That single file is compact, portable I can carry it to a variety of different platforms and comprehensive. It's the whole program; there's nothing more to "register" or "configure". If I need to remove or update the program, I can delete or overwrite the one file I no longer need.