When comparing GitHub Electron vs Tcl, the Slant community recommends GitHub Electron for most people. In the question“What are the best tools for making a cross-platform application?” GitHub Electron is ranked 8th while Tcl is ranked 13th. The most important reason people chose GitHub Electron is:
No need to learn native UI APIs for multiple platforms.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Relatively low barrier to entry
No need to learn native UI APIs for multiple platforms.
Pro Has a built in packager which allows you to package web apps
the electron packager tool allows you to package your web app for any target platform that you desire, as long as you provide the correct information.
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 Looks and feels like an alien
Con Microsoft
Developed by Microsoft-owned Github
Con Extra effort may be required to make things look native on each platform
Con Mobile platforms not supported
According to documentation only Windows, Linux and Mac are supported, no mobile platforms.
Con Heavyweight
Requires a bit of system memory, and makes applications bulky due to the fact that all your web apps made in electron work in a NodeJS Shell that is basically a web browser displaying your app.