Forum OpenACS Development: Re: Re: OACS 6 and beyond

Collapse
Posted by Simon at TCB on
how about something more positive? (sorry I keep hitting POST before I've finished thinking)

Perhaps there should have been a stream of activity in producing a 'converstion' utility to map PG to Oracle (and vice versa).

Ok it will never be perfect and will probably not produce 'optimal' code, but in good XP fashion 'leave optimisation till last.'

Optimisation would properly belong in the domain of the oracle experts who would optimise if they required it.

There's nothing all that clever about most of the DB code in ACS so this should not be too hard. If you adopted the XP style of code developement the smaller, simpler functions would lend themselves to conversion.

Or even simpler. If the PG people were to produce reasonably exhaustive unit/acceptance tests then at least there'd be something for the oracle folks to aim at in terms of porting (rather than just having to figure out what the hell was intended)

I'm sorry but this dropping oracle stuff just doesn't stand up. There are many other avenues that could and should have been explored before such draconian action.

One of the things that I think any open source governance has to do is to accept that they are there to protect the essence of the project, not to dictate it.

OACS is dual-database. Thats one of its foundation features. Once its gone its lost for good.

Next it'll be, 'this TCL stuff, but we're mainly PERL/Java/Ruby devleopers.. we don't want to support it'

You are not evolving the product, you are fundamentally altering in a way the constitutes something new. That is not the function of an OS community in my book.

Actually, perhaps another question ought to be raised?

Why are there are significantly more PG users?

With the greatest respect to PG it simply ain't Oracle. its not even in the same solar system. Ok its free, but its no Linux is it. And frankly there is a reason oracle costs money.

Oracle is now free to developers (and has been for some time).

I can only surmise that the majority of applications of OpenACS must there be in trivial, low performance requirements where the power of oracle is surplus to requirements.

So then, why are you using OpenACS in the first place? Have you looked at it recently, the size of it, the depth of it. Originally it was designed to be powerful, capable of running highly demanding, database-backed websites. It uses AOLServer for that very reason (ask Dossy).

If you remove oracle you are demoting OpenACS. It becomes a second class application. Can't offer serious performance, but in turn remaining over-complicated for the tasks at hand. You'd be better off on Rails.

Collapse
Posted by Simon at TCB on
Acually I want to hear some reasoning from these super-human, altruistic contributors who simply code to serve the community without consideration of self-interest.

Answer me these questions.

If you are contributing out of the goodness of your heart then why does that goodness not extend to oracle? Why do you care which database it is, you are surely doing it for higher reasons? The good of the community. The WHOLE community.

What is it so difficult to support oracle? What are you doing, writing the whole PG version and the saying 'fuck, this will be hard to convert to oracle?'. Surely you should simply be doing both at the same time. Here's my little PG query, here's my oracle equivalent. You do have unit tests to prove they both work? Is this really massively time consuming or is it just that you're going about it the wrong way?

Have you thought about trying to automate the conversion to some degree? Why was that so difficult? Could no-one here have advised you?

Is there something fundamentally harder about oracle than PG? Surely the oracle folks here, who may not have time to contribute code, are not adversed to offering advice or guidance? I don't exactly see many 'how do you do this in oracle' questions? This implies to me you aren't even trying in the first place. Is this true?

I'm far from a database expert, but I can do a bit of oracle without too much trouble. Have you considered that perhaps the PG code you came up with in the first place is just piss poor and therefore you then find it hard to re-express in another database? Is this Oracles fault or are you making it harder than it needs to be.

If you can write it in PG, but are stuck when it comes to Oracle what does that tell you about your own ability? Should you really be commiting code in the first place?

I'd like to hear the answers.

Collapse
Posted by Don Baccus on
My estimate is that Oracle support adds about 50% overhead to the ongoing maintenance of a package. Less for new development.

We used an automated convertor when first porting ACS to the OpenACS dual-RDBMS support environment. For ongoing support, it's not as big a win as you might think because the tricky things can't be automatically translated. Anything that has to do with the tree structure of objects, in particular.

Now, at the same time we've been talking about dropping Oracle support, we've been moving more and more of the API into Tcl. Use of Tcl API makes support of Oracle easy during development.

BUT, as you well know, adequate testing takes time. Automated tests only take you so far.

There's also the administrative overhead of managing releases and the like.

Now, the current .LRN 2.2 release has gone well for both Oracle and PG. That's because we have ORACLE CONTRIBUTORS WILLING TO DIRTY THEIR HANDS ALONG WITH US INCOMPETENT "HOBBYISTS".

You guys step to the plate and help out, then Oracle support needn't end.

The dialogue over the past two years has taken the following form:

IF Oracle users don't step forward and contribute to Oracle support THEN we will probably drop it.

No one steps forward.

Repeat: IF Oracle users ...

No one steps forward.

OK, we'll drop Oracle support in, oh, a year or so, since no one cares enough to help support the platform.

SCREAMS OF PAIN AND ANGUISH! Oh Lord, we've stabbed you in the back!