Forum OpenACS CMS: Tcl - supportable
Thanks very much for your help
TCL is far from an obscure language - for example it is used by a high percentage of server administrators to automate tasks.
It is true that it is less commonly used for developing Internet content delivery systems like OpenACS. The key reason it is used by OpenACS is that it is the language provided by the excellent AOLserver web server system. This is the server used by AOL for all of their online content which is a lot!
So while finding available OpenACS developers may not always be easy, finding developers familiar with TCL and also with Postgresql or Oracle (the two database choices for OpenACS) is not difficult.
My opinion is that you would want an OpenACS-familiar developer to develop or at least design the system and run the project. But the future developers and maintainers don't necessarily need to have prior OpenACS experience if they adhere to good development methodologies and the design is well documented. If you have existing in-house developers I would reccomend that the site developer train them in the system design etc.
One key to remeber is that any competent programmer can learn any language's syntax. The test is really in learning the system itself.
It describes why using Tcl is much less important than some other considerations.
still talk as if Tcl a disadvantage, well, they say it doesn't matter that OpenACS rely on Tcl.
Which make it seem that they are embarassed or trying to hide or avoid that fact.
I think Tcl is a huge advantage, and the primary reason, I got interest in OpenACS.
Tcl is a great general purpose scripting language with many key extensions and tool kits.
One of which is "OpenACS", the web tool kit.
"XOTcl" (a very moderm object system, only ruby can dare to challenge)
"Tk" for rapid flexible and robut UI prototyping and development (developing UI is not a brain tease riddle anymore, at least compared to GTK)
"Expect" (I don't know much about it, but from the little I read it seem very interesting)
Please visit http://wiki.tcl.tk to learn more about how flexible and useful Tcl is.
Learn about the deployment options, which is yet another key Tcl advantag.
Learn about how Tcl is the ultimate glue language.
Learn what is a glue language, what is command interface, and more.
I think Tcl is huge advantage, and thank God OpenACS doesn't use things like Java or Perl (there is already tons of framework extensible in those languages)
So I guess what most people mean when they say, don't worry about Tcl is that, unless you start wanting to extend OpenACS, i.e. write a module, you don't need to worry about Tcl.
But I would hate to see OpenACS turn its back on Tcl, cause if I ever need to write extension code I want it to be in the simple, readable, flexible, extensible, scalable web friendly, object orientation friendly, RAD friendly Tcl.
Tcl is very sophisticated, so to take advantage of some of what it provide, you will need to learn about sophisticated topics. But part of the Tcl genious, is that you can walk that way, step by step, Tcl have the grace to hide the complexties, and expose them when you have too.
Olivia, the most likely reason you haven't been deluged with responses is that all this "Tcl vs. Java vs. Whatever" stuff was hashed out many times, many years ago, and no one in the OpenACS community is interested in the debate anymore. If you really want more info, searching through the old postings here in the forums will probably find it...
As a very new in tcl world i would like to add my point of view about tcl and tcl in openacs.
I really agree with Ali, Andrew and others. Tcl is a great advantage in programming for itself, mainly if we take in account its extensions like xOTCL object-oriented extension, incrTcl and integration with tk (although i heard you could use tk without tcl using STK, a scheme interpreter) or expect (see for example DejaGnu - http://www.gnu.org/software/dejagnu/).
Technically tcl has a coherent design that is easy for programmers to internalise and make sense of, indeed easy syntax. Tcl incorporate powerful data structures such as lists and powerful primitives such as regular expressions. Thinking about a minimal specification list provided by tcl we could talk tcl is:
* convenient for script writing
But more important: Tcl is decided advantage when we look at it as a component of OpenACS infrastructure. Tcl/AOLserver have great integration and OpenACS TCL API improves it. xOTCL could be integrated easily with Aolserver too and both could be used in OpenACS (look for Gustaf Neumann posts in this forums - http://openacs.org/forums/user-history?user_id=143022). We have people from other projects looking for this kind of property: see for example this recent post about mod_perl/apache and xotcl/aolserver at http://use.perl.org/~ziggy/journal/21229 or look for Zope+Aolserver+OpenACS in google.
Also, quoting Don Baccus in a very old forum post:
"the basic AOLserver/Tcl/RDBMS paradigm is a very simple one. There's virtue in keeping things as simple as possible, isolating complexity to necessary areas, like the API between modules and the core technology." (from http://openacs.org/forums/message-view?message_id=14880)
When talking about tcl as OpenACS component remember that we won't build huge programs with 10's or 100's of
thousands of lines of Tcl within packages. When using tcl with OpenACS core technology we will be in the right domain that keeps Tcl's advantages, such as simplicity, easy glue, and easy embedding.
Yours concerns are target to build a CMS on top of OpenACS and have people to adapt and support it. Take a look at dotLRN as application specific example. The dotLRN project is build on OpenACS and today is a proven "out-of-box" (community, correct me if this term is not so adequate!) solution for e-learning. And more important you could find a large farm of dotlrn-based solutions (with the same tcl/aolserver) for education domain like Learn@WU from Vienna University (http://learn.wu-wien.ac.at/), aLF from innova group at Universida Nacional de Educación a Distancia in Spain (http://www.innova.uned.es/innova/informacion/alf/), Galileo Educational System in Guatemala (http://www.galileo.edu/dotlrn), KELP - Knowledge e-learning portal in Italy (http://kelp.sii.it:8000) and many others. OpenACS core technology is very extensible, supportable and we have great and responsible people to do that!
I do not have great proximity with openACS CMS project but maybe you could try talk with people from collaboraid (www.collaboraid.biz), furfly (http://www.furfly.com), aristoi (http://www.aristoi.biz) or others companies or independent consultants listed in http://openacs.org/community/