No threads

A mini-rant about threads... let me just say that I'm running away from them. IMO, they add nothing a well-designed asynchronous or multi-processing approach can't handle (other than for specialized applications such as 3D rendering). And the risks are substantial:
  1. chances of a coding mistake are way too high
  2. complete testing of race conditions is next to impossible
  3. full code review in OSS projects with plugins/extensions is not feasible
  4. failures are not repeatable, i.e. essentially non-deterministic
  5. one weak link can bring down the application
Predicition: threads are going to be a maintenance nightmare in multi-core architectures for years to come, once all those CPU's actually start hitting race conditions.

No thanks - I'll be sticking to async I/O (one of Tcl's strengths) and pipe- / socket- / mmap- / shmem-connected processes.