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 Tk and Expect
Tk is a graphical user interface toolkit with bindings for Python, C, C++, Ruby, Perl, Go, Java, Haskell and more, see Languages with a Tk binding and GUI Scripting with Tcl/Tk.
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.