If I was going to build something like either OpenACS or a complex
OpenACS-based application from scratch, I
certainly would not
choose to use Java for it. Gah. Although if for some reason I really
needed to operate in a Java-centric world, I'd look into
Rich Hickey's
Clojure.
I'd say OpenACS, AOLserver, and Tcl have held up pretty well over
time. I've been very pleased with how well Tcl works with AOLserver,
and in particular with how productive a programming environment
multi-threaded Tcl is. (Not perfect certainly, but much, much better
than most.) And, PostgreSQL and Oracle and were and still are
obviously good choices for the RDBMS.
However, there are certainly some interesting and potentially very
powerful tools out there now which simply weren't available back when
OpenACS got its start.
The number one tool I'd seriously investigate is Erlang, its OTP
libraries, and associated ecosystem. From what I've read over the
last 7 years or so, Erlang is probably the best environment available
for doing (asynchronous, pattern matched) message-passing, massively
parallel shared-nothing concurrency, failure recovery, live code
update, and high reliability.
The only programming language I know of that may well be better for
embedding than Tcl is Lua. Lua's community also has some very
interesting technology, particularly Mike Pall's
LuaJIT 2.0.
If I needed simple, lightweight, high-level, fast programming
language, I'd strongly consider it.
There is currently lots of activity - seemingly dozens of startups -
in massively-parallel shared nothing RDBMSs. Nothing yet really open
source though, and AFAIK the commercial systems (Teradata, etc.) tend
to be very expensive. So these databases definitely bear watching,
but don't seem like a practical approach for a general purpose web
toolkit yet. I'd stick with PostgreSQL (and Oracle).
The opposite end of the database spectrum is also interesting, namely
very small and simple databases like SQLite. D. Richard Hipp has
himself done some interesting work on using SQLite to build a
self-contained, SourceForge-equivalent website which installs
trivially and runs from one of the lowest-cost hosting providers like
Hurricane Electric. That sort of tightly focused DB-backed website
design is interesting, and might actually make for a better product if
you're selling the software, but may be less applicable to a general
purpose, more sprawling toolkit like OpenACS.
Oh, and from the limited info available, Dave Fayram's
Katamari, (which is
based on his older fuzed project
sounds like an interesting tool for managing and scaling a bunch of
websites or services written in N different programming languages. I
personally wonder to what extent it would also naturally extend to
operating as a more flexible cluster job scheduler/manager, in place
of Sun Grid Engine, SLURM, or the like.
Notice that above I've basically just listed various nifty new
programming languages, tools, and applications which, if you were
starting today, might be very helpful in designing and building an
OpenACS-class toolkit for complex interactive web sites and services.
That's because those are the main areas I see where new stuff is
likely to be a significant win. AFAICT, the basic data models and
design of OpenACS are still quite sound, and I'd likely adopt them
more or less wholesale.
Of course, there probably are at least vaguely OpenACS-like
systems out there using some of these tools. Obviously there are
smart people out there doing dynamic websites with Erlang, Ruby,
etc. etc.; not everyone is using PHP and MySQL, nor Java J2EE. Others
here are probably familiar with some of those communities' approaches
and solutions.