schlenk
And it is a totally miserable experience on Windows, every single time.
And setup.py is a trainwreck, e.g. some packages compile download and compile huge dependencies (e.g. a full Apache httpd...), the default compiler flags may lack all the mandatory security flags (e.g. for using ASLR on python 2.x), or ship their own copy of openssl statically and break your FIPS-140 certification that way...
So the 'register all XMPP clients' is a side effect of german regulations that still consider Internet to be mostly just a slight variant on Phone&TV&Radio.
In the past (1980s/1990s) you had (in theory) to register any BBS service as a telecom provider, but they didn't even have a proper form to do the registration.
For example have a look at the build scripts in MacPorts, those are valid Tcl programs (if you load the needed procs first). https://guide.macports.org/chunked/development.examples.html
As Tcl is very often used for DSL style usecases, you might mistaken Tcl code for more or less pseudo code, config files or something like that.
* No GIL. Real threads with no silly global locks
* A very cool VFS layer, a bit like the stuff you can see in windows powershell with the Registry/Certstore/etc drives
* A beautiful implementation really worth a read (no silly 'XXX: don't know what to do, lets print to stderr' inside a library like you find in pythons source)
* An extremly consistent language far more than python which does all kinds of junk 'to make parsing easier' even if it makes the language harder
* Sandboxing interpreters (doesn't work with python, no chance)
* Stacked channels and a cool streams abstraction (Pythons io module is still some way behind its options)
* A built in event loop (Python just got one with 3.4...)
* A standard lib that mostly takes event driven as given (unlike pythons blocking stuff)
* very powerful metaprogramming support (e.g. have some logging code with 'ZERO' overhead when disable at runtime)
* good C-API and excellent support for embedding
* Stable ABI since more than 10 years (e.g. you can load a binary extension compiled against 8.1 into a current 8.6 interpreter and it just works, one of the reasons many Tcl projects didn't release new versions, no need. Unlike the python nonsense with -2.5,2.6,2.7 versions for every package, okay Python got a partial stable ABI now too, years later)
* mostly sane platform abstractions (the world isn't posix everywhere)
* packaging with starpacks (python's pyinstaller comes close, but lacks the VFS stuff, years later), a bit like cross-platform OS X app bundles
* Non mutable values by default, no pointers, so it is kind of functional
* A nice package system that doesn't mix up filesystem layout and namespaces and supports version
So if you look at it, it is kind of a weird crossover between ideas you now find in: Go, Node.js, Lisp, Powershell. Just a bit outdated and in need of some love.