Tcl Core Team Interview
Gentu writes "OSNews features a nice and long-ish interview with the Tcl core development team for just about everything. " Covers a lot of ground like what they actually use Tcl for, how they came to maintaining Tcl and so forth.
From the article:
.
Table of contents
1. TCL/TK Interview, Part 1
2. TCL/TK Interview, Part 2
3. TCL/TK Interview, Part 3
4. TCL/TK Interview, Part 4
5. TCL/TK Interview, Part 5
6. TCL/TK Interview, Part 6
Good thing they have it all on one page with the Printer-friendly version
Ayam 3d (3D modeling package)
Source-Navigator (Source code browser and more)
Insight (gdb GUI)
M0571y H@rml355.
One place that TCL really shines is with async sockets. TCL makes it really easy to prototype a server. It's builtin support of the server socket [socket -server cmd ...] enables a very easy creation of an non-forking iterative server, that does surprisingly well. And is also remarkably portable between windows, Linux, and Solaris.
I've also used Python for this, but I feel that Python's asyncore is still too buggy for prime time, and also the asynchore library is slightly more complex to utilize.
Another great aspect of TCL is how easy it is to extend. I can compare directly to JNI and Python extensions. TCL by far has the easiest and cleanest extension API for C or C++.
And finally embedding an TCL interpreter into another ap, is equally easy... Hence the near ubiquitour support of TK in other scripting languages, including Python and Perl.
Opinions from experience.
Though truth be told my biggest problem is compiling my stuff for all the different platforms my extensions are used on. I haven't owned a MacOS box in years and I can't find anyone who can relink the library for new Tcl versions.
"Learning is not compulsory... neither is survival."
--Dr.W.Edwards Deming
Tcl runs the operator interface of Shell Oil's Auger, a drilling rig in the Gulf of Mexico. See pictures of the rig here, and read about the system integrators here.
Don't like oil rigs? Well, it's highly unlikely that you can mod this post down without the Tcl that's built into practically every Cisco router on the planet. Read Cisco's tesimonial.
Once you've done that, go log off and watch TV. Oh yeah, did you know that the NBC network control system is a Tcl application? It is; it's been in the digital broadcast system from prototype all the way to full 24x7 operation. ComputerWorld ran an article about the project.
Science geeks will be interested that a Tcl interface is used to program the Hubble Space Telescope
Database heavies will be intrigued by the intimate role that Tcl has in Oracle Enterprise Manager.
I could go on all evening, this is just the tip of the proverbial iceberg.
It's Tcl, said "tickle." Tk is capitalized as shown and is said "Tee-kay." Get it straight.
Don't be fooled by the name. Yes, AOL owns this, but it's Open Source and Free Software. It's basically a webserver that heavily relies on Tcl. It's fast and uses a small footprint. And because it uses threaded Tcl, it could use a single thread to make multiple queries to a databse, thereby reducing the number of processes that needs to be spawned by your database server. Think about 8 queries on a single connection to an Oracle server instead of 8 connections (1 connection per query).
This is because they use AOLserver which is a massively scaleable and powerful web application server. Some of its features are:
The reason Tcl is the embedded language is that AOLserver was developed in the early nineties, when Tcl was the hot new language. If the system were to be developed today, I'm sure that the developers would have chosen Python, Perl or some other more buzzword compliant language that has a strong following.
That being said, Tcl in AOLserver still rocks for developing DB backed websites. In fact, the Open Architecture Community System (OpenACS) is a complete web toolkit for building just these kinds of sites. The Sloan School of Management at MIT recently funded the development of an open source course management system called dotLRN that is build using the OpenACS as its foundation.
So Tcl isn't just a GUI tool or a glue language. It's also a great language for web scripting!
talli
Personally, I use Tcl for shell scripts that tend to become too large or too complex. I think for parsing text files, Python but especially perl are also useful, although I have no experience in them.
If you some some extra interaction with the user than use Tcl/Tk, It's excellent at (fast) creating interactive applications.
Anyone that tell you, you cannot program large applications with Tcl/Tk don't listen to them. I've written 10.000+ lines of code Tcl/Tk programs (see here, unfortunately all in Dutch) and constructions like namespaces help keep your code clean.
Main problem in Tcl (with large programs) is that you have to track yourself what you put in variables, there's no way to enforce it (is it an array, a list, a list of array, a list of lists ?). But then again, you can circumvent that by using wrapping functions.
Try tclkit:
http://www.equi4.com/pub/tk/8.4.2/
If all you want is the source, just grab it from SourceForge. We do recommend that people download either the binaries from ActiveState or Tclkit because that saves a configure/make/make-install cycle and you can be sure that someone's actually checked that the build went right. And the people involved in both are really nice anyway.
"Little does he know, but there is no 'I' in 'Idiot'!"
Contact the Tclkit support team (http://www.equi4.com/tclkit/)- I seem to remember reading that someone there has worked out the sourceforge compile farm details for building software on quite a few platforms.
URL: http://xanga.com/lvirden > Quote: Saving the world before bedtime. Even if explicitly stated to the contrary, n
If they added raw IP support in the core TCL libs, so others could write UDP and whatnot libs around that in pure tcl, life would be perfect in the TCL world.
There is an extension for raw packets: pktsrc
http://qacafe.com/pktsrc.htm
I would like to see native UDP support, but I can live with an extension for ICMP.