A comment from a Nov 2003 'state of the union' report [http://freedesktop.org/~jg/roadmap.html] by Jim Gettys (a creator of [X11]): ''"Another obsolete toolkit, but often used with the [TCL] scripting language, is the [Tk] toolkit. It, however, at least preserved some of the original ideas of Joel Bartlett's ezd's program canvas to have been adopted by other toolkits, including [GTK]+. It's most visible application has been the "make xconfig" program used for configuring [Linux] prior to Linux 2.6."'' In what ways is he right? ''According to my dictionary, one definition of obsolete is "outmoded in design, style or construction". In that regard I'd say he is correct. Tk does seem to be outmoded in design or style, perhaps. But even that point is arguable.'' In what ways is he wrong? ''Another definition of obsolete is "no longer in use", which is very far from the truth'' What's needed to change such a perception? Is Tk now a niche toolkit, and if so, what is that niche? ---- [davidw]: Not being content with idle speculation, I decided to go to the source and ask Jim himself. He had this to say: "I revised the document a day or two ago and classify it as moribund, rather than obsolete, the same category I put [Motif] in. I don't have much time to spend in debate. My issues are: * lack of theming support, so TK apps don't integrate well in the new desktop environment * lack of playing good citizens with the new standards that go beyond basic ICCCM support * full I18N and localization support (though I could be wrong), and good layout for Indic and arabic sorts of languages * lack of new visible applications getting developed. It just isn't attracting new developers, that I can see. Just because something isn't going forward, doesn't mean that tk isn't useful to people. I also note existing widespread apps being converted from Tk to other things: e.g. the Linux configuration program." I didn't want to stir up a debate with him, and already corrected him about Tcl's i18n features (although he's right about [bidi]), so please don't heckle him. He was nice enough to take the time to answer me, and gave me permission to post these comments. ---- Jim Gettys is an X guy, and in that space (ignoring [windows] and mac), Tk has just about completely fallen off the map. Most everyone uses GTK or [Qt]. - davidw ---- I used to be a Tk fan, but meanwhile I've tossed Tk for good. Using [Gnocl] now. I held high Tk for a long time but seeing how nice Gtk works (and what nice widgets it has -- a multi-column tree is not that easy to get with Tk and the canvas is almost copied from Tk), it gets tough. But again, '''Tcl''' with Gtk is still going strong. What a beauty, writing a complex feature-rich app in less than 1000 lines with a Gtk GUI in Tcl in a few days. Do that with Gtk in C. Err, yes. Tk has fallen off the map. And rightly so. Tk's time's over. Nothing wrong with that as long as Tcl is there. ---- [LES]: Bah! [X] has been utterly obsolete for 10 years or so. The *nix world only uses it for lack of a better option. As soon as a (really) good graphical environment for *nix arises, [X] will be thrown away so quickly we'll barely have time to back up our $HOME directories. ---- [SS]: You are right, for [X] there is not better option for now, but there is for Tk: Gtk, Qt, [wxWidgets], and so on, so people don't use Tk just as you imagine they'll throw away [X]. Tk got a lot of stuff right when it appeared, but now is time to update (very hard), or to use a modern toolkit as front-end, like Tk does for win32. Note that [Gtk] is quite good for the purpose because it has a canvas widget. And about the idea that the only problem with Tk is the fact that it looks like [Motif], I think there are more problems than that: 1) too few widgets, 2) feel in general is more row, 3) you can't use it from [C] directly, that turns to be you can't write bindings for other scripting languages without to open a Tcl interpreter. My feeling is that the part to take from Tk is the API, for all the rest there is already opensource code waiting to work as modern front-end without to cost hours to the Tcl comunity. ---- [LV] While it is true that, from a [C] or [C++] programmer's point of view, more code is being written using gtk/kde toolkits, what about from a scripting language point of view - what scripting language / alternative windowing toolkit has more code being written? Then, on top of that, add cross platform to the criteria. Is there a language and windowing toolkit which is used in more cross platform applications than some language and tk? ---- [davidw]: LV, [Python] has both [Tkinter] and [wxWidgets]. Tkinter is included in the Python distribution, so it's still pretty popular, but wxWindows appears to be gaining ground rapidly. Getting the native look/feel on linux, mac and windows is very attractive. ---- [FW]: IMO, practically the sole reason the casual ''user'' of Tk on X would perceive it as outdated is because it looks like Motif, which does have a stigma. There's the style part. ---- [PWQ] 23/11/03: What ever happened to adding transparency to the core? IE when can you type: entry .e -background {} At the time there was a large body of users that slated the lack of transparency for the reluctance of people to use Tk. IMO the specifing and handling of [options] is another arcane feature. [DKF]: What I don't see (with a few exceptions) are people that are using Tk for their business also coughing up some money to help pay for development of Tk. They're instead relying on the free time of people who are often rather busy with other things. They're entitled to do that, but it doesn't help secure their investment into the future. And the people who know how Tk works will continue doing other things for a large fraction of their time to help pay the bills... ---- ''Rumors of Tk's demise are greatly exaggerated...'' ---- [davidw]: I think what I still really like about Tk is the simplicity and elegance that pervade the Tcl way of doing things. Do the common thing quickly and easily, and then add options if you want to do something fancy. I think that's a pretty smart way of doing things, and it involves a genuinely different approach than just ugly copies of C API's... procs/functions with 12 different arguments that must be filled in. ---- 2003-11-25 [VI] I am a hardware engr who was a software engr and use Tcl extensively. In the EDA Tool world, Tcl is just catching up. Every single vendor is switching to be Tcl based, and it's vendor neutral. Both Synopsys and Cadence (arch-enemies in everything else) use Tcl as the base for everything (examples are Design Compiler from Synopsys and NC Verilog from Cadence, vsim from Mentor Graphics). Some have always been that way and some are new converts. Tcl is in my world to stay - at least for the next 10 years... ---- Tcl, or the Tk toolkit, or both? - davidw ---- 2002-11-26 [VI] DC (which is short for design compiler, and primetime, which is the static analysis tool both from synopsys) use only Tcl. NC verilog (which stands for native compiled verilog from cadence) uses both Tcl and Tk (as part of ncsim -gui). vsim AFAIK always used tcl and Tk. Xilinx has started shipping tcl as part of their ISE6.1 release, though they still seem to have a lot of java and mainwin stuff around. Tuxedo (which is now called Conformal, a logic equivalence checker) from Verplex also uses Tcl (not so sure about Tk), and I'm sure their other tools use Tcl too. Many (if not most) hardware designers work on linux and solaris, windows just isn't capable enough of handling 3GB data gracefully. Tk fits the bill just fine. vsim is the most mature in its Tcl and Tk usage, and modelsim (which is now part of mentor graphics) have their own widgets and the look is very professional. My employer http://www.comit.com/ uses tcl for everything from web forms to sysadmin. We also hve a suite of tools for hardware design based on Tcl and Tk. Just to prove the point that Tcl and Tk are here to stay and in my current field have a growing suite of companies adopting it and a growing user base. Some names there might not make sense in the software world, but those are big companies I'm talking about and most EDA tools sell for tens of thousands of dollars (some for a million). So we're not talking about tiny tools here. ---- Jim Gettys' comments are a wake-up call for Tk. I use Tk for scripting applications for my own use: such use will never figure as "visible" application development. More important than "visible" development is whether developers still learn and use Tk for their own purposes. Unfortunately Tk is losing ground to wxWidgets and GTK in this area (at least with Python). Jim's criticisms of Tk are valid ones. While it is true that Tk has native look-and-feel under Windows, this is true under UNIX only in a very narrow sense: the UNIX desktop has improved dramatically in the last 5 years, yet Tk still looks like a clunky Motif application. Theming, and compatibility with freedesktop.org standards [http://freedesktop.org/Standards/Home], are essential if Tk is to continue to be a first-class toolkit. ---- Here's some evangelism for python's wx GUI over tkinter [http://wiki.wxpython.org/index.cgi/Choosing_20wxPython_20over_20Tkinter] (cited ''without prejudice'' ... there's quite a bit in the article) ----- '''A WxWidgets alternative''' Copied from [I worry about Tcl's future] [LES] on Nov-2006: I am not really an expert, but I do read and try a lot of stuff, and after 3 years using Tcl, I am still firmly convinced that Tcl is, sadly, an excessively well kept secret. If more developers took the time to shake off all prejudice and examine Tcl a little more, they would have nothing but the insecurity of working with an unpopular language to deal with. Tcl has all and a few other traits that many languages pursue and haven't managed to deliver to-date. Sadly, Tk is a different story. [Tk is obsolete], no question about it. [RLH] Some of those issues are being addressed (I can't say if all of them are). I would like to see a vibrant wxWidgets based alternative. [Python] still uses Tk as its default but wxPython has the most mind share today. ---- [DKF]: Also note that [Tk] now (with the CVS HEAD, and so soon in the 8.5 release) also has the [Ttk] widgets. They look good - very very good - especially on Windows or OSX/Aqua. [RLH] Yup, and I am highly anticipating its "release". [LES]: [Tk] has always looked good enough in Windows and OSX. But it looks awful in Linux and [DKF]'s comment above excludes Linux from these new improvements. I find it sad because Windows and Mac are prominently proprietary software land, but it is so difficult to make closed-source software with Tcl/Tk that Win/Mac developers will use something else. Nix is the land of open source software, but Tk looks so bad in nix platforms that developers will use something else. That could be contributing to Tcl/Tk's stationary position in a sort of popularity limbo. ---- [Tcl Advocacy]