I spend a lot of my time trying to figure out how to create
applications that are more responsive, and scale to more users, for
less time and money. Here's a short list of technologies that promise
to help me solve that problem:
Web Development Frameworks
OpenACS is the best
way to quickly build a high volume web application. It is incredibly
well documented, and you can learn an tremendous amount by following
the toolkit's conventions for file naming, documentation, application logic
partitioning between database and script code, and the data model.
The toolkit exemplifies so many best practices that they deserve to be
considered for any serious web project, if only to define your
requirements. I'm actively working on porting this project to Apache and IIS.
is an open source file distribution tool that enables swarmed downloads
from a centralized location. It will change everything.
Groove - moves
the web beyond it's limitations to a hybrid web/desktop architecture.
They have implemented a P2P file and applications sharing framework that
can be easily scripted. The beauty of Groove is the ability to allow
people inside and outside of an organization to easily share project
files. This is something either not readily accomplished with Intranet
tools, or awkwardly implemented by project management web sites. The
best part of Groove is their vision of using it to extend existing web
services to beyond the web - a revolutionary technology that can be
easily deployed alongside existing platforms has a much greater chance
I was mentioned in this Fortune
Magazine article [link broken] after being interviewed about my experiences with
The big advantage of the web is that you don't have to install
software. Scripting technologies that package an execution environment
(a VM, in java land) offer a hint of what comes next.
Here are a few that I'm paying attention to right now:
Parrot - The
Perl6 virtual machine aims to be all things to all people, but
it's being built by folks with a strong track record of success.
What Microsoft's .NET is trying to do for strongly typed
languages, Perl6 hopes to achieve for dynamic/scripting
languages. The Parrot team hopes to have bytecode compilers for
C#, Ruby, Scheme and Python in addition to the core Perl 6/5.
Curl - an interesting
attempt at combining data and script (like TclKit, but with $50M in
venture money) that attempts to go Java one better. They did a good job
with the development environment, and a great job with the
documentation and language, but it remains to be seen whether a company
can charge money for their language. I can't come up with too many
examples of companies succeeding in this endeavor beyond a few obscure
niches (like Smalltalk or Lisp, etc).
Rebol - created by a guy
with credentials, Carl Sassenrath (invented the Amiga). Appealling
because it has a persistence/push framework and scales down to PDAs (but
not the Palm), unappealing because pricing/business model is not
described in detail on web site.
TclKit - a cool
experiment in combining code and data. I like the idea of
packaging a desktop application as a single file that can be deleted at
will. Perl versions analogous to Java Archives (JAR's) are now
SVG - a scriptable
XML format for documents, somewhat akin to Flash in what it's capable
of. It's already a W3C recommendation, so let's hope it's on the
browser adoption road map.
- commercial provider of inter-mezzo
- a DFS written/prototyped in Perl
- Cool name. Easy to deploy VPN-esque file system.
CoyotePoint - http://www.coyotepoint.com
This load balancer was very inexpensive, quick to set up, and worked
flawlessly for a 9-box web farm. Recommended.
http://www.vmware.com - A
virtual X86 machine on your desktop. This software is instrumental in
helping me reproduce bug reports on Win95/98/NT/2000/Linux and in trying
OS configuration in a convenient sandbox. It's a tool that belongs in
every developer's toolbox.