Version 0 of The NexTcl Project

Updated 2023-08-06 03:03:41 by a13cui

A13: I am officially creating The NexTcl Project (https://github.com/NexTcl-Project ). I have a dream (as Martin Luther King would say)... or rather, a goal I want to achieve: I want to improve the developer experience and the tooling around Tcl. We all know that Tcl is a simple and wonderful language, but we have to show beginners that too. You (or more likely all detractors) might argue that Tcl has gone past its prime time, but I have several contraexamples:

Why not Tcl? Objectively speaking, most if not all beginners in a programming language will gravitate towards having autocompletion, code suggestions, symbol renaming etc. All of these things usually happen because of LSP servers which makes it easy to have a single server communicating with all LSP-capable editors instead of supporting every single editor individually with various levels of support. As it stands, people gravitate, whether we like it or not, to Visual Studio Code.

As a case study, let's go to Visual Studio Code right now and see what options I, as a beginner, have for Tcl support. I go to the extensions page, write "Tcl", now let's see what the landscape is.

See the problem? As a beginner, I am really stuck with an old experience. Vim isn't better, although it has Expect and Tcl syntax highlighting OOTB. Emacs also has it (and from my experience the syntax highlighting is almost accurate, here a tree-sitter Tcl plugin). Luckily, lewis6691 is working on it: https://github.com/lewis6991/tree-sitter-tcl . The truth is that the tooling is old and antiquated. This is also a detriment to OpenACS or Fossil or SQLite users too, as well as people who use Expect.

The second thing that I feel Tcl is missing is a proper package manager and build system (okay, maybe not build, I might experiment with compiled Tcl too, but that's besides the point). I have found myself in situations where I have to dig for certain packages that people over here have created, but either nobody has bothered to put together or, worse, are dead now. It's a real shame because Tcl has a rich history and we should do our best to preserve it for future Tclers. My project is ambitious, but I feel like it's going to benefit the language in the long run. We can't go back to ActiveState and Komodo Edit, but we can dream bigger, we can envision a future where you can use the same server across all major IDEs and editors. We CAN do it!

I have learned many languages that are otherwise great, but suffer from a lack of (organized) documentation, lack of advertising or the community is just slowly letting the language die. For me, the hugest contender is Pascal and Oberon, but Tcl fits the description too. I don't want Tcl to be like this, especially when this wiki is quite active (so Tcl still has some heartbeats left).

I am going to also make a separate Mastodon account to promote all things Tcl-related and maybe make a bot that dumps topics from comp.lang.tcl. I truly believe that this language *can* gain new followers with just enough love given to it. Heck, even Perl can do it (I'm living proof!).

I think I'll coin a temporary motto: "NexTcl: Scripting Tomorrow, Today!". I'll deal with the LSP first and the necessary Visual Studio Code extension and make sure that works first and then maybe we can discuss what to do with the other rough edges of Tcl support.

What do you think? :)