Version 17 of Eclipse

Updated 2005-07-17 19:45:46

by JMG

Purpose: Tools and Hints to use Eclipse Platform as an integrated IDE for Tcl development.

RMSB why should we use a bloated IDE like Eclipse to develop in Tcl? I thought the point to develop in Tcl and other "agile", lightweight languages (call it scripting if you're in the mood) was exactly to avoid stupid and redundant bloated development environments like Java ones....

i refuse to use anything more bloated than XEmacs... :)

Look at it this way: why should someone who has chosen to do all their development in Eclipse be denied the ability to use Tcl in the work environment of their choice?

RLH thinks out loud: I guess if you already used Eclipse for Java, then it would benefit the developer to be able to develop using Tcl in Eclipse. "One IDE to rule them all," and all that rot. I prefer something lightweight, myself. On the other side, every other dynamic language has a plugin for Eclipse, why not Tcl as well?

EL The reason to have an IDE is to be aware of growing projects and to handle them better. Sure Vi (my favourite) might be sufficient for a project with 20,000 lines of (i)tcl code integrated with 10,000 lines of C code, but with an IDE like eclipse, a Code browser and template generator, syntax highlighting and code completion, jumping inside the code and so on - you can just better handle this project.

That said, there is no really good IDE for (i)tcl - probably because many Tcl'ers think that a simple editor is enough. Eclipse is an almost ready IDE, and provides a very sophisticated plugin architecture for its extension. So an (i)tcl IDE could be made with less effort simply by defining a plugin. Regarding "bloated" - nowadays machines have usually enough memory and CPU speed to run a Java based IDE. Java is not slow anymore, as is Eclipse.

My experience with other people and what they think about Tcl: Most new developers are scared by Tcl when they encounter: 1. that the language is not object oriented by default (which is a different problem) and 2. that there are no tools available for supporting fast and comfortable development, except some small programs in the ActiveState TclDevKit (but they don't even think about a license for the DevKit, if they dont get started with Tcl at all). There are even no really good commercial editing tools, Komodo is the only one I know - and this one is better suited for Python and Perl as it seems. So, new developers don't get to the advantages of Tcl because they are put back already at the beginning of their Tcl experience by simple things like a comfortable development environment. I will try to start a plugin project that makes Eclipse a suitable Tcl IDE. Lets see how far I can push it...

RLH 2005-7-8: So is Komodo an IDE or are we talking free only?

JH 2005-07-08: Komodo is certainly an IDE. You can set up projects, it has a very handy toolbox, customizable menu and toolbars, and all sorts of fancy editing features. I am curious why EL would say that Komodo favors Python or Perl though. Komodo supports Tcl at the same level as the other ActiveState supported dynamic languages. It has edit-time syntax checking, debugging, tooltips, etc.

EL 2005-07-09: JH, I am missing support for a few Tcl specific features in Komodo. E.g. it has no Itcl support, I mean the code browser is not aware of Itcl classes (at least I couldn't find this property). That is a big drawback IMHO, since I am programming in Itcl rather than in pure non object oriented Tcl. It would be good as well to have a templating system for Tcl libraries, according to the TEA standard together with a directory/source browser for the whole package - like it is done in Eclipse for Java packages (kind of: mouse click on "new tcl package" and the stub directory structure for a TEA conform extension is generated). Probably a plugin system similar to the one of Eclipse would be of advantage to implement such features in Komodo...

IL 2005-07-16: I like Eclipse for Java, because it removes the tedium of the language, for instance, remembering the exact name of the package you want imported, or catching compiler errors pre-compiler, auto-generating the ubiquitous getters and setters; this is all the crap Java makes you do that Eclipse erases. With that you can focus on development, which is nice. Tcl however, doesn't suffer from those problems ;) I'm torn on this, I suppose a Tcl project could be drawn up to give you some flexibility with namespace/package/proc managing, auto-completion, that type stuff, but I wonder if anyones application is really so unmanageable that it needs such an IDE...


Category Dev. Tools | Category Discussion