Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror

To Support, or Not Support Oracle? 64

Posted by Cliff
from the oracle-devs-wanted dept.
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?"
This discussion has been archived. No new comments can be posted.

To Support, or Not Support Oracle?

Comments Filter:
  • Drop it (Score:5, Insightful)

    by SeanTobin (138474) * <byrdhuntr AT hotmail DOT com> on Tuesday August 01, 2006 @11:01PM (#15829431)
    That's the beauty of the evolution of open source software. Unneeded features that slow development can be dropped just as easily (if not easier) as new features can be added. If there is a strong enough demand for that particular feature, the users can maintain their own fork or pay someone to do it for them. No one should expect a free ride, let alone make demands on the developers.

    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)

      by jasonla (211640) on Wednesday August 02, 2006 @12:12AM (#15829725)
      Why is this being asked on Slashdot? If OpenACS is "a toolkit for building community websites," then the community at OpenACS's website should answer this. The link to the OpenACS forums shows there is already a large discussion happening people who actually use the system.
      • Because of the real-world equivalent of the one good moment in Attack of the Clones, "If it isn't on Slashdot, it doesn't Exist."
      • That's for the developers to decide. They're the ones investing their time and lives. If they don't want to support it, then either someone else needs to support it, or someone needs to motivate them to do it, or the support goes away. Without knowing the developers and the community, I don't know what form that would take. Money? Toys? Jolt Cola for life? Ask the developers!

        If the people forking out for Oracle can't find a way to motivate the developers, they'll have to switch databases, switch apps
      • Which would be people who enjoy making broad and uninformed claims about other people, and what they really need to do.
    • Why would you need to drop Oracle support? If the code is split from the primary codebase, a well-defined API is drawn up that allows a dynamic module to be loaded at runtime, and some sort of exception-handler is set up so that incompatiable or absent routines don't blow everything up, then you get the best of both worlds.

      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)

      by Decado (207907)

      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

      • And also the horrer of open source software. 2006 and people are still developing code without a database abstraction layer.

        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)

          by Decado (207907)

          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

          • When I last checked in Oracle a zero length string = null

            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.
      • 2006 and people are still developing code without a database abstraction layerThat is so ridiculous

        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'

        • 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's history.


          Wrong! You just gave the best argument one can think of to ALWAYS write a database abstraction
          • Plus, AFAIK, Ars Digita didn't start as an "itch" so much as a commercial venture; one of the founders discusses his POV here [waxy.org]. My point being, that "scratching an itch," while it may make a passable excuse for poor design in a small (initially) private project, shouldn't apply when you're bringing in over $1 million/month in revenue.
      • Re:Drop it (Score:3, Informative)

        by Doctor Memory (6336)
        2006 and people are still developing code without a database abstraction layer.

        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)

        by marcosdumay (620877)

        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.

      • Databases are not created equal. Abstraction layers are often more trouble than they're worth., and they encourage doing more work in code instead of letting the database handle the heavy lifting. I'm speaking as a veteren of Apple/NeXT EOF, Persistence PowerTier, CocoBase, Hibernate, Kodo, TOPLink, EJB 1, 2, and 3, and object databases such as GemStone. ADO.NET , as an example, has about the right level of abstraction one usually needs.

        This is not to say thay are useless. They are productivity tools,
      • I used to work at ArsDigita and programmed using the ACS. In my opinion the lack of a database abstraction layer is its best feature. It is not often hard to write scalable and simple database code when you have a layer that hides the true queries being sent to the database.

        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
    • A code fork does need someone to develop and maintain it. If the description is right, the people that won't support that development with money or code really can't do jack about it but complain. I think it's funny that people will pay for Oracle software but not for software that uses Oracle.
  • by CelestialWizard (13685) on Tuesday August 01, 2006 @11:05PM (#15829456)
    The beauty of the OSS system is that if there is a wan, need or requirement, then it will ultimately be filled.

    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.
  • by bugi (8479)
    If the oracle users can't be bothered to scratch their itch, then let them languish with an old version. Maybe they'll fork that and learn how much effort the contributing users have been making on their behalf.

    Same goes for all databases, not just oracle.
  • by Matt Perry (793115) <perry.matt54NO@SPAMyahoo.com> on Tuesday August 01, 2006 @11:36PM (#15829584)
    In my experience it's not much harder to support Oracle if you are already supporting Postgres provided that you are using at least Oracle 9 and your apps is well designed to support multiple databases. At work I do some development on a Java-based CMS that has backend support for both Oracle and Postgres. All of the queries are in XML files that the developers call query catalogs. In the code we call queries by name, such as listUsers, and them populate the parameters before executing. Pardon me if this some standard Java technique. I'm still relatively new to Java and haven't seen this before.

    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.
    • Oracle 9i supports case statements [oracle-base.com] as well.
      • Oracle 9i supports case statements as well.

        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

    • This is pretty much exactly the route that we take. A generic XML file, with per-database overrides if necessary, and keeping the schemas in separate files because they're different but don't change much.

      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 it. If something non-essential is stretching your resources too thin and there isn't enough interest to maintain it, it isn't worth it. I think it's really typical for programs like this to use a fully open source stack anyway. It would have been a different story if you were dropping postgres support for oracle. But in this case I think it is perfectly acceptable.

    People always want lots of features. But sometimes you just have to decide what you have resources for.
    • And those who can afford the money for a system that is for most cases inferior anyway, can obviously afford to pay for Oracle support.

      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
      • [2]. One of products of our company, a HR system, is priced at $600, another one, invoicing+stocks, #330 (Poland, so it's way less than it would be in the US). A glance at Oracle's pricing shows that they start at $5000 for the minimal license. This isn't just "expensive", this is "no business".

        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

  • As far as I was aware, one of the major reasons of having open source was that if someone wanted or needed something, they could make it themselves. If someone needs a feature, it will be added by third parties wether the original writers wanted it or not. Whats so different here?
  • Huh? (Score:5, Insightful)

    by countach (534280) on Tuesday August 01, 2006 @11:49PM (#15829638)
    How can a group of users who contribute nothing "divide the community"? They can go off by themselves, and nothing will happen.

    • How can a group of users who contribute nothing "divide the community"? They can go off by themselves, and nothing will happen.

      The community around a piece of software consists of both its developers and its users.
      • But the point being, if you do not contribute, you cannot expect anything.
        Otherwise, you need to pay me just for being here and I demand it...
  • by topham (32406) on Wednesday August 02, 2006 @12:09AM (#15829716) Homepage

    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.

    • 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

    • Well, they are taking advantage. However, the people they're taking advantage of are more than happy to help them out. However, these people aren't just using the product in question, they're demanding features from it. Feel free to use what people give you, but if you want to start making demands, then you need to start making some contributions - money or code are generally favourite.
      • Feel free to use what people give you, but if you want to start making demands, then you need to start making some contributions

        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.

  • That seems to me to be the appropriate response to jumpy splitters.

    Oracle can of course support their own database on the main distro, if they care, yes?
  • Because nothing says "free" and "open" like coercion and strong arm tactics!
  • Keeps you honest (Score:5, Insightful)

    by cerberusss (660701) on Wednesday August 02, 2006 @02:01AM (#15830004) Homepage Journal
    I would keep supporting it, since it keeps your code 'honest'. No dirty shortcuts just because it happens to work on PostgreSQL but instead a nice clean layer that keeps the queries out of the code. However, the submitter seems to have his opinion already:
    They have essentially been given a 'free ride' all this time
    I mean, isn't the whole open source thing about everyone getting a free ride?
    • 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...

  • ..in more than one way. But my biggest gripe with it is that having an oracle client implementation in your app somehow makes it all of a sudden a non-'full open source stack'. Oracle's client can be downloaded for free; there exist native php, perl, java (that I know of) client implementations on top of that. The one in java is even completely without the use of native machine code. The SQL is free in that it is free of copyrights, patents and is extensively documented. Anything else is just none of y
  • And add MySQL. Most smaller servers run MySQL, and since it's used on both windows and linux servers, you will be getting many more users then with Oracle.
  • by C_Kode (102755) on Wednesday August 02, 2006 @08:27AM (#15831240) Journal
    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.

    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
  • If the application already has a basis for Oracle support, I can't see the logic of throwing that away instead of continue to support Oracle for new features. The monetary argument really doesn't hold water since Oracle 10g Express edition is free for development, deployment, and distribution, so developers could develop & test against Oracle syntax just as easily as Postgres.

    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
  • The easiest solution is to make it the choice of the users. The current developers can send out a message to the user community saying "We can no longer continue to support the Oracle backend without additional help from the community. We will continue to maintain it if one or more people commit to supporting the Oracle backend and can contribute in a timely manner. Otherwise we will need to drop support by YYYY-MM-DD."

    I am willing to bet that most Oracle users are commercial users. This will give some
  • If the lead developers don't want to support Oracle, or anything else for that matter, then don't. If your userbase really wants Oracle support, then they can rally some developers together to help contribute to the effort. It's not the lead team's job to support things that are outside their areas of expertise or interest. If the feature has merit, someone will contribute. That's how the opensource ecosystem is supposed to work.

    Users tend to have this misnotion that opensource developers are obligated beyo

Any given program, when running, is obsolete.

Working...