

Caius: a functional testing framework in Tcl - blacksqr
http://caiusproject.com/

======
th3iedkid
i don't have a lot of experience but i've only seen ppl write their own
framework in perl/python to attend to functional testing .Any more
alternatives on this anyone knows of besure dejagnu and this?

~~~
jrapdx3
I'm not familiar with this particular app (I guess, set of apps), but I have
used Tcl (with and without the Tk GUI) for a very long time. I've always been
impressed with the productivity the language allows, as well as the care its
developers take to ensure old programs will still run as Tcl is improved.

A client-server database application I wrote in 1998 (Tcl + Postgresql) is in
constant use and continues to run flawlessly, though I haven't touched the Tcl
code in >10 years. "It just works" is not just a slogan in this case.

The newest versions of Tcl incorporate a lot of functional programming
capability and OOP as well. It's truly a "multi-paradigm" language. If your
"problem space" fits into the testing domain then I'd recommend checking out
whether Caius would work for you.

~~~
kingmanaz
>A client-server database application I wrote in 1998 (Tcl + Postgresql) is in
constant use and continues to run flawlessly, though I haven't touched the Tcl
code in >10 years. "It just works" is not just a slogan in this case.

Similar situation here. A ~10 year old Tcl/Tk utility is still being used
weekly by users at our organization to process text files. The users are still
happy with the utility and it took me all of twenty minutes to write.

I would _love_ it if someone applied Tcl/Tk's pragmatism to web development.
Greater than 90% of the use cases for utilities, scripts, or simple programs
I've written can be handled with Tk's stock widgets. Perhaps a transpiler that
compiled Tcl/Tk to javascript would enable developers to throw together web
pages without getting bogged down in the web's aesthetics or technology fads.

For examples of the ease of non-OO GUI development see the following tutorial
on developing modern Tk:

[http://www.tkdocs.com/tutorial/](http://www.tkdocs.com/tutorial/)

...in the Tcl examples the programmer just heaps up widgets and he's off. The
workflow is more like developing shell scripts than the quagmire that web UI
development has become.

~~~
jrapdx3
Tk is the reason I first used Tcl. Back in the 90's Tk was certainly the
easiest, quickest way to create a GUI app, and probably it still is.

I mentioned my old Tcl/DB program--the server side. I didn't go into details
of the tiered design or the client. The users interacted with a GUI app on the
client hosts networked to the middle tier on the server relaying the response
back to the client. And of course all of these components were Tcl or TclTk
apps.

It took a lot more than 20 min to get all of it working, but the effort turns
out to have been worth investing.

I agree with your comments about the web, and I've often thought similarly
about Tk vs. html. Then again, rather different circumstances but the idea is
still appealing.

There are quite a few Tcl web servers out there. I've written several web
servers though not in Tcl. It might be redundant but lately I have been
fiddling with ideas to create yet another web server in Tcl.

What I have in mind is different, using a very functional programming style.
Tcl has become been blessed with more and more Scheme-like features, which is
a good thing since I've used Scheme quite a bit. A lot of the functional style
of Scheme can be translated to Tcl.

A related idea bubbling in my head is creating a TclTk program which can be
used to design a GUI front-end to the Tcl web server. This client would also
be able to output a Tcl function that works with the web server to generate
HTML that would be sent to a browser. IOW the Tk client GUI could be "recyled"
to produce a similarly functioning web client.

I realize that might not make a whole lot of sense when so briefly described.
Naturally, even using Tk to do something complicated isn't as easy as we might
imagine. If I can get my stuff together it would be a great idea to organize
an open-source project to implement this kind of Tk/web interchangeable front-
end.

