Forum OpenACS Q&A: Learning Management System
TCL ACS alive. My company has invested a substantial amount of time and
money in creating solutions for businesses that run on the old ACS 3.x and it
is a tremendous relief that this community still supports and improves upon
the initial work of aD.
My question can be categorized into two parts:
1) We are currently debating migrating our code over to JAVA and perhaps
using some of RedHat's work to accomplish this. We are very reluctant to
migrate considering our love of TCL and fear of JAVA complexity. Can you
help me evaluate the pros and cons of this approach? Also, dependence on
AOLServer has been a problem with some IT staff. Is the mod_aolserver a
viable option to run ACS on Apache? I am hoping to put the final nail in the
coffin of the JAVA migration discussion. I don't understand the seemingly
bondless enthusiasm for JAVA/JSP and believe that the ease of developing
with TCL/ADP is a far better solution for web applications.
2) Over the last few years, we have developed a learning management
system that runs on top of ACS 3.x. This system is working very well for many
of our clients; although, it lacks some of the functionality found in more robust
LMS. After we determine if we should stick with TCL, we will add some
functionality to our LMS that will put it on par with the other LMS. If we decide
to stay with TCL (perhaps even if we migrate) we are considering opening up
our current code. This would require a significant documentation overhaul;
therefore, I would like to gage the interest of this community in that type of
module. I know that .LRN is going full force and it has some tremendous
functionality, but our product is geared more towards corporations that want to
train their employees online. It allows administrators to manage employees,
assignments, and reports. It allows students to view both current and past
assignments and to launch online courses (which should be SCORM and
AICC compliant soon). Please let me know if this is functionality that the
OpenACS community would like to see available under the GNU General
I urge you to post your question, along with any details you'd care to share regarding the LMS, on the dotLRN discussion board: https://openacs.org/bboard/q-and-a.tcl?topic_id=15&topic=dotLRN%20Development
Being able to develop in CCM and OpenACS I could give some options about it. Both in real client projects.
Here are the facts that I have
- CCM is more rigid and less flexible. Hence the code is more standard and way of doing things is more or less the same. But being rigid makes it very poor of fast development time that we have taken for granted in tcl. For example a tcl development time will take 2-3 days... ccm will take you around 1 week or more.
- CCM does give you the advantage of packaging your package and install it into a basic CCM. There are already rpm scripts (internal CCM ver) to turn your code in rpm packages.
- CCM is oracle only as of now. There is postgres work but its not there yet.
- CCM does enjoy of a marketing hype of Java and multiple vendors.
I think it is best for your company to use OpenACS and try out CCM. The long term plan and type of projects of your company should decide what to use. But I don't really see the point of using one over the other. Previously prior to exposure to CCM coding I thought OpenACS and CCM are the same. They have overlapping features but right now for me both are ok platform and you may just decide on a per project basis.
If the java party is banking on all hype then why don't you just download both OpenACS and CCM. Set a small specific requirement and see how it goes. CCM will not accelerate your time to market but it will give some benefits for your company. Like more tools for your developers... IDE, debugger, unit tests. Better packaging. Since its also layered a developer can just know a specific layer. CCM is good if you have a lot of developers. But its bad if only a few will have to touch all the layers while developing. CCM will also require your to invest it time and tools.
A debugger is needed in CCM. Its is unlikely you will be productive with log4j, recode, recompile, redeploy, restart. In OpenACS you can get away without a debugger. You can just watch file, ns_log, recode, refresh browser.
Clearly there is no real advantage over the other. If you can use both then good. If it must be one then OpenACS is still my choice, but CCM is worth a look.
Is there a UML model of CCM available. I poked around the RH site but didn't see one. I thought maybe there was one bundled in the download.
I haven't seen any UML that covers everything. I use eclipse and emacs. Using eclipse you can open any class and see all the methods, hierarchy, etc. You can browse around the classes. Its like Javadoc on steriods. You can also refocus on a class.
The data model of CCM is similar to OpenACS 4.5 but there are already differences. If you are already familiar with ACS 4 tcl or OpenACS 4 data model, you should be at home with CCM. But there is no direct SQL manupulation on CCM like OpenACS. All custom SQL are in PDL and basic select, insert, delete, update are done on the fly.