Tcl-Tk vs Wx Widgets

(Lajr) on March 4th 2007. Some say Tcl-Tk, being written in C, is in fact nothing but a bunch of C macros. The same can be said about any high-level language programmed in C (Python, Perl, Ruby to name a few). In fact, since C is written in Assembly, we can also say that C is nothing but a bunch of Assembly macros. Assembly is in fact the only programming language that has a direct access to the computer's parts. (VK not true, C is written in C, and it does have direct access to the computer's parts)

This being said, like Tcl/Tk, WxWidgets is a program that enables programmers to code C applications quickly, efficiently with a few keystrokes. Sounds familiar? Thus, Wx Widgets has certain characteristics of Tcl-Tk.

How does WxWidgets scale with Tcl-Tk? Is it easier, harder to code with? Is it faster, more efficient? Any views?

RLH Dunno... I do see the other languages moving away from Tk (tile may or may not help alleviate that) and moving towards wxWidgets.


LV Mar 05, 2007 In general, Tk/Ttk and other X toolkits don't interact trivially. I don't recall anyone doing any bridging work so that one could trivially make use of the various X toolkits. That might be a great thesis project!

VK Title of the page promises a comparision of two approaches to GUI. (widget set, cross-platform-ness, availability to use from other languages, extensibility, megawidgets, ability to create independent distribution). Why it is not here?

escargo - The question is easier to ask than to answer. RLH Yes it is.


Kevin Walzer - wxWidgets is a C++-based toolkit. Bindings for various scripting languages exist for it, including Python but not Tcl. I've looked at wxWidgets several times, but I've always stopped short of coding a project in it (for a Python project, I opted to use Python's Tkinter bindings). wxWidgets is bigger than Tk in terms of the widgets it supports, but it's also less elegant, i.e. it takes more code to do the same thing. For instance, you can't just assign a callback to a button with a "-command" flag--you have to tie the callback to one of numerous event constants, like this example from Python: "self.Bind(wx.EVT_BUTTON, self.OnClick, b)." The analogy in Tk would be binding a proc to fire on "<Button-1"> when a button is pressed, instead of simply calling "-command." wxWidgets does offer a more native appearance than Tk, even with ttk, and nearly every conceivable widget is already built in to the toolkit instead of being an add-on package (as you typically see with Tk). That power, however, comes at the cost of additional coding complexity. I prefer Tk because it sacrifices little power, but offers much greater simplicity.


AEC - See wxTcl.