Why a reluctant coder chooses OpenACS when learning other ways seems so easy

image of bricks made of tires and dirt

image (CC BY 2.0) by eekim

This post is a continuation of a series on critical reviews by coders of OpenACS. And, what it means as a reluctant coder.


Review: Integrating OpenACS with other systems is hard.

As a reluctant coder I know this isn’t so. For example, I deployed SQL-Ledger within an OpenACS intranet/back-office hosted on the web. SQL-Ledger is a Perl CGI application that is not a secure web application by itself. Yet, integrating the web app into a secure OpenACS paradigm was as straightforward as installing NaviServer’s nsCGI module and adding ‘/sql-ledger/*’ to the main site’s RestrictToSSL parameter.

In most every integration that I have had an opportunity to participate in, the only practical option has been integrating from the OpenACS ‘side’. The other ‘side’ has been inflexible. In some cases, Tcl-only was used to dynamically generate pages for serving on static website hosts. Where a database was involved, OpenACS’ database API and templating features simplified the generation of content.


Review: The OpenACS framework is powerful, but the learning curve is steep.

I thought the learning curve was steep, too, until I understood that early documentation was written for computer science engineers. Most of that documentation is only needed by the same engineers. That documentation requires an intense year of computer science training to grasp. New documentation breaks from this mold. You learn at your own pace and on a path topics that suits you.

If you are going to contribute code back to the community, there are certain conventions to follow. Yet, breaking rules is okay, if done for the right reasons. Some rules are for doing things the OpenACS engineer’s way. Sometimes that doesn’t make sense –such as when conventions haven’t anticipated certain use cases ie your case. For example, where life dictates a problem set instead of one thought up in an academic or industrial setting.

As a reluctant coder, you don’t have to wield system internals to code for OpenACS any more than wielding system internals to code for a hand-held internet device. Yeah, there are a few linkages. Your creativity and time allotted are the limits. Learning how to do something the OpenACS way has benefits. Sometimes it’s not appropriate for the task at hand. Learn the parts you need when you need them. The rest is there if you do. The effort to learn is much less this way.