To Support, or Not Support Oracle? 64
knuckles79 wonders: "The suggestion to drop Oracle support has divided the OpenACS community. OpenACS is a toolkit for building community websites. It was derived from Ars Digita's ACS code base which originally supported Oracle. When Ars Digita went bust after the tech crash, the ACS code was released as open source, and a community of developers continued to maintain and extend the code base. Up until now, OpenACS has supported both PostgreSQL and Oracle. However, the only active development within the project supports PostgreSQL. Now, those with an interest in Oracle support are threatening to divide the community, as they want the community to continue to support Oracle, even though they themselves aren't actively contributing financial or development support for their favoured database. They have essentially been given a 'free ride' all this time. Should OpenACS continue to support Oracle, or drop it in favour of a full open source stack?"
Drop it (Score:5, Insightful)
One thing the users of the feature might consider is contacting Oracle. Let them know that the reason they are using their database is because of application X, and application X will soon no longer support Oracle. If this happens, they will no longer be able to continue to use Oracle. See if Oracle can devote some man-hours to contributing patches for their database.
If not, remember that you get what you pay for. You are shelling out $$$ for Oracle, but not spending any on your app. Consider an appropriately-sized "donation" to a project developer to keep the feature that keeps you in business.
Target audience? (Score:5, Insightful)
Re:Target audience? (Score:2)
No brainer. (Score:2)
If the people forking out for Oracle can't find a way to motivate the developers, they'll have to switch databases, switch apps
But you've forgotten /.'s target audience! (Score:2)
Maybe, maybe not (Score:2)
In this scenario, the Oracle people get to have an Oracle module that is guaranteed to run within the application for a very reasonable period of time. Well, up until the time that so man
Re:Drop it (Score:3, Insightful)
That's the beauty of the evolution of open source software.
And also the horrer of open source software. 2006 and people are still developing code without a database abstraction layer. That is so ridiculous as to boggle belief in this day and age. Ok, we all know the developers are working for free but if they cant simply abstract the database code (and lets face it, we are talking Postgres and Oracle here, it isn't exactly a minefield of interoperability issues to do that) they probably wouldn't be able
Re:Drop it (Score:2)
Do you know how expensive it is to abstract away differences in database syntax (especially when large companies like Oracle make significant ca$h intentionally making their syntax different/nonstandard)? If you think it's so easy, perhaps you should write it yourself for OpenACS instead of bitching about why it's not there...
Re:Drop it (Score:2, Informative)
Do you know how expensive it is to abstract away differences in database syntax (especially when large companies like Oracle make significant ca$h intentionally making their syntax different/nonstandard)? If you think it's so easy, perhaps you should write it yourself for OpenACS instead of bitching about why it's not there...
Both Oracle and PostgreSQL put a lot of effort into standards compliance. Contrary to your unfounded claim Oracle has better standards compliance than pretty much any other databas
Re:Drop it (Score:2)
That's a biggie (and stupid IMO).
Not sure what happens if you concat a string with a null or do other similar stuff.
Then there's DECODE.
Re:Drop it (Score:1)
1 is the kind of issue that can be readily managed through a database abstraction layer, having code where '' and NULL differ is a bad idea anyway which is why so many programming languages treat them as the same anyway.
2 and 3 are all fixed since 9i as far as I know, technically oracles READ UNCOMMITTED and READ COM
Re:Drop it (Score:1)
NULL means something very specific and is absolutely necessary in many places, including strings. Does the user not need to enter a string at all (use NULL), or did they deliberately skip the input field (use "")?
A very good example of a very bad way to use null. A programmer using NULL as a non-entered optional field, '' as a non entered required field may think he is being very clever but it is either a design error (the field shouldn't be required since you are allowing blank values) or a bug (the pr
Re:Drop it (Score:2)
I assume you are a developer. If you have more than 2+ years experience, you really shouldn't be saying this.
Lots of projects have a history and start with an itch. And when starting with, say, 15 screens in mind, I'm not going to set up a database abstraction layer. However, the project can grow beyond those initial 15 screens. In that case, yeah it might have been better to layer the DB away. But that'
Re:Drop it (Score:2)
Lots of projects have a history and start with an itch. And when starting with, say, 15 screens in mind, I'm not going to set up a database abstraction layer. However, the project can grow beyond those initial 15 screens. In that case, yeah it might have been better to layer the DB away. But that's history.
Wrong! You just gave the best argument one can think of to ALWAYS write a database abstraction
Re:Drop it (Score:2)
Re:Drop it (Score:3, Informative)
My impression was that ACS was built using mostly stored procedures. Kind of hard to abstract away your execution environment...
Re:Drop it (Score:3, Interesting)
We have standard SQL for years now. The only problem is that nobody seems interested on fully implementing it, and Oracle seems to want very hard to break it.
Of course, if you want to do anything that standard SQL can't do, you can't have plataform independence also.
database abstraction is often a myth (Score:2)
This is not to say thay are useless. They are productivity tools,
Re:Drop it (Score:2)
However, OpenACS does take care to keep the SQL code cleanly separated from the program code (in Tcl) or the HTML templates. If you want to make your app support both Postgres and Oracle, you can have two files giving the SQL to use f
Re:Drop it (Score:2)
Let the Market decide (Score:3, Insightful)
If people want to use OpenACS with Oracle then people will support it. Conversly, if there is no reason for it, it will be dropped and die.
The Free Market at work is a thing of beauty.
fork away (Score:1)
Same goes for all databases, not just oracle.
Re:gah who gives a shit? (Score:4, Insightful)
There will be many places where a particular organisation has invested time, money and resources to their Oracle installation for other requirements. If they already have Oracle and Oracle resources why not take advantage of that support in an application rather than learning PostgreSQL, MySQL or some other RDBMS and committing more, possibly stretched or unavailable, resources to another system.
Re:gah who gives a shit? (Score:2)
Why not? How about long term cost? From what I've heard, Oracle is neither cheap to acquire nor cheap to keep running. At some point you'll have to upgrade, and that will cost more money. The less stuff you have that needs Oracle, the sooner you'll be able
Re:gah who gives a shit? (Score:3, Insightful)
If you already have a large investment in Oracle and associated resources (trained staff, infrastructure, support contracts) for an application requiring Oracle (for whatever reason) then it is more cost effective to utilise those resources than to retrain and allocate more infrastructure.
Adding another database to an Oracle database run by trained techs on Oracle specialised infrastructure is a lot cheaper than running another database system on that server (NO!) or dedicating an
Re:gah who gives a shit? (Score:2)
then it is more cost effective to utilise those resources
Not necessarily. It depends on the time scale. Conversion costs are fixed. Infrastructure costs are ongoing. If the cost/benefit of the alternative is better at some point it makes economic sense to accept the short term pain of [partial] conversion for the long term gain of lower infrastructure costs.
This applies whether or not you can leverage existing resources. If you have existing resources available for the new task that means those resour
Re:gah who gives a shit? (Score:2)
Of course it is, why wouldn't it be? I'd be very, very surprised if anyone did, as using Windows Server would seem to imply using SQL Server for the db, but I'm not aware of any technical reasons why it wouldn't work. I certainly know people who run Oracle on Windows in non-production environments.
Re:gah who gives a shit? (Score:1)
Oracle support isn't much different from Pgsql (Score:5, Informative)
Anyway, we have two query catalogs: "sql92" and "oracle". What's nice about the way the system is set up is that we put new SQL queries into the sql92 catalog unless we need to use something Oracle specific (very rare). In that rare case we write the sql92 query and then write an identically named query in the Oracle catalog with the Oracle syntax. When the system is configured to talk to Oracle, it looks into the oracle query catalog first and if it doesn't find the named query there it looks for it in the sql92 catalog. The result is that we can support both databases with minimal duplication. 99% of the queries are in the sql92 catalog. We've found that whenever you want to use an Oracle-ism then applying some thought will usually reveal another way to handle the problem that works in both databases. Example: using case statements [postgresql.org] instead of Oracle's decode [techonthenet.com].
Schemas are a different story. The datatypes and details are different enough that we have to keep two copies of the files to create the schema and the schema updates. However, these files aren't changed that much. Also, if you are familiar with Oracle's PL/SQL then Postgres's PL/pgSQL isn't much different.
Because of the way things are abstracted in our app it appears that it would be easy to add support for other databases as needed. It's sure been a breeze to support both Oracle and Postgres.
Re:Oracle support isn't much different from Pgsql (Score:2)
Re:Oracle support isn't much different from Pgsql (Score:2)
Re:Oracle support isn't much different from Pgsql (Score:2)
Yes, I know. My point was about not using Oracle-specific syntax and using SQL92 compliant syntax instead. Case statements and Oracle's decode function both do the same thing, but case statements work in nearly all databases whereas decode only works in Oracle.
Some seasoned Oracle people will still use the old syntax out of habit. But as I said in my original post, if one does some investigation there is usually a SQL92 compliant way to accomplish something wher
Re:Oracle support isn't much different from Pgsql (Score:1)
In addition to Oracle and PostgreSQL, we also support SQL Server and IBM's UDB. Supporting Oracle and PG together is almost trivial, because underneath the hood they both use similar concurrency control methods. But don't be fooled into thinking that supporting other databases will be simple.
For us, the
Drop Oracle (Score:2)
People always want lots of features. But sometimes you just have to decide what you have resources for.
Re:Drop Oracle (Score:2)
Oracle, compared to Postgres, is:
about as fast[1]
con: prohibitely expensive for own use
con: can't be used for replicated software at all[2]
pro: handles big clusters better
con: criminally memory-hungry
con: requires a dedicated DBA just to keep it running[3]
pro: can be used as a ploy to give executives a bonus[4]
[1]. In fact, in most cases Postgres is FASTER. It takes some ch
Re:Drop Oracle (Score:1)
That's incorrect, or at least not the whole thruth. First, there's the free Express Edition. Second, Standard Edition One is either $5000 per processor or $150 per user (minimum 5), whichever you choose, which is p
Does It Matter? (Score:1)
Huh? (Score:5, Insightful)
Re:Huh? (Score:2)
The community around a piece of software consists of both its developers and its users.
Re:Huh? (Score:1)
Otherwise, you need to pay me just for being here and I demand it...
'taking advantage of' (Score:5, Insightful)
Why is it people think that others are taking advantage (in a negative way) when someone uses Open Source, but doesn't have the skills to provide code back?
Ok, I admit that if the audience is big enough, and monetary donations are relevent that code is not the only way to contribute.
At the end of the day isn't it the idea that people are using it that matters?
As for supporting Oracle there are long-term advantages to supporting multiple databases; focusing on a single database allows for taking advantage of it's features, but at the expense of future compatibility with other databases, possibly tying the new versions to too many proprietary features making it diffiicult to support alternatives.
Isn't that the argument generally used when supporting multiple browsers. Supporting multiple browsers, and working towards standards has long term benefits.
Re:'taking advantage of' (Score:1)
Most of the time, in the F/OSS world, the people writing the code are under no obligation to continue doing so.
This is, at once, the one great strength and one great weakness of the paradigm.
This comment was on topic until it went from my brain to the keyboard.
-:sigma.SB
Re:'taking advantage of' (Score:2)
Re:'taking advantage of' (Score:2)
The key here is in the word "demand". Asking for features is a contribution in and of itself, but demanding features and complaining if you don't get them, without putting energy into making them happen, is just being a brat.
Support Firebird, D3 (Pick) and MySQL not Oracle (Score:2)
Oracle can of course support their own database on the main distro, if they care, yes?
Re: (Score:1, Troll)
Keeps you honest (Score:5, Insightful)
Re:Keeps you honest (Score:2)
A agree -- keeping a good abstraction layer is important, and ideally they should be able to support not only Oracle and Postgres, but MySQL etc. too.
However, that doesn't mean that it's worth maintaining the particular Oracle-specific glue code that's used in that layer...
The writeup is misleading (Score:1)
Drop Oracle... (Score:1)
Ask the grand Oracle... (Score:3, Insightful)
Well, if they fork someone from their camp will be contributing both financial support and development. I really don't know much about OpenACS. Looking at the "Sites that run OpenACS" I really didn't see any sites that (in my professional opinion) require what Oracle offers over other databases, though that doesn't mean someone would want to use it.
Put it in the hands of those who want to keep Oracle support to in-fact keep that support. If they don't, then pull it out and let them fork. Or Ask Oracle to support it!
mind the lamp (Score:1)
Why not support Oracle? (Score:2)
I know that as a corporate sysadmin, I would love to make use of more open-source projects, but I'm not in a position to introduc
Make it the choice of the users (Score:2)
I am willing to bet that most Oracle users are commercial users. This will give some
Drop it (Score:2)
Users tend to have this misnotion that opensource developers are obligated beyo