Forum OpenACS Q&A: Re: Why do you use OpenACS and .LRN?

Collapse
Posted by Sam Nicholson on
I began this year looking for a system which contained a bug tracker, support forum, with user management and authentication. In addition, I wanted it written in a system that allowed me to use html tagging to call the core system from html, a la PHP. Oh, and it had to be expressly *not* PHP. I've written some extensive applications in PHP, and find that with it I can be very expressive, however the fact that every language bug fix changed the semantics (if not the syntax) of a part of my code finally drove me away from it. It also couldn't be LISP or Perl. For various reasons, I find that I am not up to the task of programming in either.

I went so far about a year ago to search for the (for me) ideal scripting language and to embed it in my favorite webserver. If anyone is interested, I've got ICI embedded in thttpd. Likely one would realize that no matter how hot that combo is (and it *is*), like the mountain climber just outfitted with strong, lightweight gear, one was at the bottom of Everest. I had neither ticket tracker, support forum, nor user management. By February, I was seriously considering returning to PHP, when my websearching landed me at openacs.

I've never been a fan of tcl, but after spending some time I came to the conclusion that tcl gives the power of LISP without the (for me) mind (and finger) numbing notation. Couple that with the AOLserver's decidedly brilliant method of gathering up relevant data in the .tcl and rendering it with the .adp, and this tcl enabled system looked pretty good.

So, here is a system with a reasonable language, a template system (.adp) in which I can be reasonably expressive, coupled with pre-built and community maintained forum, tracker, and user management, and I've just saved a year of coding and debugging.

Unfortunately, we had already selected Postgresql 8 for another use, and felt that we could not support two versions. So we had to wait until OpenACS caught up. I feel that it will be worth the wait. The first time I built our app, back in 2000, it took 6 months, and the majority of that was spent catching up with PHP's language changes, and re-inventing numerous wheels. Though learning tcl and OpenACS has at times been frustrating, I am delighted that everything I prototyped in March still works unchanged today. No PHP code I ever wrote survived a single system update unscathed.

In most other template systems, if one wishes to use the "toolkit" one must adopt the system lock, stock, and barrel. We have critical time series data and filesystem based provisioning data that aren't going to be relational any time soon, if ever. So the icing on the cake for us was that we could use OpenACS' SQL-backed forum, etc, and through the flexibility of .adp, converse with our filesystem stored data as well.

I didn't mean this to be a PHP bash (I've got some very complex PHP-based code still running, albeit behind some serious ICE), but I find that the stability of each of the AOLserver, the TCL, and the OpenACS means that I can spend great effort in getting things done with the confidence that they'll keep running for quite some time. Only Perl and the C language give me anything like that kind of stability, and neither works for the way I write web apps.

So, thanks for making it possible!