> -----Original Message-----
> From: christopher.j.meisenzahl / citicorp.com 
> [mailto:christopher.j.meisenzahl / citicorp.com] 
> Sent: Monday, August 19, 2002 10:36 AM
> To: ruby-talk / ruby-lang.org
> Subject: Ruby vs. TCL/TK?
> 
> 
> I've just started playing w/ Ruby and like it quite a bit so far.
> 
> But I was wondering, I know that TCL/TK has a large following 
> out there. Is 
> anyone here a convert from TCL/TK to Ruby? If so, why? What 
> do you consider the 
> relative advantages/disadvantages of each?
> 
> Is it a fair comparison?
> 
> Can GUI apps be created with Ruby as easily as with TCL/TK?
> 
> Interested in your thoughts,
> 
> Christopher
> 
>  
>  
> Christopher J. Meisenzahl CPS, CSTE
> Senior Software Testing Consultant
> Spherion
> christopher.j.meisenzahl / citicorp.com
>

I actually have used Tcl/Tk a lot more than Ruby.  I'm actually starting to
use Ruby some more to see how I like it compared to Tcl/Tk.  I can give you
my preliminary pro/con list with a few qualifiers:  (1) I am not an expert
programmer, (2) I am still pretty new at Ruby, (3) I am not very
experienced, nor a huge fan of OO programming.

With those points in mind, here are IMHO some pros/cons:

Tcl/Tk
------

Pros:

* Has very mature, portable, built-in GUI library.
* Has lots of additional libraries for just about everything you could want
(smtp, database, COM, etc.) that are usally available in binary form for the
two platforms I use most (Windows and Linux).
* Has the ability to package code into a fairly small exe on Windows using
GREAT tools like Freewrap and Tclkit.

Cons:

* Syntax is quirky.
* Can't pass arrays (hash in Ruby) to functions.
* When building Guis, sometimes I feel the code gets kind of cluttered with
tons of widget commands followed by tons of pack commands.  This is probably
more due to my deficiencies as a programmer than any inherent fault of
Tcl's.  One reason I am trying Ruby is to see if it's built-in OO lets me
produce cleaner code when I am building moderately complex Guis.

Ruby
-----

Pros:

* Very clean syntax that seems to be pretty intuitive.
* Built in support for lots of libraries (smtp, ole, os level, etc.).  To
me, it strikes a good balance between the "kitchen sinkness" of Python and
the "minimalist model" of Lua.
* Can pass different code structures to functions and back.
* OO layer makes more sense to me than in any other language I have looked
at (remember I don't know much about OO).

Cons:

* Sometimes hard to find additional libraries that are precompiled with the
matching compiler (mingw, cygwin, etc.) of your Ruby interpreter.
* Gui libraries are not as well integrated into the language as Tcl/Tk, nor
as well documented.
* Not as easy to create a small exe on Windows of your completed app.


So those are my initial thoughts on the comparison.  I am attempting to
duplicate a Gui Windows app in Ruby that I wrote in Tcl/Tk.  I am using the
compiled mingw ruby that you can find at ruby-lang.org.  You can find
additional libraries there like ruby-gtk and sqlite that are already
compiled for mingw. I would like to thank WATANABE Hirofumi for maintaining
these.  When it comes time to distribute my app, I intend to slowly delete
files from the ruby distribution until I come up with the bare minimum of
files (hopefully not much more than a couple of mb) that I need to include
in my distribution.  It's crude and not as pretty as creating an exe, but it
should work.

Anyway, sorry for the long post.

Jamey.