Choosing an IDE for Tcl in 2022

LES in September, 2022: I've been shopping for an IDE to use with Tcl and looked at the list found on the IDE page. I spent an entire weekend testing applications and most of the information on that page is very old, so I decided to share my experience. It may save someone a lot of time and frustration.

Spoiler: Eclipse wins.

Full story: I have my own specific requirements. I want:

  • native Linux support
  • syntax highlighting
  • project management
  • GOOD code navigation
  • code block folding
  • text completion
  • ability to run the code and capture the output
  • maybe debugging (I really don't mind using print statements)

Here are the details:


Alphatk
I could find its page, but the download link is broken and there aren't any screenshots available. And it mentions Windows and Mac, but no Linux.

ased
I couldn't run it, there are errors in the code and I didn't try to fix them. I tried just a little and spotted some reference to a starkit ("not found"). Then I discovered that finding Tclkit has become difficult. All the links at the Equi4 site are broken, it seems that only Pat Thoyts still has it now. Then I found forks of asedit, namely editt and asedit. They look like good efforts, but are focused on Windows (asedit even installs auxiliary .exe executables) and don't really have the features I want.

CrowTDE
"Received positive response from the Tcl community." So maybe it was good, but I couldn't find it anywhere.

eZdit
I couldn't find it anywhere.

Komodo

***CONTENDER*** One of the best I tried, probably the second best. It is very feature-rich and has all the features I want except its code completion is a little disappointing. A minor flaw indeed. But Eclipse does that and other things better. Besides, Komodo clearly doesn't want to look traditional. The GUI is not very familiar and takes some time getting used to. Another annoyance is that you absolutely must register with ActiveState and create an account or the application won't run at all, something I seriously dislike. Do I have an account with ActiveState? Yes! Because it's awesome? No, because I was forced to.

  • native Linux support
    • Yes.
  • syntax highlighting
    • Yes.
  • project management
    • Yes, and it's pretty good.
  • GOOD code navigation
    • Good, but a little disappointing at times. It's hard to explain, I just couldn't jump around as easily as I could with Eclipse. Eclipse does a better job.
  • code block folding
    • Yes, and it works well. I didn't notice any bugs except that Komodo forgets all your block foldings when you exit the application. You will have to collapse everything manually again when you run the application and project again. Lame.
  • text completion
    • It's disappointing because it doesn't provide a hovering list of choices like others do. You're just supposed to type something partially and press a key combination and see what you get from the luck of the draw. I found that really lame to be honest.
  • ability to run the code and capture the output
    • Just as good as the contenders.
  • debugging
    • I tried it a little and it worked, but I wasn't very impressed. I don't see how it's better than using print statements. I mean, depending on the situation, print statements will do the job while this internal debugger will not.

MyTcl
I couldn't find it anywhere.

PVM
Extremely basic. Not what I want.

Quick-Tk
Very old, abandoned and extremely basic.

RamDebugger
I couldn't find it anywhere.

ScriptIt!
22 years old, more minimalist than anything else and proud of it. Not what I want.

Sepp
Designed for the very old and obsolete PocketPC.

Source-Navigator
I didn't try it. I saw the screenshots and it looks nothing like what I want. It also seems made for C/C++ programming.

TCL Developer Studio
The only available code is from 1999. Nostalgic! It didn't run. It seemed to be an easy fix, but I didn't bother. It's extremely basic in the screenshots.

Tcl/Tk Project Manager
The site refuses to work for me. "Something went wrong," it says.

TclTalk
I couldn't find it anywhere.

TclTkIDE
Weird. It comes in two binary blocks that must be joined to create an executable. What's the point? Dodging anti-virus scans? Anyway, it's for Windows only.

TIDE
"Proprietary IDE by Michael Haschek that is currently not being distributed." I checked anyway. Many screenshots, but no downloads.

Tiny Tcl/Tk IDE
"A minimalist IDE for emacs." Emacs? No way! I'm out!

tke
This is probably the most polished Tcl/Tk application I've ever seen. It really looks good and works well. However,
  • project management
    • Very basic.
  • GOOD code navigation
    • None.
  • code block folding
    • Very basic and clumsy.
  • text completion
    • No, just very basic shorthand macros.
  • ability to run the code and capture the output
    • None.
  • debugging
    • None.

tkBuilder
Seems useful and I want to keep it, but it's not an IDE.

TKproE
Pretty much the same as tkBuilder.

TkS*LIDE
Apparently this is written in Tcl but not suitable for coding in Tcl. Doesn't seem to have much in the way of features either.

Tloona
Looks good in screenshots, but won't run. It seems some internal library is missing. It's only available in starkit format and I don't remember how to unpack a starkit so I will take another look at this one later.

Tycho
Running this one is more complicated than the others and I was tired so I skipped it. Maybe it's good. You be the judge.

Wize
I couldn't find it anywhere.

IPEnv
This one is for Windows only. And it's not free. The license costs €30 for one year or €49 perpetual. Doesn't suit me.

Eclipse

***CONTENDER*** The winner in my opinion. I hesitated a lot to try Eclipse for two reasons. One, the Debian installation (Synaptic) wanted to download a large number of packages, upgrade a few more and even remove one or two. Too much trouble for my taste. Second, I always thought this was for Java only and I am not very interested in Java. Java is so "meh!" and Tcl is so awesome, why use Java at all? But I decided to download and run their own installer and let it do its job which took a fairly long time. About half of that time was spent by me reading stuff on the screen and trying to understand what the hell that installer was going to do before I clicked anything. Eclipse must be the most complicated piece of software I have ever installed. The other half was spent by the software on its own downloading and installing components. Then I spent even more time trying to understand the GUI, especially dealing with the configuration tool. Very, very complicated. I mean, this might as well be alien technology. That made me a little angry, but in the end, I had a very good and familiar looking IDE GUI with all the features I wanted. Eclipse does tick all the boxes with flying colors and this is what I intend to use from now on.

  • native Linux support
    • Yes.
  • syntax highlighting
    • Yes.
  • project management
    • Yes, and it's better than all the others I tried.
  • GOOD code navigation
    • The best one. Recognizes more symbols than Geany and Komodo (the only contenders) and navigates better. That pretty much sealed the deal.
  • code block folding
    • Yes. There is a bug in it though. It folds comments although I configured it not to (yes, you can choose what to fold and what not to), but I kind of worked my way around it by replacing # with ;#. Like Komodo, it does not preserve the foldings across sessions, but it can be told to start up with certain code blocks folded. Does not really work, but at least it's there and may be fixed in the future. Eclipse also forgets all your block foldings when you exit the application. You will have to collapse everything manually again when you run the application and project again. Lame. Only Geany does that job correctly.
  • text completion
    • It's similar to Geany and better than Komodo. You get a hovering list of choices, which is good. It's a little buggy, e.g. it inserts parentheses around proc arguments (proc someproc (arg1, arg2)), but that may be fixed in the future.
  • ability to run the code and capture the output
    • Just as good as the contenders.
  • debugging
    • I didn't test it. I prefer print statements. I'm a caveman like that.

Honorable mention: Eclipse has some kind of "time machine" that lets you bring up every version of the file you created every time you saved it and compare it with the current version, "diff" style. Then, of course you can restore the old version entirely or just copy something from the old version on to the latest one. Awesome. Extremely useful. And I didn't have to set anything up. No cvs, git, subversion, nothing. It's just there, it's dead simple and it works beautifully.


Emacs
Yikes! Hard pass.

Geany

***CONTENDER*** I really fell in love with Geany as soon as I installed it and began to test it. It looks very familiar, warm and fuzzy, a little old-fashioned even and in a good way, not in an X/Motif way. It's very small and lightweight, it feels quick and supple under my key presses. Lovely program. I am still thinking about using it instead of Eclipse.

  • native Linux support
    • Yes.
  • syntax highlighting
    • Yes.
  • project management
    • Yes, and it's pretty good.
  • GOOD code navigation
    • Not really. Disappointing with Tcl. The only symbol it recognizes are procs. No variables or namespaces. So variables are all absent from the code navigator and the "Find definition" command. No big deal with short scripts, but definitely a problem if your code is large enough. That works a lot better on Java files so it's just a matter of improving support to Tcl. Maybe in the future.
  • code block folding
    • The best of all contenders. No only does it work, you don't have to have the cursor exactly on the proc definition to fold the entire proc. Anywhere inside the proc will do, except that Geany will also fold many other kinds of code block such as if, switch, for, foreach etc. That is too much in my opinion. I only want to fold procs. That's how I organize my code. I wish I could configure what kinds of code block are foldable or not. Eclipse tries to do that, but fails. Komodo won't even try. Notably, Geany remembers all the existing block foldings when you exit and reopen the application. Bookmarks too. Bravo.
  • text completion
    • The best among all contenders. You get a hovering list of choices, which is good.
  • ability to run the code and capture the output
    • Just as good as the contenders.
  • debugging
    • Fail. The entire application freezes and has to be killed manually. Not important to me, but certainly important to a lot of people.

Kdevelop
Requires 127 dependencies to install. No way!. I never use anything from KDE because of that. At least it doesn't require kdewallpaper...

Microsoft Visual Studio

***CONTENDER*** Maybe it's good. Hard to say. It seems to be very powerful due to its plugin/extension architecture, but also kind of large and complicated. Most of the features I tested worked, but I no longer remember exactly what and how well. It just struck me as something too large and complicated, with bugs in the GUI. It didn't feel like a comfortable environment to me. Maybe I will try it again in the future.


Myrmeco
Proprietary, commercial and Windows only. I didn't test it.

netbeans
The entire Windows 95 operating system was a 48MB directory. Windows 98 was 198MB. Netbeans is a minimum 430MB download, more than 600MB on Debian/Synaptic. This is just simply absolutely ridiculous and I won't touch it.

ScriptDev
Dead link. I couldn't find it.

ViM
Great text editor, but not an IDE. Not what I want.

XF
Abandoned, replaced by TKproE.

XCode
For Mac only. And I couldn't find it anyway.

XotclIDE
Interesting tool, but not an IDE.

APN Thanks for a much needed review. I'll just point out a very recent entrant that you missed. alited, a lite editor is under active development and worth a look.

LES I tried alited, but I wasn't very impressed. Project management is pretty much just a directory, code navigation only finds procs, there is no code block folding, you can predefine code snippets but there is no completion. It looks promising, but I don't think it's a contender.

aplsimple Huh, things gained a perspective with alited! "looks promising, but I don't think it's a contender". Promising what? To be not a contender? Indeed, alited has the only contender: alited by itself. Though, being lite, it doesn't provide bells and whistles a-la Eclipse adored by someone. It is the quickest in making and maintaining Tcl/Tk apps, simple as it is. You didn't notice that? Great pity.

LES 1) The page title is "Choosing an IDE," not "Choosing a lightweight text editor." If I wanted strictly a text editor, I would stick to Vim. I've been using Vim for more than 15 years and I like it a lot, but not for coding. I miss the typical features of an IDE. I love simplicity, but sometimes "simplicity" is just poverty. 2) I list the features I desire very specifically. It's based on that list that I say that alited is not a contender. 3) Referring to features as "bells and whistles" won't make the features any less useful, nor will the lack thereof cause them to cease to be desired by anyone who wants the features.

aplsimple Perhaps you noted that APN included alited to IDE. Why? I try and explain.

Even with the drawbacks (partly false) noted by you, alited is the best tool for developing Tcl/Tk apps. Just it has some unique advantages overcoming those drawbacks.

The coolest are alited's ideas of the code unit tree and of switchings between code units to the positions you left them at. Even if these were the only profits, they would turn alited into the fastest Tcl/Tk tool. At that resulting in better quality of the code (not mine, alas; though even it profiting:)

The poor organization of the code and the poor switching between the code units are the major handicaps for the development. At some size of the code on, these handicaps become nearly self-attracting, when you waste more time searching & switching the code than coding it.

Probably, several minutes of this demo would explain it better:

https://github.com/aplsimple/alited/releases/download/2.Units_alited-1.3/2.Units_alited-1.3-dark.mp4