Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've gotten pretty far in some interviews for a company which seems to use several technologies I've frankly never heard of. The big one which I'd be working with if I got the job is TCL.

What is TCL, and more importantly, how marketable is it as a skill? Would working in a job using for TCL for a few years be like getting a case of the MUMPS?

share|improve this question
4  
seriously? you couldn't find out what tcl is by using wikipedia? –  Kim Mar 24 '11 at 5:13
1  
@Joe - I linked to it on wikipedia, so the answer is yes I did. Unfortunately wikipedia isn't very insightful into whether it's a marketable skill. Dunno if you noticed, but that's the title of my question. –  Richard JP Le Guen Mar 24 '11 at 12:36
4  
I didn't miss that, but the question is biased to assume it's not marketable. The answer is yes, it's marketable. Then the issue becomes how large of a market is there, and is that the market that you personally want to be in. The market isn't huge compared to some other languages, but if you look at companies like ActiveState, they're still making money off their Tcl distro. As for the unasked question of whether working with Tcl will expand your programming horizons... yes, it will. You might end up hating it or loving it, but you'll definitely learn something. –  Joe Internet Mar 24 '11 at 13:22
1  
Also, it wasn't me that left the wikipedia comment. :-) –  Joe Internet Mar 24 '11 at 13:23
1  
Maybe worth mentioning - the standard tcl GUI library is tk. This library has been used by some other scripting languages - e.g. Python includes tkinter as standard. So even if you never use tcl itself again, you may learn some transferable tk skills. –  Steve314 Jun 17 '11 at 17:42
show 5 more comments

4 Answers

up vote 1 down vote accepted

Tcl is different - it is a language based on string substitution semantics. So, if you want to be a decent programmer, you have to know at least a bit of it anyway - as well as representatives from all the other useful semantics. And, Tcl is used widely, you'd find really a lot of Tcl stuff in any linux distribution repository.

share|improve this answer
add comment

To answer the "marketable skill" question... it depends. Tcl is used a lot in the QA world, and is also the industry standard scripting language in the EDA world. expect is the go-to tool for many sysadmins around the world (expect is a superset of Tcl). Also, Tcl is used as an embedded language in cisco routers, tivo, and other types of devices.

From a desktop or web application perspective, though, Tcl jobs are very few and far between. I worked steadily as a Tcl programmer for 15 years or so but eventually had to switch to Python out of economic necessity.

The best thing about learning Tcl, though, is that it opens your mind up to a different way to do things. The way Tcl works is fairly unique, and remarkably powerful and extensible. It's worth learning just to broaden your horizons a bit.

share|improve this answer
add comment

What is it?

  • [Fairly] cross platform scripting or 'dynamic' language if you prefer, so it compares in many respects to the Perl, Python, Ruby group of languages/contexts. Like nearly all cross platform languages there are some occassions of failure, lack of completeness, or deviation, but it is fairly stable, so those issues should be much less encountered than perhaps you might find in the more recently popular dynamic languages.

  • It can be used in either a procedural/structured paradigm, or in an OO/event paradigm.

  • TK is a close companion Tcl, which provides mostly cross platform GUI functionality, and makes the pair often popular for sysadmin/db tool automation and visual interfaces to that automation. It can use either it's own lightweight toolkit, or a more native toolkit when one exists (and from what I can remember, most of the mainstream platforms have a native kit).

  • 'Stubs' make extension of the interrupter and language kind of unique -- it is built to act like a traditional shared library, with no hard requirement on a specific version dependency going forward when interacting with public API. Because it is fairly stable, it should generally be effective, if you need that extra language extension.

  • Licensing is BSD style, so it is easy to embed and deploy with whatever project or task you have. As point of reference, the Git for Windows package appears to bundle Tcl for use with 'gitk' and perhaps a few other supporting utilities.

EDIT:

Personally, I haven't used it for a while, and was never formally directed to. It was more or less an incubation/prototype project.

share|improve this answer
    
"fairly" cross platform? What do you mean by that? It's available on just about every desktop system imaginable. –  Bryan Oakley Jun 17 '11 at 15:11
    
As with any cross platform tool, there are occassional gotchas that are not consistent in capability or behavior when moving from one platform to another. Primarily this happens with the more popular, near defacto standard 3rd party extensions or libraries which are not the responsibility of the kit, just a byproduct of the contributing user base. –  JustinC Jun 19 '11 at 18:04
add comment

TCL = Tool Command Language. TCL is a scripting language that is designed to be embedded in other software. A network modeling tool called Ns-2 uses an object-oriented variant of TCL called OTCL.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.