Visual Basic vs Tcl
When comparing Visual Basic vs Tcl, the Slant community recommends Tcl for most people. In the question“What is the best programming language to learn first?” Tcl is ranked 31st while Visual Basic is ranked 62nd. The most important reason people chose Tcl is:
Unlike *sh Tcl has a rich standard library.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Very simple and efficient language (in terms of number of lines of code)
Pro Easy to learn
Pro Capable language
Compiling to the same intermediate language as C# and compiling against the same .NET libraries, the differences between C# and VB are largely syntactic. Most VB features even have a 1:1 correspondence with C#.
Pro Huge community
Being Microsoft's introductory language, visual basic has a strong and large community.
Pro English-like syntax
Pro Flexible, won't get in the way of a beginner
A beginner developer can worry about the code logic first, and then learn the language. Visual Basic lets you do basically anything if you really want, while still having the power to be a fully statically-typed and object oriented.
Pro Sibling to C#
If you don't want to start with C# because of its high learning floor, you can start with VB. It is dead easy to switch between the two.
Pro Easy to deal with Win32API
Using platform invoke, it's very easy to use the win32 api in vb.net. Neat and clean syntax. Not a mess like c# (meaning those "{}"s).
Pro Standard library
Unlike *sh Tcl has a rich standard library.
Pro Sane quoting rules
Unlike in sh you don't need to quote your variable substitutions ('"$1"').
Expanding of arguments occurs mostly explicit and if yet expected in-place (e. g. using eval
or subst
) it follows strict and well clear rules.
So exec test $argv
would execute test with single argument.
And appending {*} before $argv
would execute test with all arguments (list expansion).
Pro Cross-platform
With a little care you can have the same script work on Linux, *BSD, OS X and Windows.
Pro Widely available
You can expect a reasonably recent version of Tcl to either installed or available in the repositories of any popular open source *nix.
Pro Everything is a string
Tcl can operate at the same level of abstraction as the POSIX shell, which makes it easier to manipulate the output of other programs.
Pro Tk and Expect
Pro Standalone packages
Tcl enables easy deployment through self-contained binaries known as starpacks.
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 Almost as bad as Python, but less used
Con Bad reputation
Being a visual basic programmer, you're unlikely to be taken seriously by other programmers. According to the 2015 Stack Overflow survey, it was voted the second most dreaded language among developers.