Recs.
Updated
Tcl is a combination of a scripting language and interpreter, it can be used for desktop applications, embedded applications, web server with TclHttpd etc.
See tutorial here, also see: Tk.
SpecsUpdate
Pros
Pro Easy to learn
From wide range of all programming languages I know, Tcl is mostly easy to learn language, with simplest and clear rules and transparent syntax.
Most of its functionality is implemented via commands, so learning Tcl is almost comparable with learn process about the behavior of individual commands and what meaning they assign to their arguments.
But at the same time it is so powerful that even as newbie one can simply extend it with everything one need or even completely rewrite it to some "other" language (inclusive basic primitives, rules or constructs).
Pro Rich scripting capabilities on a single line
Want to run something 5 times? Here you go: set i 0; time { puts done-[incr i] } 5
If you need real conditional cycle? Not a problem: for {set ready 0; set i 1} {$i <= 100 && !$ready} {incr i} { if {[exec do-some-thing] eq "ready" } {set ready 1} }
Want to measure performance of something or repeat it max 300 times and not longer than 1 seconds? Very simple: timerate { after 20 } 1000 300
How about notifying yourself when some http-server is back online? Sure thing: while {[catch { close [socket localhost 80] }]} { after 1000 }; puts "\7\7\7ONLINE!"
And you can do it also fully asynchronously using events etc.
Cons
Con Lack of evaluation by default is a bad idea
Tcl is a bit like lisp, but expressions are by default not evaluated. The lisp way of evaluating by default turns out to be far more powerful and more intuitive. Definitely better to learn a lisp dialect, especially in the XXIst century now that Tk is available outside of Tcl.