Tcl/Tk 8.5.0 Released
dkf writes "Tcl/Tk 8.5 has been released for all major platforms after 5 years of development. There are many new goodies in it, including significant speedups through an advanced bytecode engine, stronger localization of applications, integrated arbitrary-precision arithmetic, a whole bunch of brand new skinnable widgets, anti-aliased text support on all platforms, and a new code-module management system to make maintenance of installations a snap. More in-depth information about the features of both this release and Tcl/Tk in general is available at the official Tcl/Tk website. Mark Roseman's blog has a first-look review."
From what I've seen, the internals of the Tcl environment (the interpreter, libraries and so on) are pretty solid and nicely done. Unfortunately the Tcl language itself is peculiar, dated and just not very good. I wish the Tcl people would consider a thorough backward-incompatible revamp of the language into something a bit less off-putting.
I am only interested in one thing:
Will the Tk widgets now integrate with the rest of the desktop, in terms of using the same theme settings that other programs use?
I like how Tk has been used as a GUI toolkit by many programming lanugages, and I think that says something good about its design and implementation, but the ugly, unthemeable, and out-of-place looking widgets have always been a thorn in my eye.
Especially because it _did_ work sort of right on proprietary OSes as far as I know.
Please correct me if I got my facts wrong.
No, that would be wxWindows, though recently Qt has been gaining some popularity as well.
I think Gtk is becoming more and more the "de-facto python windowing kit", in particular as Gtk's cross platform support is improving. Well, the GP is probably basing that claim on that Tkinter is included in Python. Which has made it a sort of default for quick-and-dirty GUI hacking, especially cross-platform.
However, you are correct about GTK. While there are other alternatives - WxWidgets and Qt both have nice Python bindings - PyGtk seems to be the nicest and most popular, and for good reason, it is an excellent platform. In fact GObject in C (or even C++, via gtkmm) seems clunky after you see how nicely GObject maps into Python classes in PyGtk. Add to that the fact that all major Linux distros include GNOME by default, and that Ubuntu in particular favors GNOME and Python, and you have quite a lot of people coding in PyGtk.
TCL is still used in some surprising places. A good example is networking equipment, such as Cisco devices, F5 load balancers, and so on. Many of these have TCL capabilities for one reason or another. A good example for the Cisco case would be their load balancing devices. You can create custom monitoring scripts in TCL and import them into the device.
My UID is the product of 2 primes.
Whenever you have one of these overlapping-window GUI front-ends to an OS, developing apps for it is a hard slog, whether it is Windows, GTK, Motif, raw X, whatever. Just like MS came out with their application programmer-friendly Visual Basic as the go-to way of slapping a GUI together, Sun was at one time promoting TCL/TK as the way of slapping a GUI front end on your C program.
In commercial apps, your users worry if your widgets are pretty and Mac people are in a huff about ported software or Java not conforming to UI standard, but for internal apps that just have to get a job done, you often don't care. The projected associated with a high-voltage custom x-ray machine had been a Sun shop since the days Sun 2's came out, and the current app running the x-ray machine is TCL/TK running on a SPARC.
That app makes good use of the Canvas widget to display gray-scale x-ray images and allow you to drag cursors and place measurement markers over those images; apart from that the app is a bunch of buttons to start and stop image collection and motion tracking modes of the x-ray system. I wouldn't have taken note that it was TCL/TK it it were not pointed out, but now that I know, I can see the characteristic widget styles and layouts along with the Canvas that does the x-ray images.
Given that this was all implemented prior to the release of Java, TCL/TK is what you had, and TCL/TK is what you did unless you wanted to take much more time doing the GUI, and our app has aged well (although try hiring someone to change the TCL code), so yes, it is a good question why Sun in effect abandoned that and jumped on the Java bandwagon of their making.