Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Upgrades Programming IT Technology

Tcl/Tk 8.5.0 Released 148

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."
This discussion has been archived. No new comments can be posted.

Tcl/Tk 8.5.0 Released

Comments Filter:
  • I'm tickled pink!
    • by jd ( 1658 ) <imipakNO@SPAMyahoo.com> on Sunday December 23, 2007 @05:43AM (#21796758) Homepage Journal
      Yeah, but coders who prefer other languages might be tk'ed off.
    • Re:Great news (Score:5, Informative)

      by Minix ( 15971 ) on Sunday December 23, 2007 @08:31AM (#21797324)

      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.

      • Re: (Score:3, Informative)

        by nuzak ( 959558 )
        > at last a sanctioned OO framework http://wiki.tcl.tk/TclOO [wiki.tcl.tk].

        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.
  • Tkinter is the de-facto python windowing kit. This in itself is enough for a new python release. Faster==better, and python always wants to be a bit faster. Tcl/Tk by itself is kind of clunky IMO, but python Tkinter makes good use of it. Thanks Tck/Tk guys!
    • less and less (Score:4, Informative)

      by m2943 ( 1140797 ) on Sunday December 23, 2007 @06:15AM (#21796834)
      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.
      • Re: (Score:1, Interesting)

        by Anonymous Coward
        No, that would be wxWindows, though recently Qt has been gaining some popularity as well.
      • Although a little more restrictive than straight Tk, I prefer Tcl/Gnocl (Tcl/Gnome/Gtk): http://www.dr-baum.net/gnocl/ [dr-baum.net]
      • 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)

          by baxissimo ( 135512 ) on Sunday December 23, 2007 @09:03AM (#21797476)
          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.
          • Re: (Score:2, Informative)

            by cronot ( 530669 )
            That's because GTK and WxWidgets are not really on the same league. GTK implements a full Widget engine, as in it does all the job of actually drawing all the widgets. WxWidgets is not really a Widget engine per se, just a wrapper around the underlying platform's own native widget engine - that's why cross-platform applications written using wxWidgets has a native look and feel to them. In the case of Linux, wx wraps around GTK, since there's isn't a standardized widget engine for X11 applications (though I
          • by dkf ( 304284 )

            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.

            The big problem on Macs is that apps behave differently there. There are different conventions about accelerator keys, different ways of using menus, different expectations of you interact with dialogs, etc. And OSX users are much more likely to be picky too. Porting apps from either Linux or Windows to OSX involves rewriting a bunch of stuff; making the widgets look right isn't the worst part.

          • by zsau ( 266209 )
            Funnily enough, every time I've seen a wxWidgets app running on my Linux box, it's always stuck out like a sore thumb. They abide by Windows UI design patterns, just using Gtk+ widgets. This is a bad way to do cross-platform applications; instead, you should follow the lead of Pidgin/Adium/libpurple and separate out the front-end and back-end code; the front-end should be maintained by separate platform specific teams. That way, your program looks and feels native. No cross-platform toolkit will do that.
      • I think Tkinter still has a lot of advantages at this point over GTK. It has plenty of life left in it. At least until someone writes an equally high-level Python interface to a different graphical toolkit and gets it into the standard library.

        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'
        • by Peaker ( 72084 )
          Last time I tried using Tkinter, it wanted me to micromanage the scrollbars in the listboxes I use. This is unheard of in pygtk, where I just create the listbox and it does all the necessary scrollbar stuff on its own.

          I got the feeling Tkinter was way too "low level". So what do you mean when you say it is higher level?
        • no text
          • Yes, okay Plain Text formatting.
            • This post has been created as "HTML Formatted" for your angle-bracket viewing pleasure (and note the post subject). If you learn about HTML entities, you'll have no trouble displaying your >s and <s.
              • by Marcion ( 876801 )
                Ok right so

                &#89;&#111;&#117;&nbsp;
                &#97;&#114;&#101;&nbsp;
                &#115;&#111;&nbsp;
                &#112;&#114;&#101;&#116;&#101;&#110;&#116;&#105;&#111;&#117;&#115;
                Yup
      • Well the stunning new themeable Tk look is going to change all that, buddy.. Just look at this sample screenshot [sourceforge.net] of how great a Tcl/Tk GUI can now look.
  • Tk has been so in need of a makeover for many years. The widgets in their default state have looked like crusty relics on our grandparents' computers, and even make Windows 3.1 look contemporary. Well done guys. I can't wait to check it out.
    • Yahbut tcl/tk is used to run machines, factories. The hint is in the name.

      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.
       
      • by Latent Heat ( 558884 ) on Sunday December 23, 2007 @11:29AM (#21798380)
        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).

    • Does anyone know if this will end up making the widgets in perl/tk apps look better/more modern at some point?
  • by ElMiguel ( 117685 ) on Sunday December 23, 2007 @06:10AM (#21796816)
    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.
    • Unfortunately the Tcl language itself is peculiar, dated and just not very good.
      Really? For what purpose?
       
    • by chthon ( 580889 )

      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.

      • If you want LISP, use LISP. You have my blessing. I think of Tcl as a variant of LISP with about the right amount of syntactic sugar. The use of {} and [] provides a useful amount of visual structure that makes Tcl much more readable than LISP.

    • Re: (Score:3, Interesting)

      by Minix ( 15971 )
      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.
      • I understand what you mean. I have a minor Tcl-aversion, and I'm not sure why. Perhaps its the eval[]s you have to put everywhere, or the masses of square brackets, or the unfamiliar syntax in general. One particular quibble I remember is the use of upvar, which, to me at least, seems somewhat clumsy.
        • Re: (Score:2, Informative)

          by Minix ( 15971 )
          Eval isn't as necessary since the new {*} syntactic element was added.

          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
          • Upvar/Uplevel are fantastic 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 example, one can write a brand new transaction command which wraps its contents in a db transaction open/close pair, and catches errors to abort transactions. I really miss that when I have to code in other languages.

            Sounds a lot like Perl's Ties. Are you familiar with them? If so, how do they compare?
            • by dkf ( 304284 )

              Upvar/Uplevel are fantastic 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 example, one can write a brand new transaction command which wraps its contents in a db transaction open/close pair, and catches errors to abort transactions. I really miss that when I have to code in other languages.Sounds a lot like Perl's Ties. Are you familiar with them? If so, how do they compare?

              They're not at all the same. Tcl actually does provide facilities very much like a Perl tie (i.e. traces and linked variables) but uplevel and upvar are something else. The uplevel command is actually much more closely related to the 'sub foo(&)' syntax of Perl as normally used (though of course each is different to the other in important ways) and the upvar command is rather like passing a reference to a variable (except again not the same except in how normally used).

              BTW, Perl ties aren't suitable fo

        • Tcl 8.5 eliminates the most common situation in which upvar used to be necessary. The problem was that Tcl (associative) arrays were not first class objects and could not be passed by value, so if you wanted to manipulate an array in a procedure, you had to pass the name of the array and use upvar to make it accessible within the procedure, like this:

          proc foo {bar} {
          upvar \#0 $bar baz
          ...
          }

          This makes baz an alias for the array whose name is contained in the variable bar. Within the procedure, bar is

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

        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)

          by Minix ( 15971 )

          When I worked with Tcl I was still just learning to really think like a developer and understand the process on top of learning Tcl, which really is a fairly complicated language. I'm sure I would have far less trouble with it now that I've got a few years of full time, non-hobby development under my belt but I don't see any reason that I'd want to use it and find out.

          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

          • You're probably right, kids these days are taught badly / learn bad habits since they're spoiled by 'limitless' hardware and flashy coding tools. Then they're surprised when all the memory leaks away. (I guess you're an old fart like me - yeah, IDs can be deceptive, I started on an RM 380Z then an IBM System 3). Sounds a little arrogant telling people that they "have to learn good coding habits" - but I'm sure that's not how you meant it. You can get a huge lot done with Tcl, and I quite like it, but it
            • by Machtyn ( 759119 )
              My beginnings with Tcl/Tk. My software engineering teacher wanted to teach the Linux OS, and that was the class for which I signed up. It turned out that he was attempting to teach us Linux like a programmer (use a language in the OS) rather than Linux itself. He drastically changed the format the next semester.

              But, boy, did I run with it. I suppose I should learn some of the other scripting languages, but I really like Tcl/Tk and my ability to quickly frame a GUI with all the basic functionality (Tcl)
      • Tcl is simple in the way that maths is simple - it starts from a small number of clean consistent abstractions which can be combined to achieve many things. People who see the possibilities of this tend to think it's easy and powerful, but many others just don't get it.
      • by ElMiguel ( 117685 ) on Sunday December 23, 2007 @04:07PM (#21800264)

        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.
        • Re: (Score:3, Insightful)

          by belmolis ( 702863 )

          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.

          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

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

          With regard to ugliness, I guess tastes vary, but the potential gotcha is well known, addressed in the documentation, and easily avoided. There is a special "--" argument to "switch" which indicates that the remaining arguments are not options and that any leading hyphens are therefore to be taken literally. Experienced Tc

      • People underestimate Tcl.

        When I was using it at work for scripting tests, I could spawn threads from the interpreter command line to dynamically write multi-threaded scripts. Thats right, managing thread synchronization, effortlessly from a command line. Since I was running threads on a half dozen boxes on a test network, spawning threads and rejoining them was important.

        Maybe its not that impressive, but from the dozen or so other languages I've used this is the first where I felt comfortable wr
    • by dskoll ( 99328 )

      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)

        Really, no one seems to think Perl is "peculiar", when it's practically a write-only language, pre-obfuscated for your convenience. Tcl is incredibly simple once you understand it.
        • Re: (Score:3, Interesting)

          by nuzak ( 959558 )
          > Tcl is incredibly simple once you understand it.

          I've never seen a language that actually parses comments, the way Tcl does. There's nothing simple about that.
          • Most languages strip comments and then parse what remains. In Tcl, everything is parsed; the comment marker is actually a procedure whose argument is the remainder of the line, which it discards. This has the result that comments must be syntactically well-formed or they will screw up the parse. This is one of the few things that I don't like about the language because it makes it impossible to place comments as freely as I would like to. However, I don't think that it is unique. As I recall, some dialects

            • To clarify a little, the Tcl comment character is not actually treated exactly like a procedure that does nothing. If it were, procedure calls embedded in the comment would be executed, which is not the case. So, it is parsed like ordinary code, but it has some special properties rather than simply being a no-op.

          • It's precisely how REM in BASIC has worked since the very first versions in the 60s.

            One could also remember the "comment" statement in Algol-60.

        • For what is worth, I would make exactly the same comment about Perl.

  • by RAMMS+EIN ( 578166 ) on Sunday December 23, 2007 @06:22AM (#21796846) Homepage Journal
    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.
    • by BiggerIsBetter ( 682164 ) on Sunday December 23, 2007 @06:41AM (#21796914)
      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 [wiki.tcl.tk]

      • Re: (Score:3, Informative)

        by zlogic ( 892404 )
        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!
        • Tk has font anti-aliasing built in now, even on Linux. In the past it was a compile time option. Themes on Linux are difficult to coordinate at the application level since there is no one standard desktop environment (I don't use KDE or Gnome myself). Because of this, tying Tk to a specific desktop would typically mean it would only work in that environment. The demand for that has been low up to this point. Most Linux users accept the fact that apps may not follow their desktop theme, unless its designed
        • but what about Linux?

          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.

          • by zsau ( 266209 )
            Will these themes just match the look or also the feel of the toolkit? (e.g. on Gtk+, will it let me remap my keyboard shortcuts on the fly from the menu?). Unless they can match the feel, there's not much point; they should crawl up in a whole and whither away like all suppliers of cross-platform toolkits.

            (The correct approach to writing cross-platform programs is to separate the front-end from the backend; Pidgin/Adium/libpurple are an excellent example.)
        • by dkf ( 304284 )

          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

      • I learned something new today. Qt support for Tcl: http://wiki.tcl.tk/2181 [wiki.tcl.tk]
      • Looks good on Windows and Mac but still looks like classic TK under X11 - i.e. it will _not_ match your GTK / QT themes. From the site:

        New and complementary widgets that make use of platform-specific theming on Mac OS X and Windows to better fit in with those environments, and feature an improved look and feel under X11. (screenshots)
  • the Tklet browser plugins again, so that I can write in-browser applications in a sensible programming language. Why Java won that market I can't possibly fathom.
    • by Eryq ( 313869 ) on Sunday December 23, 2007 @07:05AM (#21796994) Homepage
      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.
      • The funny thing is that TCL/TK was what Sun was promoting before they came out with Java and started pushing that.

        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

  • Wow, didn't know that people used it. Now I know what gramps was talking about when he mentioned "programming tickles!"
  • These days when I write Tcl/Tk code, I'm normally happy with the results and feel very productive in a short space of time. But I keep getting a strange feeling, kind of like I'm working in a building, but the building is empty of people, and everybody else is in another building across the street.


    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!

    • by stevel6868 ( 935788 ) on Sunday December 23, 2007 @08:14AM (#21797224)
      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.
      • Re: (Score:3, Informative)

        by Minix ( 15971 )

        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]

      • by mi ( 197448 )

        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.

        My favorite point about Tcl is how easy it is to extend it — in C. Both Perl and Python, and other languages, have similar extendability, but nobody's is as straightforward and, uhm, elegant... In my opinion.

    • by Minix ( 15971 )
      There's heaps of active community: mailing list comp.lang.tcl http://groups.google.com/group/comp.lang.tcl/topics [google.com], a wiki http://wiki.tcl.tk/ [wiki.tcl.tk], a 24x7 chat #tcl (with a jabber chat too.) You're welcome to join in.
  • Apparently Tcl is pronounced 'Tickle'. I learned the hard way after someone had pointed out that I named a file test.tcl.
  • I will be moderated down for this? Who cares, I have to say it. Why the heck do Tk always looks like total crap on linux? It is the most hideous widgets I have ever seen, the graphic designer should be covered in tar and feathers, and he would still look better than the widgets.

    For the rest tcl/tk is still one of the easier ways to develop some cross-platform mini-apps, useful when you don't want to loose time in programming graphic interfaces but you have to for marketing reasons.
    • Theres no excuses now to look like crap, unless thats what the programmer intended. Hence the significance of version 8.5.0 .
    • nah. His work was tarred and Gunzipped instead of feathered
    • Why the heck do Tk always looks like total crap on linux?

      Because it was based on the state of the art in 1992 or so.

      Who cares?

      Because the new widget set is themable and doesn't have to look like total crap.

      It's not the way I would have solved the problem, personally, but it does solve it.
  • Most of the negative comments about Tcl/Tk focus on the past versions, missing the point of this new 8.5.0 release! Try it before you bash it.
  • I'm happy about this new release because I do use one or two programs that use Tcl/Tk and I'd be very happy to see them ... well.. look nicer. Coincidentally, for this very reason I was looking at Tile the other day, which is the skinning engine available for Tcl/Tk. I compiled and installed it.. and.. nothing changed.

    So, it seems that Tcl/Tk applications have to explicitly use Tile in order to get the skinning, is this correct? In other words, if I install 8.5, it won't change anything (visually) for th
    • Unfortunately, its not automatic. But there are reasons for it. You loose a lot of control over how each widget is rendered when you use a theme. A lot of apps would break badly if you just swapped in the new ttk versions. I know, as I've done it automatically with a script. On the upside, its really not hard to change the widget references in the code and cleanup any misbehaving widgets . You'll end up with a much better app in the end.
    • The skinning is not automatic. You have to explicitly use the Tile widgets that you want to have appear in the new themed hotness. Not all Tk widgets have a Tile equivalent, either, so your program will end up being a mix of Tile and Tk. Now...this isn't nearly as confusing as you might think, because there are really only a handful of widgets you end up using over and over again, and you learn which is which pretty quickly.

      A good place to start is, of course, the wiki entry on Tile [wiki.tcl.tk]. The Tile documen [sourceforge.net]
    • by Zey ( 592528 )

      For the themed widgets, instead of:

      package require Tk
      grid [label .l -text "Hello world"]

      ... you'd use:

      package require Ttk
      grid [ttk::label .l -text "Hello world"]
    • by dbcad7 ( 771464 )
      I use aMsn, which is a Tcl/Tk app.. It's kind of a a hit an miss to get it just right.. As to looks, it's great.. It's the damn fonts. I have had them right before, where I could use all the systems fonts.. but it's screwed up since my last upgrade, and I guess I'll have to wait to see if the next version gets the fonts working correctly again. (I am not going to re-compile from source)
  • Just some side information. I read Coccinella will already switch to Tcl/Tk 8.5 in a few months (12 March). See comment at the end of the announcement of the latest release: http://coccinella.im/coccinella-0.96.4 [coccinella.im] Oh yes, and Coccinella is already using an older version of Tile for Tcl/Tk 8.4. This is some sexy theme proof that Tcl/Tk shouldn't be ugly: http://coccinella.im/stuff/sexy.png [coccinella.im]

As you will see, I told them, in no uncertain terms, to see Figure one. -- Dave "First Strike" Pare

Working...