Slashdot Mirror


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."

15 of 148 comments (clear)

  1. Re:Great news by jd · · Score: 5, Funny

    Yeah, but coders who prefer other languages might be tk'ed off.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  2. Tcl language vs. Tcl environment by ElMiguel · · Score: 3, Interesting

    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.

    1. Re:Tcl language vs. Tcl environment by Minix · · Score: 3, Interesting

      Tcl's internals are well done, and the QA is exemplary - a Tcl alpha is as good as anybody else's beta.

      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.

      --
      "There are four boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order." Ed Howdershelt
    2. Re:Tcl language vs. Tcl environment by ElMiguel · · Score: 3, 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:

      • Operators can only be used if you have an implicit or explicit expr, and no assignment operators. You've got "set" and "incr", but it isn't as readable. Using "$" for variable substitutions but not for variable references is also not very readable.
      • Loads of naming inconsistencies. Just in the predefined commands, you've got words together with no separations ("msgcat"), words together separated by underscores ("auto_load"), mixed case *and* underscores ("tcl_endOfWord"), double colons ("pkg::create"). Then, string operations are grouped together in the "string" command, but you've got separate commands for list operations.
      • The -something options are ugly, in addition to a potential gotcha, because if you have something like "switch $var" everything will work fine until the content of var is, say, "-glob".
      • The "everything can be treated as a string" philosophy sometimes leads to strange results if your program logic has errors. I quite often had to use trial and error to fix this sort of problems.
  3. less and less by m2943 · · Score: 3, Informative

    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.

    1. Re:less and less by baxissimo · · Score: 3, Insightful

      I know this is Slashdot but there are still a few people out there using Windows, y'know. And GTK on Windows is just so-so at best. It looks and acts un-natural. Don't know about Mac, but I suspect wx is ahead of GTK in terms of not sticking out like a sore thumb there too.

  4. Re:Will Tk Widgets Now Integrate? by BiggerIsBetter · · Score: 4, Informative

    Will the Tk widgets now integrate with the rest of the desktop, in terms of using the same theme settings that other programs use?

    Yes

    --
    Forget thrust, drag, lift and weight. Airplanes fly because of money.
  5. Re:They need to start releasing... by Eryq · · Score: 5, Insightful

    Why Java won that market I can't possibly fathom.

    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.

    --
    I'm a bloodsucking fiend! Look at my outfit!
  6. Tcl language vs. Tcl environment-Bling. by Anonymous Coward · · Score: 3, Funny

    "Really? For what purpose?"

    Bragging.

  7. Re:I'm a big Tcl/Tk Fan, but... by stevel6868 · · Score: 5, Informative

    Tcl is too stable for many who think the bleeding edge is cool, and too different for those who think C is the pinnacle of language design - so it's left to a large number of people who just get on with using it because it works. Of course, if you're not interested in cross-platform GUIs, event driven I/O, Internationalization, extensibility, portability, rapid prototyping, easy interfacing to C and other languages and automated test environments then perhaps Tcl isn't for you.

  8. Re:Great news by Minix · · Score: 5, Informative

    There's some great new stuff for Tcl in this release. Built-in dict type http://wiki.tcl.tk/dict, Functional Application http://wiki.tcl.tk/apply, built-in arbitrary precision integers http://wiki.tcl.tk/10942, at last a sanctioned OO framework http://wiki.tcl.tk/TclOO.

    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.

    --
    "There are four boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order." Ed Howdershelt
  9. Re:I'm a big Tcl/Tk Fan, but... by Minix · · Score: 3, Informative

    Here are some detailed, relevant links:

    Cross platform: http://wiki.tcl.tk/1110

    Events: http://wiki.tcl.tk/3448

    Internationalization: http://wiki.tcl.tk/6789

    Easy C interface: http://wiki.tcl.tk/2523

    Oh, did I mention a thriving wiki? http://wiki.tcl.tk/

    --
    "There are four boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order." Ed Howdershelt
  10. Re:It's not necessary anymore by BridgeBum · · Score: 4, Interesting

    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.
  11. Re:It's not necessary anymore by 198348726583297634 · · Score: 4, Insightful

    Not so.

    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 projects being developed 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.

  12. TCL/TK runs speech research by Latent+Heat · · Score: 3, Informative
    The WaveSurfer speech waveform analysis (pitch, formants, sound spectrogram) package is based on TCL/TK and has Python hooks. This is the free speech package out of KTH is Sweden. It is not my package, by the way so I am not shilling for it, but I have taken an in depth look at it to see how they get to be multi-platform and not Windows-bound.

    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).