Live data from Hacker News

The Birth of Tcl

tcl.tk

21–30 of 105 posts

Re: The Birth of Tcl

#21
Interesting to read how Expect came so soon out of TCL (TCL: 1988, Expect: 1990)

Expect remains an essential tool for dealing with interactive (but not TUI) terminal application, and in usage really fits its TCL roots perfectly. In contrast, I've found the Perl and Python ports of Expect to be somewhat awkward, not fitting those languages paradigms as well.

In the 2020s, I still think Expect is TCL's killer app.

Re: The Birth of Tcl

#22

Interesting to read how Expect came so soon out of TCL (TCL: 1988, Expect: 1990) Expect remains an essential tool for dealing with interactive (but not TUI) terminal application, and in usage really fits its TCL roots perfectly. In contrast, I've found the Perl and Python ports of Expect to be somewhat awkward, not fitting those languages paradigms as well. In the 2020s, I still think Expect is TCL's killer app.

Furthermore, I've been wanting to give our embedded app's CLI some smarts, add some control-flow features, and I can think of no better way to do implement that than make it a TCL shell.

Re: The Birth of Tcl

#23
> The Tcl Conference is also one of the world's premier events for upper body wear: each year there are 5-10 different T-shirt designs given away to recognize various extensions, events, etc.

That's funny. Is there a gallery collecting these?

Re: The Birth of Tcl

#24

Interesting to read how Expect came so soon out of TCL (TCL: 1988, Expect: 1990) Expect remains an essential tool for dealing with interactive (but not TUI) terminal application, and in usage really fits its TCL roots perfectly. In contrast, I've found the Perl and Python ports of Expect to be somewhat awkward, not fitting those languages paradigms as well. In the 2020s, I still think Expect is TCL's killer app.

[deleted]

Re: The Birth of Tcl

#25
post #2

I like Tcl a lot. The design is simple, extremely easy to learn, and yet the code is still maintainable (((looking at you LISP))). Among the scripting languages I've used, I probably liked Tcl the most. I wish it didn't fall out of favor.

In my very humble opinion, the parens in lisps are one of the most redeeming qualities as it makes IDE manipulation so much easier and macros are much easier to write. I did enjoy Ruby a lot too though, and you can definitely see some of the clean-syntax similarities.

Re: The Birth of Tcl

#26
post #19
post #2

I like Tcl a lot. The design is simple, extremely easy to learn, and yet the code is still maintainable (((looking at you LISP))). Among the scripting languages I've used, I probably liked Tcl the most. I wish it didn't fall out of favor.

Same here! Tcl/tk is a lovely little language and much under appreciated by many! Interesting software started in tcl, such as redis, expect and sqlite. Still use some tcl through environment-modules, in my personal work setup. Have to say that lisps are very nice too, in my opinion. Started learning a little common lisp recently and was surprised by its elegance. I think lisps can be very maintainable, when care is…

I think a lot of programmers as they are first learning their first language go through a phase of trying to count brackets and parentheses and failing miserably (those bugs are horrible to hunt down) before finding editors that help match them for you. Even then, many editors don't do a great job of this so coders develop a certain aversion to using many parentheses or brackets of any type. This is also rooted in the conventional C philosophies that more than two levels of indentation are a bad thing.

At least that was how I used to see things, prior to getting familiar with Lisp and emacs. Now I find myself using all kinds of parentheses in every language so as to make order-of-operations more explicit at a quick glance. I even learned to count parentheses and almost enjoy it.

I think learning Python's complete-opposite approach of getting rid of brackets in most cases and using indentation-only also clarified my thinking on the matter. I find that this brings back the old problem of mismatched-bracket bug hunting, but worse because indentation levels can get shifted and then there's no amount of paren-matching that will help sort things out.

In essence, I think everyone should learn Python and Lisp, then see which philosophy they like better.

Re: The Birth of Tcl

#27
The article doesn't discuss how Sun turned away from Tcl and embraced Java instead (understandable since it focuses on Tcl).

It's interesting because Sun had the same goals for Tcl as they did for Java (or vice-versa!): "evolve Tcl into a universal scripting language for the Internet", "allows untrusted scripts to be evaluated safely", "Tcl plugin, so that Tcl scripts can be evaluated in a Web browser".

Ousterhout spun Tcl out of Sun in late 1997, which feels like the timeline when Sun was turning to Java.

Is there insider history available anywhere on how and why that transition happened? I can certainly imagine that performance and expressivity were a concern.

Re: The Birth of Tcl

#28
post #17
post #12

Earlier quoted context omitted.

1) I realize that Tcl isn't technically stringly typed on the inside anymore, but extensionally it still appears so. 2) Attempting to understand how variable scoping works in Tcl is like attempting to stare into the maw of some eldritch horror, deeper than the earth itself by some trick of other-space, and lined with infinite rows of writhing, fang-tipped cilia. The central tenet of lexical scoping -- that bindings v…

I was thinking exactly in the eldritch horror direction. Thanks for writing that, you have saved me the unpleasantness of finding out exactly what it was that made me loathe Tcl.

What's not to love about `upvar`? /s

Re: The Birth of Tcl

#29

The article doesn't discuss how Sun turned away from Tcl and embraced Java instead (understandable since it focuses on Tcl). It's interesting because Sun had the same goals for Tcl as they did for Java (or vice-versa!): " evolve Tcl into a universal scripting language for the Internet ", " allows untrusted scripts to be evaluated safely ", " Tcl plugin, so that Tcl scripts can be evaluated in a Web browser ". Ousterh…

I was the VP of Engineering of Ousterhout's spinout company, Scriptics, and worked for him. I don't know the story of how Sun made the decision but John has a longer History of Tcl here: https://web.stanford.edu/~ouster/cgi-bin/tclHistory.php

"At the same time, it became clear that Sun needed to focus its language evangelism around Java, which was released shortly after I arrived at Sun and had become hugely popular. Though Java and Tcl are very different languages, used for very different purposes, it would have been too hard for Sun to evangelize both of them simultaneously. I came to the conclusion that, overall, Java offered more benefits for Sun than Tcl did."

John was a great person to work for. He hired me despite the fact that in the interview with him I told him I'd never used Tcl and when he extolled its virtues he told me that it was "easy to learn and had powerful regular expressions" and I said "Don't those two things contradict each other?" He stopped talking and had a rather surprised expression on his face. I thought I'd blown it. Actually, I'd done the most important thing I could possibly have done: made him think something new.

Re: The Birth of Tcl

#30
post #2

I like Tcl a lot. The design is simple, extremely easy to learn, and yet the code is still maintainable (((looking at you LISP))). Among the scripting languages I've used, I probably liked Tcl the most. I wish it didn't fall out of favor.

Fellow tcl lover here. When I left my tcl job I felt like I was approaching some next level of productivity that I've never quite found with other languages

Is this a classic story, perhaps on the tcl wiki:

On site with a customer, the question of creating a GUI interface came up. A few engineers left and, after a bit of time in another room, came back with a proposal already demo'd in tcl/tk.

Post reply on HN