What are the situations where use of Tcl may not be the best fit? What types of applications are better suited in some other language? What types of limitations does Tcl have intrinsically that should be considered when evaluating it as a part of an application solution?
- Does Tcl use 32 bit or 64 bit numeric values? Is it a simple matter to make use of 64 bit options? There is always mpexpr as an arbitrary precision expr extension.
- AMG: Recent Tcl (8.5+, I think) has arbitrary precision built-in for all integers.
- Does Tcl use 32 bit or 64 bit internal time representations? How much code needs to change to make use of a wider time_t value?
- AMG: I'm pretty sure timekeeping got improved along with bignums, but I can't be certain.
- Number crunching in pure Tcl is probably not the best idea - it tends to be a bit slow. However, there's no reason you couldn't do the crunching in another language and link it in, or use a computer server and then Tcl/Tk as an interface that communicates with that server. FW: Number crunching in any scripting language is slow. Tcl is only slightly below the standard in this case.
- What happens in Tcl when there is no more memory that malloc can allocate?
- AMG: The same thing that happens in any other environment... right? malloc fails, program panics. Due to virtual memory, in most practical cases the system will become unusable due to thrashing long before malloc stops working. Page faults are normally transparent to applications, so there's nothing they can do about them in real-time. Programs just have to be designed to minimize them in the first place.
- What happens in Tcl when there are no more threads that can be allocated?
- AMG: I doubt any serious Tcl program has ever hit this particular limit. Tcl needs threads far less than other development environments.
- What happens in Tk when there are no more Window IDs to be allocated, or they wrap around and begin to reuse ids?
- AMG: Does Tk consume operating system/display system window IDs, or does it handle most or all of its drawing internally?