I've heavily used TCL twice in my career, and while I find it an interesting experiment in a language, and actually enjoy a lot of it, I would never recommend it to anyone, nor would I ever pick it for a project. The core idea of "everything is a string" just has a lot of failure modes, and you find yourself making common errors even after years of developing with it.
But it's a really neat exploration of a "what if" in programming languages.
I haven't used Tcl for anything in ages, but I have a book on it that I thumb through sometimes because it's so bizarre and fun to read about.
For example, you can delete or rename procedures on the fly, including built-in procedures. So you can rename a built-in like puts to something else, create your own puts procedure, and then call the old one (under its new name) in your new procedure (in case you wanted to override it to do some pre- or post-processing each time). You can even redefine procedures within themselves.
You can use variables in variable names (PHP does this as well).
The comment character # is a valid name for a variable or a procedure.
"Everything is a string" extends to even lists and code blocks.
Even though we've moved away from the hyperflexibility of languages like Tcl and Perl, they certainly served their purpose, and a lot of their better ideas were refined in their more orderly successors.
In the 1990s, when Tcl was taking off, there was really nothing else that made it as convenient to glue together different C libraries and slap a (Tk-based) GUI on it. It was a welcome revelation, compared to XWindows programming.
In the 1990s.
Yeah, my first encounters was the early 90s, where I wrote a gene sequencing support system with TCL/TK - it was pretty fun and worked pretty well, but there wasn't a lot available in the space. Python was still being dreamed up, bash wasn't up for it, and otherwise you had Fortran/C/C++/Pascal/Lisp.
Fast forward 20 years and I found myself using it again, but it felt silly compared to the now-mature Python, Lua, PHP, and Ruby.
To me, it seems fine in the space of an embedded scripting language where you let end users script within your otherwise "not tcl" application.
These days, maybe lua is a better choice, but I can see lua being more intimidating for smart, but less software-experienced people. "Everything is a string" might be more intuitive for them.
I was just thinking about this today. I am currently forcing myself to work on TCL for a small project (I've only used it casually before). Coming from lisp I can appreciate some aspects of it, but it can be frustrating at times.
i feel like a good business idea would be showing new product names / logos to a group of 50 people from various demographics and ages to see if the name clashes with something else.
bc this one quite quite funny
This project predates the song i assume you're referring to by 2 or 3 years
It made me think of the old wireless application protocol stuff - WAP. I did create a site in WML around 2002 but all i remember is a <card> structure.
I worked with some guys who released one of the first mobile online games over WAP (it was a spin on wumpus hunt)
There's some... apps on this server
certified geek seven days a week
I don't cook, I don't clean
but let me tell you how I got this app running
In all seriousness, I don't think there is much overlap in people who know about Wapp and those who know about WAP.
Tcl on the web; That's a Wapp
Yeah, imagine the name of your product sounding like the Western Australia Party!
I'm sure pretty much every word clashes with something and is "quite funny" at some point in time, and that's not even considering other idioms.
Better just call it whatever you find OK at the time ( minus the legal stuff ).
Btw, having a framework called Wet Ass PussPuss -> (,)++ for short it's pretty cool.
Cardi B's favorite framework
You mean her song about wireless access points?
mixed feelings about this not being the top comment
TCL was the first programming language I learned because it was used to write scripts for IRC bots. Funny times :)
It seems like many of these commands should be methods on an OO object or at least subcommands of "wapp".
What could be the benefit of dragging OO into this?
It would be more Tclish, more similar what other Tcl packages (third-party and core ones) do.
For TCL? But why?
Also, sometimes it seems “hacker” in Hacker News has been lost and replaced with corporate group think consensus, here.
"Growth Hacker News"
It's thankfully moved on from those days, but for a while it was "San Francisco and some tech News"
It was written by the author of SQLite, which is basically a Tcl extension that escaped into the wild.
There's a talk by DRH at the Tcl 2019 Conference regarding Wapp .
 https://youtu.be/Aq4NI5NTUpU time code 1:49:34
Yes, why on earth would someone use a tool designed to work directly with text to manage a text-based document definition protocol, when so many more complicated options are available?
Tcl had a very short time in the fickle web dev spotlight, mostly due to Aolserver and Philip Greenspun. Something between CGI with Perl and whatever Java had to offer in the deep end of the 90s.
At that time, a few lucky folks made way too much money using weird languages for the fledgling commercial internet.
Get a daily email with the the top stories from Hacker News. No spam, unsubscribe at any time.