* [The Tcl'ers Wiki] * [The comp.lang.tcl newsgroup] * Tcl is simpler. Those without a C/Unix background generally find Tcl syntax far easier to learn and retain. * Tcl is smaller. * Tcl is easier to extend, embed, and customize. * Tcl source code traditionally is a model of lucidity. Perl source code traditionally is dense in magic. * Tcl/Tk is far more portable than Perl/Tk. * TCP networking is more succinct and less intimidating. * Tcl's [exec], [open] and [socket] are gems of accessible and portable functionality, in comparison to the analogous Perl offerings. * Tcl's unified channel API makes life much easier, particularly on Windows. * As of spring 2001, Tcl's Unicode [http://wiki.tcl.tk/unicode] capabilities are considerably more mature. * As of spring 2001, Tcl's threading savvy (read "[Tcl and threads]") is considerably more mature. * Subjective stuff: some people find Tcl a better fit to their own sensibilities. * You can read your own code 6 months after you've forgotten how the program worked. Also see "[Is Tcl Different!]", "Why Tcl is better than Perl" [http://www.tcl.tk/advocacy/perl.html], "[How Tcl is special]", ... (Supply more references.) ---- Performance is rarely cited as a Tcl advantage. In fact, it's far more common to be asked about "[Why Tcl is so much slower than Perl]". ---- I don't use perl much any more. After I spent an hour chasing down a variable that was unexpectably global (the default when I last used perl) I decided that any language where all variables are global unless you specifically say otherwise was not a language I wanted to debug. ---- Just use "use strict;" which will ensure that you declare all variables as local. No, ''use strict;'' simply means you have to declare all your variables but they can be global or local. ---- "use strict;" feels like "oops we did it the wrong way, but we'll fix it by making the wrong way optional". Does perl have other optional bad ways to do things? If you take up perl, you probably will get asked to try to repair something written by someone else who didn't "use strict;". ---- Peter Newman 5 March 2004: Perl is better at almost everything than Tcl - EXCEPT Tk! The Tk syntax in Perl is horribly convoluted. Whereas in Tcl it's clean and simple. So:- * If the GUI part of your app. is the most important thing, use Tcl. * If there's no GUI, use Perl. But there are other application specific things that could sway your decision. For example:- * If you're processing HTML, Perl's HTML::Tree module blows away anything than Tcl can offer. * If your downloading/uploading files or doing anything HTTP, FTP, etc, it's 50/50. Both platforms offer good solutions. * If you're parsing text, Perl is the answer (because that, after all, is the thing that Perl was originally designed to do). But for a commercial application, the GUI is probably the most important thing. If it ain't clean and simple and easy and pleasant to use, users just won't use it. And producing such GUI's is MUCH easier in Tcl than Perl.