views:

197

answers:

2

TCL is a nice simple programming language, but does not seem to get the credit and/or respect it deserves [1]. I learned it back in 1995 in college and promptly forgot about it only to stumble upon it again recently. I am mostly interested TCL for developing TCP-based network services as well as for web development.

It has been mentioned that TCL makes network programming simple. However, it seems that TCL uses select() under the covers which does not scale well with "web scale" in mind (see the C10K problem [2]). I have searched for support for libevent, libev, raw epoll/kqueue but I don't see much.

Do you know of any "modern" (for lack of a better term) event-based network services written in TCL? Do you have any pointers, tips, or best practices for TCL-based server development?

Thanks!

  1. http://antirez.com/articoli/tclmisunderstood.html
  2. http://www.kegel.com/c10k.html
A: 

While I don't have a specific answer for you, I'd suggest that you also ask on the comp.lang.tcl newsgroup, as that's where much of the Tcl mindshare hangs out...

Jeff

Jeff Godfrey
+2  A: 

There's discussion of this on comp.lang.tcl last year and it appears that the status is: "The core team is thinking about it":

http://groups.google.com/group/comp.lang.tcl/browse_frm/thread/ce3a82f8a13d35fa/f57cea952ab69ecd

For web servers there is AOLserver which implements poll() under the covers. Of course, you can also run mod_tcl/rivet/websh under Apache.

slebetman
Wow. The posters to that thread are very old school. There was one post in which someone was concerned about epoll not being portable. I think we have collectively solved this issue. Or, they could use libevent or libev even. Hmmm
z8000
Yes, tcl developers are very, very, (very\*10) conservative. Also some tcl users. Some of us still run tcl on hardware with only 32MB of RAM (Things that used to be considered servers and workstations).On the plus side, I've got tcl code written in 1999 that I can run on the latest interpreter without change ;-) Also, epoll *is* non-portable from tcl's standpoint. This is a language that can run on more devices than Java - Cisco routers for example.
slebetman
Ok good to know about conservativism. But, surely TCL does not only have solely least common denominator features does it?
z8000