Slashdot Log In
Tcl/Tk 8.5.0 Released
Posted by
kdawson
on Sun Dec 23, 2007 05:26 AM
from the slap-and-tickle dept.
from the slap-and-tickle dept.
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."
Related Stories
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
OMG Coolies! Python devs get to work! (Score:2)
less and less (Score:4, Informative)
I think Gtk is becoming more and more the "de-facto python windowing kit", in particular as Gtk's cross platform support is improving.
Parent
Re: (Score:2)
Re: (Score:3, Interesting)
Tkinter is the de-facto python windowing kit.
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 cl
Re:less and less (Score:4, Insightful)
Parent
Tk is greater or equal to GTK (Score:2)
If you have a Python application and want to throw a quick GUI onto it, Tkinter is a lot easier. It is also very easy to deploy since it is in the Python standard library. You can write a custom app on your Linux workstation and then the next day put it on a customer'
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Skinnable Widgets? OMFG :) (Score:2)
TCL/TK runs the world (Score:2)
Whether the widgets look like Windows, Linux, OSX, Motif or whatever is largely irrelevant as long as the start and stop buttons work when you click them.
TCL/TK runs speech research (Score:4, Informative)
I think there may be one other speech analysis package that did spectrograms and used TCL/TK at one point, but I don't think it has an active distribution the way WaveSurfer does.
What the WaveSurfer people did is that about half their code base is C-language for implementing speech-specific TK widgets, such as a spectrogram Canvas elaboration of the TK Canvas widget. Their C-language routines call down to low-level X to draw things, and if you build on Windows you need some implementation of X. The WaveSurfer Windows distribution, however, is a single .exe file that has WaveSurfer and whatever support libraries all rolled in, so there is a very simply install.
Their TCL part, however, is a big ball of goo, or at least to someone who doesn't know TCL. Instead of pushing a lot of the functionality into the speech toolkit widgits, they implement a lot of stuff in the TCL layer -- it is not simply a thin scripting layer over a largely C code base. You find that out when you try to customize your own speech app using their speech widgets -- there is tons of functionality that you need to reproduce in your own app as the widgets are pretty bare bones. Not that there is anything wrong with it, but using the WaveSurfer app and hearing about rolling-your-own speech app with their toolkit, you kind of get the wrong impression about how much is in the widgets. I found this out when playing with Python scripting to display their widgets.
The one thing that appeals to me about TK is the Canvas widget, which was apparently inspired by someone's Scheme graphics or some such thing. No worrying about paint messages and invalid regions -- you just give the Canvas a scene graph of line, text, even 3-color bitmap or even overlaying buttons, and the Canvas takes care of all of that. I would like to see such a high-function widget in other environements.
I was never bothered by the non-Windows look to WaveSurfer (OK, the lame Files Open dialog of GTK under Windows bothers me, but not most stuff as Windows is not that uniform a GUI experience to begin with).
Parent
Re:Tcl 9 (Score:2, Informative)
Re: (Score:2)
Tcl language vs. Tcl environment (Score:4, Interesting)
Re: (Score:2)
Tcl language vs. Tcl environment-Bling. (Score:3, Funny)
Bragging.
Re: (Score:2)
Well, by replacing {} by () and judicious use of eval(), they might yet end up with a version of Common Lisp with a decent GUI environment.
Re: (Score:3, Interesting)
I've noticed that some people don't like Tcl as a language, but can't personally understand why. Tcl seems to be a favorite of a lot of well experienced people who can make it stand up and sing.
I used to think that Tcl-aversion was due to extreme syntactic simplicity, but now I think the simplicity is deceptive, and Tcl is just too hard for some programmers: you need a deep stack to write Tcl well.
Re: (Score:2)
Re: (Score:2, Informative)
Unfamiliar syntax - every syntax is unfamiliar until you're familiar with it.
I don't find []-as-command-substitution-operator too vexing. If you have a syntax-aware editor. It's almost as expressive as lisp, but with less of the nesting hell.
Upvar/Uplevel are <b>fantastic</b> when you understand what they're used for. Uplevel enables tcl to be completely extensible - you can write new tcl language elements within tcl. For
Re: (Score:2)
In my first job where I got to do any development work I worked with Tcl. I hated how it handled lists, those gave me fits because if I split them wrong I'd get { and } in my output that Tcl inserted into the lists to break them up. And below is a link to something that gave me fits the first time I came across it.
Re: (Score:2, Informative)
Perhaps to see if you're missing something? It's significant that a lot of Tclers are old and battle-hardened. Perhaps there's something
Re: (Score:2)
Re:Tcl language vs. Tcl environment (Score:4, Insightful)
For what is worth, a lot of experienced people are fans of obscure antique technologies, because that's what they specialized on and they don't want to learn some "new-fangled" substitute from the start. There's still people that swear by VMS, it's just human nature.
As for what I don't like about the Tcl language, it's mostly just a collection of small things, such as:
Parent
Re: (Score:3, Insightful)
That is true, but I don't think that it explains the popularity of Tcl within the Tcl community. There are plenty of people who have come to Tcl recently after long experience with other languages. I am one of them. I started programming in Fortran, on punch cards, in 1973. I first used Tcl in 2003, at which point I used mo
Re: (Score:2)
Unfortunately the Tcl language itself is peculiar, dated and just not very good.
Realy? What shortcomings do you feel Tcl has? I find it to be a wonderful, simple, expressive language. It's certainly a lot less "peculiar" than Perl, no more "dated" than C, and really good for what I need.
Re: (Score:3, Insightful)
Re: (Score:3, Interesting)
I've never seen a language that actually parses comments, the way Tcl does. There's nothing simple about that.
Will Tk Widgets Now Integrate? (Score:3, Interesting)
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.
Re:Will Tk Widgets Now Integrate? (Score:5, Informative)
Yes [wiki.tcl.tk]
Parent
Re: (Score:3, Informative)
Using foreign theme engines (Score:2)
Apparently, some developer are playing with the QT/KDE and GTK theme engine hooks :
Here's a link to tileqt [ellogon.org] that I found on tcl's page. This theme uses the QT-theme-egine to make TCL/TK applications look like the rest of the KDE desktop. (It works like the gtk2's qt-engine).
Probably there's also someone working on using GTK2's theme engine so Gnome people can have their applications look like their desktop too. But I'm a KDE user and too lazy to search for that information.
Re: (Score:2)
It works well with MacOS X and Windows, but what about Linux? Most Linux apps use GTK, or gtk bindings to some other language, or the GTK theme (like Swing in Java 6). And these screenshots show nothing more than a nicer theme on Linux. And no font antialiasing or hinting!
There's a Qt theme done so integrating with a KDE desktop should be fairly easy. It's not bundled in the standard release due to licensing issues, but would be a superb addon in a Linux vendor customization. I've no idea why nobody's done a GTK one yet (I've been marooned in Windows-land for the past few years and so have focussed on the Tcl scripting side of things; that's my excuse for not doing it myself...)
The font engine in use should now be the same one as used by everything else on your desktop, i.e
Re: (Score:2)
People still use it? (Score:2)
I'm a big Tcl/Tk Fan, but... (Score:2)
Anyway, I better get back to writing my Micro Controller Design handbook in Gaelic - I'm sure this one will be a seller, hardly anybody is writing Gaelic computing text books!
Re:I'm a big Tcl/Tk Fan, but... (Score:5, Informative)
Parent
Re: (Score:3, Informative)
Here are some detailed, relevant links:
Cross platform: http://wiki.tcl.tk/1110 [wiki.tcl.tk]
Events: http://wiki.tcl.tk/3448 [wiki.tcl.tk]
Internationalization: http://wiki.tcl.tk/6789 [wiki.tcl.tk]
Easy C interface: http://wiki.tcl.tk/2523 [wiki.tcl.tk]
Oh, did I mention a thriving wiki? http://wiki.tcl.tk/ [wiki.tcl.tk]
It's Pronounced Tickle (Score:2, Funny)
Re:Great news (Score:5, Funny)
Parent
Re:Great news (Score:5, Informative)
There's some great new stuff for Tcl in this release. Built-in dict type http://wiki.tcl.tk/dict [wiki.tcl.tk], Functional Application http://wiki.tcl.tk/apply [wiki.tcl.tk], built-in arbitrary precision integers http://wiki.tcl.tk/10942 [wiki.tcl.tk], at last a sanctioned OO framework http://wiki.tcl.tk/TclOO [wiki.tcl.tk].
New Tk looks beautiful.
Tcl runs webservers, robotic manufacturing equipment, and even monitors spacecraft. Odds are that you have probably used a Tcl/Tk application and never even knew it. (If you've watched NBC since 1998, you've seen the results of a Tcl application on screen.)
I'm an unabashed Tcl fanboy, and this release is great.
Parent
Re: (Score:3, Informative)
Fantastic indeed, and the syntax looks nice. But you still have to manually destroy objects. Basically, writing Tcl like any other high level language in existence means having crippling memory leaks. So you learn to avoid objects like the bolted-on kludge that they still are. Even perl at least got the memory management part right.
Python tkinter ought to look nice, but Tcl continues to be a non-starter.
Re:They need to start releasing... (Score:5, Insightful)
It didn't. Flash did.
Java might have won if the original JDK hadn't been so primitive and difficult to work with. Even long after Swing was released, browsers were still shipping with ancient 1.1 JVMs, and installing newer JVMs wasn't an automatic (or even simple) process for some browsers and platforms.
Still, though, Flash probably would have won out in the end. Swing is designed for desktop applications: standard menubars, dialogs, etc. -- themeable, maybe, but BORING to a web designer's eyes. With Flash, cool weird unique user interfaces are the whole point.
The engineer and UI-standards-advocate in me appreciates Swing. The artist wants to learn Flash.
Parent
TCL/TK was "Java" before there was Java (Score:3, Interesting)
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 commerc
Re: (Score:2)
Re: (Score:2)
Haha, that reminded me, some months ago I visited the page of a fellow slashdotter because I was interested in whatever he was advertising with his signature (with a link to his homepage) but after trying to guess wtf was the front page about I left bitterly.
I found outstanding that in 2007 you can still find pages in which each "option" of the homepage menu is depicted as an image which is *supposed* to
Re:It's not necessary anymore (Score:5, Interesting)
Parent
Re: (Score:2)
I find that Ruby is the language that nobody wants to look at, because it's just like the language they're currently happy with (usually Python, often also Perl). It was the same for me for many years (and,
Re:It's not necessary anymore (Score:5, Insightful)
Tcl's strongest redeeming features are its consistency and its sensibility. Tcl very strongly has a principle of least surprise, thanks to these. That alone makes programming in Tcl a joy compared with many, many other things. You'll spend a lot less time wondering how your code will work on a foreign platform, which flags a given widget expects, and so on.
Tcl of 2007 is also not Ousterhout's Tcl of 1987. A lot has happened in the last 20 years, including totally pervasive unicode support (the [msgcat] library makes internationalization such a breeze, there's absolutely no reason not to make all your programs localizable from the start), some very healthy namespace functionality, an excellent networking library, and of course the relatively recent Tile toolkit.
There are also new [rs.tc] projects [jabber.ru] being [amsn-project.net] developed [sourceforge.net] with Tcl all the time.
Far from being an outdated or dying language, Tcl today is just a well-kept secret, sitting out in plain sight.
Parent