No it isn't; I just get an empty frame with a close button. This is consistent on multiple browsers/platforms.
Coincidentally Tcl also inspired my first deep dive into Vim. The test automation framework at that company required meaty Tcl expressions packed into CSV cells. Tcl was mind-boggling enough when properly formatted, so hand-editing squashed 1800 character long expressions on a single line was way too much. I'm fairly certain the assignment was part hazing and the framework part "job security".
Jokes on them, I spent 2 weeks on a side quest to make a Vim plugin that could add line breaks and indent a Tcl expression into a split temporary buffer for editing and squash it back to the right cell when I was done. Halfway through the summer I had completed the entire backlog. The manager got a reprimand for being a jerk and I spent the rest of the summer making the framework less painful.
LUks is a requirement and requires a random password on each workstation. Password generation with handmade web gui stored natively in sqlite all under 200 LoC so far.
Tcl gets flak, but it's battle tested. Still under active development and has a cool GUI, Tk, I love it as a language. In terms of simplicity it just works out of the box, execution in a single file, in a sanely manner.
Wrap a variable in brackets {} and you've secured yourself from injections or run the procedure in a lightening safe interpreter if your paranoid.
Threading is a breeze. It does make you think in a different methodology which folk may rebuttal, but once you get it, it's great.
NaviServer too, AOLs original webserver is awesome.
At least that is how it went for me. Once I got basic functionality working it turned into something that evolves instead of being written; working on some project and realize a certain feature would be great, open editor's built in console and write a few procs, send it to the interpreter, test, save, continue on with other project, fully intend to document and improve/generalize later, repeat until it turns into something only you can use.
Alphatk for example: https://en.wikipedia.org/wiki/Alphatk
An interesting one I hacked around with for a while is [ma](https://github.com/kdltr/ma). It's a single window implementation of an acme-like editor. It was originally written (& still used by) Felix Winkleman, the creator of chicken scheme
[1] https://www.orafaq.com/usenet/comp.databases.oracle.misc/199...
[2] https://newscenter.lbl.gov/2005/03/31/a-search-engine-that-t...
Though there was an attempt[2] to make a Visual Tcl at some point. IIRC one neat aspect was that the program was actually live while you were designing it instead of having separate design / run modes.
[0] https://www.lazarus-ide.org/
Well, yes, I get that—and I much prefer Tcl. What I meant was it filled the role of "tool you use to get a GUI together quickly", especially in the early 90s. Gambas and Lazarus were not around back then.
Lazarus is closer to Delphi than VB, and I've found it to be clunky also in practice if not in principle; Delphi took on a lot of production workload in the 90s, and having an open source workalike would be a boon to business. We seem to have trashed tools that enabled line-of-business apps to be built by single devs, only for AI companies to sell that ability back to us again in the form of LLM assistance. Sometimes I hate this civilization.
On the other hand Delphi/Lazarus has a much more capable language and richer set of components (and in Lazarus' case much better support for automatic layouts), which IMO is better overall.
But yeah, in the 90s Lazarus didn't exist (Delphi did though) - IIRC it was made around 2000 or so but it was really janky for most of the 2000s.
Note that Delphi (and Lazarus) is used for a lot more than LoB apps. It was used a lot by shareware developers for example (and some still use it, e.g. IIRC both Beyond Compare and Total Commander still use Delphi - with Lazarus for crossplatform and/or 64bit builds).
I think Qt Creator is still the best option I've used there. It has a very good GUI form editor (probably the only one I've ever used that is good). You can have a basic GUI up and running in like 5 minutes tops. And C++ is a much better language than TCL, and Qt is a much better GUI toolkit than Tcl/Tk.
Just steer clear of QtQuick and QML. It's kind of trash. QtWidgets is still supported though.
http://www.art.net/~hopkins/Don/simcity/keynote.html
At that point in history (1993), TCL/Tk was ideal for what I wanted to do. It was very easy to integrate with C code (exposing the SimCity simulation engine and callback as TCL commands), and implement custom Tk components (like pie menus) and services (like a real time sound mixer).
w_piem.c: https://github.com/SimHacker/micropolis/blob/master/micropol...
I also made a multi player version of SimCity that took advantage of the X11 version of TCL/Tk's ability to open multiple displays at once.
https://www.youtube.com/watch?v=_fVl4dGwUrA
Multi Player SimCity Announcement: http://art.net/~hopkins/Don/simcity/simcity-announcement.htm...
SimCity on SGI Indigo: http://art.net/~hopkins/Don/simcity/SimCity-Indigo.gif
SimCity on Sun OLWM: http://art.net/~hopkins/Don/simcity/SimCity-Sun.gif
SimCity on NCD X Terminal: http://art.net/~hopkins/Don/simcity/SimCity-NCD.gif
I visited Professor John Ousterhout at his office at UCB with an SGI Indigo to give him a demo and express my gratitude and admiration, and demonstrated it running across two SGIs at the ACM InterCHI '93 conference Interactive Experience to demonstrate the cooperative multi player aspects like multiple views, multiple cursors, collaborative editing, and voting.
http://www.art.net/~hopkins/Don/simcity/simcitynet.html
Eventually I talked EA into open sourcing SimCity, cleaned up the TCL version, and released it on the OLPC (and renamed it Micropolis to not infringe on Maxis/EA's trademark):
Open Sourcing SimCity:
https://donhopkins.medium.com/open-sourcing-simcity-58470a27...
micropolis activity: https://github.com/SimHacker/micropolis/tree/master/micropol...
micropolis.tcl: https://github.com/SimHacker/micropolis/blob/master/micropol...
https://opensees.ist.berkeley.edu/wiki/index.php?title=OpenS...
Luckily, there is also now a python interpreter.
TCL can be so customized that it’s unrecognizable, breaking all compatibility between hosts.
shanemhansen•13h ago
When I started that job I didn't know the difference between Tcl and TCP. I spent a couple months studying Phillip Greenspuns books. It also made me a better engineer because unlike PHP I couldn't just Google how to do basic web server stuff so I had to learn from first principles. That's how I ended up building my first asset minification pipeline that served the "$file.gz" if it existed with content-encoding: gzip.
Nearly 20 years later and I'm basically a http specialist (well, CDN/Ingress/mesh/proxy/web performance).
Tcl is still kind of neat in a hacky way (no other language I've run across regularly uses upvars so creatively).
Shout-out to ad_proc and aolserver.