4 ms·
Tcl Conference 2013 – Call for Papers
- hardwaresofton 13y agoSo, I end up using TCL at work, and I hate it. I'm trying not to let the hate bleed out here, but why in the world is anyone still using this language? If it's for TK integration, there are other options
- anon35 13y agoA lot of well-reasoned arguments are laid out in the Tcl advocacy page here: http://wiki.tcl.tk/590 http://wiki.tcl.tk/590
- hardwaresofton 13y agoThanks for link, will forward next time someone complains around the water cooler
- davidw 13y agoAntirez' comments on Tcl are also worth reading: http://antirez.com/articoli/tclmisunderstood.html http://antirez.com/articoli/tclmisunderstood.html I think you appreciate Tcl the more you see how it's built under the hood. I'm guessing you're using some crufty EDA stuff though, where you're not seeing the good side of the language, and dealing with a lot of accumulated baggage.
- tptacek 13y agoIt is an extremely simple language. It admits to enough metaprogramming to do many useful DSLs; it's always been a half-ass version of Lisp in that regard, but with more congenial syntax, and before any other language embraced the idea. It was the first of the scripting languages to do a truly good job at embeddability. incr Tcl has a very clean design. The language is designed from the bottom up to work well in event loop programming, in much the same way Golang is designed for lightweight threads. It's true that the language hasn't aged well, and I have a hard time coming up with an example of a project I'd bring it into (for extreme embeddability I assume I'd go with Lua; for DSLs I'd use a Lisp dialect or Ruby [aka Japanese Tcl], and object oriented design has fallen somewhat out of fashion. Do you work at Cisco?
- hardwaresofton 13y agoThanks for the breakdown, I agree with these things, and it does blur data and function, which I have seen in some code segments. And I'm not without thought on the subject, I mean I know it pairs super well with C and there's a reason I deal with so much legacy code in it. It just sorta blew my mind that people still want it around enough to have conferences about it. The first time I left an unbalanced close brace in a comment, I started to dislike TCL (I mean, it's not the worst thing in the world), maybe I was hasty, but if other languages can solve that problem, it seemed hard to fathom why TCL hadn't solved or at least patched to fix it yet (maybe also the version we're using is outdated) And no, not Cisco, but a more-hardware-than-software company
- tptacek 13y agoDon't get me wrong, I can go all day on what I don't like about Tcl. In 1997, the startup I was at had me design and implement a programming language (long story); in '99, the cofounders at my next startup convinced us to use Tcl, and I still vividly remember that the language parsed freaking comments; you could get a syntax error in your comments. It's not a great language. It was, though, at the time, a pretty good tool for building some kinds of programs. Tk is pretty gross; I'm always weirded out when people say that's the reason they like Tcl.
- jbarham 13y agoTrue story: Since Tcl is embedded in Cisco's IOS it is the de facto standard scripting language for high-performance network gear. I once worked on a very large application that was written primarily in Python but had a Tcl scripting API that spoke to the Python side of things via their respective C APIs. I do not miss debugging that code...
- bch 13y agoIt's also embedded in F5 (as iRules) and A10 network gear. See https://devcentral.f5.com/tech-tips/articles/irules-concepts-tcl-the-how-and-why https://devcentral.f5.com/tech-tips/articles/irules-concepts...
- itazula 13y agoI haven't programmed seriously in Tcl for a number of years, but found it to be very useful for prototyping. So useful, in fact, that the prototype often became the production code. The code was robust and easy-to-understand. Still, when I recently needed to create a program for my own use (using only Tcl, not Tk), I was able to do so fairly quickly, after reviewing a few basics. I didn't need to worry about syntactic "sugar." And it was kind of nice having Tcl available on my Mac, already installed. Maybe it's there because of SQLite, I don't know. (Yes, I know Python is there too ... ) Years ago, the first time I needed to program a GUI, I recall, as part of my evaluation of the tools then available, reading Brian Kernighan's paper on his experience using Tcl/Tk . (That paper is available at http://www.cs.bell-labs.com/who/bwk/index.html http://www.cs.bell-labs.com/who/bwk/index.html). By the way, his book (written together with Rob Pike), "The Practice of Programming" is excellent, and uses Tcl for some of the examples. To hardwaresofton: I think the situation you find yourself in might be a blessing in disguise. You have the opportunity to really explore and to get to know a language that seems to be despised by many. You might try coding the same thing in different languages, and comparing the experiences. Is the world of programming that much more productive with languages other than Tcl? Perhaps in certain domains and for certain uses. But by how much more would you be productive if you were able to use your language of choice? Would there be any trade-offs? I wonder. At the very least, you might find that Tcl has a niche in your set of tools.
- timthorn 13y agoThere is no such thing as a prototype, just code that hasn't been released yet. Flippant, but I've been burned several times before - think of dirty hacks in prototypes as a low rate introductory offer on the credit card of technical debt. (I'm not implying anything negative about TCL or prototyping, just an extension of the parent's first paragraph)
- drbig 13y agoI'd say the Tcl community has matured well, and considers Tcl a tool, acknowledging both its pros and cons - which is why no one there cares that you think Tcl is dead/uncool/why_anybody_still_uses_it!!eleven!?. Also my feeling is that most complaints about it were voiced by people using some ancient versions without bothering much to look for idioms etc. For me Tcl/Tk was the easiest way to do a quick GUI program that was cross-platform, way long before Java was there.