event loop various memory GUI service Under DOS, tclsh myscript.tcl > output.txt does what one wants, but it's harder to achieve with [wish]. [Luciano ES] ''Harder? Harder how?'' (please read on...) ---- This topic was raised at [comp.lang.tcl] by [Luciano ES] who asked, boldly: "What do we need [tclsh] for?" His point was that ''[wish] can do everything that [tclsh] can, plus the extra optional features, so why not ditch [tclsh] and keep [wish] only?'' Among the several mentioned reasons, were: * tclsh does not require a graphics server, like X. Also, tclsh uses a lot less resources than wish; * many applications that rely on Tcl/Tk are run on very low-spec hardware; * Tcl makes very frequent use of event loops, which under Tk results in a probably unwelcome blank window being shown, or in [LV]'s words: ''the very act of starting a wish begins by attempting to create and display a toplevel widget''; * ''after processing a script, tclsh exits, while wish hangs around, entering the event loop;'' * ''many applications do not need a GUI at all;'' * ''under windows tclsh has a console associated with it and it's the only way to see the various printf messages your code has under windows;'' It was also noted that the opposite is a lot easier to achieve, i.e. ditch wish and keep tclsh. package require Tk The simple line above will immediately make all Tk functionality available throughout the rest of the program. ---- Someone also added that: ''At a DOS prompt I can say... tclsh myscript.tcl >output.txt ... to capture the output (of practically unlimited size). Using wish for this kind of stuff might be possible but would be more involved IMO.'' The information was confirmed by a notorious Tcl expert, who also said that ''[Tkcon] would require an [exec] at the beginning of that command'' But it still puzzles me: wm withdraw . puts "hi, Mom" exit The script above can be run by wish and produce the same result as tclsh. wish myscript.tcl >output.txt in a DOS prompt produces just the same result as... tclsh myscript.tcl >output.txt I also ran wish myscript.tcl >output.txt from [Tkcon], without the [exec] command, and had exactly the same result (shrug). So, my conclusions so far are: * if I use wish instead of tclsh, I have to use [wm withdraw] . if I don't want any windows, and [exit] because [wish] won't exit automatically like [tclsh]; * [wish] uses up more resources than [tclsh], and that is often not good; * if there is no $DISPLAY environment variable available, [wish] refuses to initialize, but that is hard-coded and I wonder if it could be changed. Note that I don't really want to get rid of tclsh. It is all just for the sake of getting a better grasp of the differences between the two programs.