I’ve begun prototyping a desktop app with Tcl and intend to present the idea to some venture capitalists. Neither desktop apps nor Tcl are in vogue and so I want to be prepared to counter any objections to this technology. Below are the pros as I see them, am looking forward to fleshing out plenty of cons I’m sure, but hopefully some more pros as well.
- I originally began writing some code along the same lines on a contract for hire last year, using Java, and want to use an entirely different language to differentiate my effort, for legal reasons
- Whereas the code at present runs as a command line script, it will be necessary to apply a UI, for which Tk will suffice for a prototype, and Tk is tightly integrated with Tcl.
- Since I’m staying away from Java in general, I foresee the “production”, as opposed to prototype, UI being written in C++. Tcl is easily embedded into C++ apps, so the underlying TCL engine will initially be able to be embedded, before porting performance critical sections to C++
I understand a potential con is “Tk UI’s are ugly”, however as stated above, the Tk UI will be for a prototype, and anyway, the Tk is ugly issue has been raised on SO already by yours truly: Why are Tk GUI's considered ugly?
Tk has themed GUIs and has had them for quite a while now. It’s quite easy to make a TK GUI look close to native. TK is also fairly easy on system resources (certainly faster and smaller than Winforms).
The key argument for Tcl is to use it as a scripting and extension mechanism for your application. If you write the application in C++ with a built-in Tcl interpreter and can get what you want from Tk you might well be able to write significant chunks of the application in its own scripting language. This will be quicker and easier than coding a native C++ GUI. However, Tk is not particularly feature-rich, so you want to be comfortable that you can do what you want before committing to it.