Forum OpenACS Q&A: Re: OpenACS vs .NET: How is the pitch made?

Collapse
Posted by Reuven Lerner on
It's a bit unfair to compare OpenACS with .NET, because they're totally different animals.  In the end, they both allow you to create Web applications, but they do it in very different ways.

.NET is sort of like an operating system, with a huge number of libraries and utilities for developing software.  OpenACS is a toolkit for developing Web applications.  You can probably make a decent comparison between OpenACS and a particular subset of .NET's standard library.  But that doesn't do justice to a large part of .NET can do.  And of course, .NET doesn't do justice to the working applications and sophisticated infrastructure that OpenACS provides.

Let's say you want to create an online community in .NET.  Well, you have to create lots of database tables, create a library that connects to those tables, create applications for administering those tables, and then create user applications that do what you want.  With OpenACS, the odds are good that 2/3 of the work has already been done with you.

But if you're creating something totally new and different that won't rely on existing tables that OpenACS provides, then the difference is one of development speed and system stability.  Overall, I would say that OpenACS is likely to give you an edge in development speed, simply because Tcl is interpreted and thus gives you more flexibility when developing.  But I have heard from numerous people that Microsoft's development tools are amazing, and that they work really fast and really well.

Whenever I pitch OpenACS to a client, I write down a list of their requirements and then show how many of their needs are already built into the working OpenACS system.  You want users?  Done.  You want groups?  Done.  You want permissions?  Done.  You want e-commerce?  Done.  You want messaging?  Done.

The days of building Web applications from scratch are over.  You want a rich infrastructure for creating applications, and the more that comes with the infrastructure for free, the better.  .NET might give you lots of tools to create your own applications, but in that way it's more similar to the Perl and J2EE approach than to the OpenACS or Zope approach.  The latter try to give you oodles of high-level functionality, not just the tools that you need to create your own functions.