By Dan Cooperstock.
I am the author of the free (as in beer) program for charities and churches to track their donors and donations, called DONATION. A couple of people have challenged me recently about why I don’t open-source DONATION. I thought it might be helpful to explain my thinking in case others are looking at the same issue. Here are some of my concerns:

  1. Proprietary Tools: DONATION is written using proprietary tools and a proprietary database: PowerBuilder and Sybase Adaptive Server Anywhere respectively. My guess is that quite a small proportion of open source programmers know PB, or have access to a copy of it. Similarly, I think using a proprietary database would be an impediment for open source developers, but it has served me excellently ” a slightly crippled runtime is freely distributable to owners of PB, and it is fast, bullet-proof, and absolutely zero maintenance.
  2. Small Vertical Market: DONATION is a rather specific vertical-market application. I have the impression that most open-source tools target programmers, or IS departments, or at least are very general-purpose (as in OpenOffice), so that programmers might want to use them. If there aren’t many programmers who would find themselves using DONATION, why would they want to spend their hard-earned free time working on it?
  3. Income from the Program: Although DONATION is free, I do accept voluntary contributions, and I make some money from it. (I netted $1,500 last year.) That does serve as something of an encouragement to me, although user’s praise and appreciation also does so. I’m not sure how I could justify accepting contributions if I wasn’t the only one working on it.
  4. Quality Control: This is perhaps immodest, but I do feel that DONATION is as good as my users seem to think it is because it was designed by one person, with a very clear image of what it should be, and I have the right skills to pull off that design. How would I control that to make sure the quality stayed at the same high level, if others were working on it? I fear that it could take longer to coordinate needed work with others, and review their check-ins to make sure they were up to my standards, than it would for me to do the work myself in the first place.
  5. Others Stealing the Program: I also worry about someone taking my program and going into business themselves with it (or a version of it). I expect there are open-source licenses that basically say that I keep control and nobody else can publish their own version, though I haven”t looked into that. But if someone chose to ignore that, it would be hard to address. It”s not so much someone else making money off of DONATION that worries me, as it affecting DONATION”s good name if someone else puts out an inferior version, supports it badly, or whatever.
  6. More Proprietary ToolsI use other proprietary tools, e.g. HelpAndManual for single-sourcing the Windows Help file and PDF manual, and SetupFactory 7 for creating the installation builder. How would that work if others were involved? Obviously they can’t be expected to have copies of that software. And while I know there are open-source tools for doing this work, I really think they probably aren’t as good or as easy to use as what I am using now.

Here are some other issues:

  1. Open Source Database: I have been searching for an open-source database with which I could replace Sybase ASA. So far, I haven’t come up with anything that I can get to work with PowerBuilder well, and that also has an acceptable license, and doesn’t require a huge installation. (The Sybase ASA part of my installer is about 2MB, with the whole DONATION installer being about 9MB. Many of my users are small churches or charities, who still have just dial-up internet. Downloads of 20MB, 30MB or more start to get prohibitive.)
  2. Alternate Programming Language: I have given consideration to translating the program to another programming language. However, that’s a huge task, and it”s not at all clear to me what would be a better choice. I don”t think DONATION, which is for use by small organizations who often have limited computer skills available to them, would make sense to do as a web application. Java makes the most sense to me for a GUI app, but Java”s GUI capabilities pale in comparison to PowerBuilder”s, at least in terms of ease of programming. (Jacov Fain has a good recent post on this, with lots of replies, on Javalobby.) VB.NET or C# is perhaps a decent possibility, but that would require a significant download for my users with older computers that don”t have the .NET framework installed. Plus, neither .NET nor Java has a control that even approaches the power of the PowerBuilder DataWindow. (Sybase does sell a .NET DataWindow, that I could use, but then I”m back into proprietary territory!)

I am very much open to hearing counter-arguments to these concerns, and suggestions for how to work around them. I do have an ideological liking for open-source software, and I use it when I can. So please do try to convince me!

Dan Cooperstock has been a software developer for over 20 years, and currently works for Quest Software Inc. He can be reached for questions about DONATION at info@FreeDonationSoftware.org. The program”s web site is http://www.FreeDonationSoftware.org.

12 Comments

  1. How you license your work is your own business, so I’m not hinting that you should open source or anything. But for an alternative database, you might take a look at Sqlite, which is a small, embedded database that I have had a lot of luck with. I believe there is a DLL version that could be called from many languages on MS-Windows. All in all, you have good points though. Was curious, have you had many requests to add or change the way it works?

  2. Dan Cooperstock Reply

    I have looked at Sqlite. I don’t think it is really suitable for a serious database app like DONATION, for a few reasons. One of the biggest is that it doesn’t really have data types – everything is stored as a string. In addition (and this is fatal to me) it doesn’t support ODBC, which I would need to use it in a PowerBuilder app. Other things that concern me are its lack of support for foreign keys (which endangers referential integrity)and lack of user logins, which prevents me from having one read/write login used by my app, and another read-only login that can be used by my users with external programs to do their own data extraction/reporting. (I do that currently.)
    I certainly do get requests for enhancements, which I sometimes implement, and sometimes don’t. I keep a revision history page as part of my help and manual, showing each change.

  3. Dan Cooperstock Reply

    Whoops, I looked, and there sort of is an ODBC driver for Sqlite. But it’s marked as experimental, isn’t really being maintained, and has only been tested on one Windows O/S (XP). I don’t think I could consider using anything like that for a serious production program used by over 2,000 users on a wide variety of PCs.

  4. Alejandro Garc??a (Fdz.) Reply

    I guess if you are going to opensource your product,
    it is better to start it using open source tools.
    FireBird is really good in my opinion
    and also db4objects (this is open source Object Database)
    I don’t see much of a benefit for you to opensource your product. I mean how many other developers out there will be willing to work in such a product? I don’t know but 3 seem’s like a big number to me.
    How ever there is one benefit of open source that you are not considering: Permanence.
    Let’s supose that you can’t work in your product for a year, or two. I think that could kill your product, while if you make it opensource maybe somebody else will try to keep developing it.

  5. Dan Cooperstock Reply

    I have looked very seriously at Firebird. However, the full install is quite large, and I’m trying to keep my installer for my app fairly small. There is the possibility of using what they call Embedded Firebird, but I couldn’t get it to work with ODBC and PowerBuilder. I even paid someone (who claimed relevant expertise) for a few hours work to try to get that to work, and they had no success either.

  6. Dan,
    First of all, let me congratulate you for the hard work you have put in to create the DONATION program. Here is my reply to your doubts.
    1. Proprietary Tools:
    It is a misconception that open source means it must be written using free tools. Any program written in proprietory language (e.g. Visual Basic) can be made open source if you give away the source code. Your program currently is “freeware” and “closed-source”, and it can be made “Open Source”. See thousands of open source projects on http://Sourceforge.net or http://freshmeat.net/
    I happened to find another open source application “ChurchInfo” on sourceforge. I haven’t compared it with yours, but anyone can look at its source-code and fix it/improve it. That is not possible with your program.
    2.Small Vertical Market:
    It is true that Open source software is written by programmers, but it is available for ANYONE to use it. The user need not be a programmer himself/herself. e.g. OpenOffice can be used by anyone. If your program is interesting and challenging enough, you can have a large community to back it up.
    3.Income from the Program:
    You can accept donations for writing open source programs. There are so many examples of this. example: http://gallery.menalto.com/donate?donate_tag=website_footer
    4.Quality Control:
    Can you guarantee that your program is 100% foolproof, with no bugs and with all the necessary functionality? I bet, NO programmer can say that. I haven’t looked at your software, but it appears to be a desktop product.
    There can be so many ways it can be improved. You can make it web based so that multiple users can use it simultaneously. Make it flexible so that someone could work from home using Firefox instead of from office using IE. Make it available in French (I think they also use French in Canada) or many more languages. Make it work on several database platforms. Provide additional functionality like email generation, receipts in PDF, ability to process credit cards, periodic ACH debits from bank accounts and many more.
    For an excellent example of successful open source project, please see osCommerce at http://www.osCommerce.com I use it extensively and like it, not because it is free, but because I can tweek it if necessary.
    5.Others Stealing the Program:
    If you are worried about this, you can use GNU GPL license. see http://www.opensource.org/licenses/
    6.More Proprietary Tools:
    See comment #1 above.
    7.Open Source Database:
    Look at MySQL database. I have used it extensively.
    The downside is that you should be willing to give up your “control” of the sourcecode, may have to “port” your application in new language. Someone else may come up with a better idea or better functionality than your existing program does. You may have to spend hours learning new skills, new tools. But then, I believe that you’re never too old to learn something new. That’s my philosophy. I don’t know about yours.
    Warm regards,
    Uday

  7. Interestingly, Uday, over time I have been coming to the same conclusion that it may be quite reasonable to open source DONATION.
    I have been looking into the option of having the program translated to VB.NET or Java, since I think either would be more suitable for an open source program than PowerBuilder. However, it’s very difficult to get a clear quote and technical conversion details out of the few companies that are in that business, so I’m still working on that.
    Although my program could conceivably be converted to work on the web, or work with multiple databases, that’s not the market niche I see it as being in. DONATION is for small to mid-sized charities, often with only one staff person, or only volunteers, and often with no particularly technical staff person. As such, it has to be very easy to install and use, with almost zero administration. I don’t see a web solution as ever being like that, unless it was run as a service bureau, which has a whole lot of other issues. In any case, there are quite a number of players in that market, although of course none of the others are free.
    Thanks for your detailed comments.

  8. Pingback: Engine - N Information

  9. Renato Cramer Reply

    About Response #6:
    “There is the possibility of using what they call Embedded Firebird, but I couldn’t get it to work with ODBC and PowerBuilder. I even paid someone (who claimed relevant expertise) for a few hours work to try to get that to work, and they had no success either.”
    My comment:
    PowerBuilder – ODBC – Embedded Firebird
    I had success with this task in an afternoon. It is very simple.
    And I am not a expertise Firebird.
    I can help you with this, mail me: renato@domsis.com.br
    Regards,
    Renato.

  10. a bit of a late reply, but ms sqlserver embedded, might work with odbc, haven’t tried
    its about a 2mb dll i think

  11. My 50cent:
    Instead of PB you could try out QT — Trolltech it’s a GUI builder that supports both C++ and Java development. I like it and its easy to learn (relatively).. One really good thing about this is that source code can be compiled to run on all major platforms linux, mac and windows (god help us — sry). You can find more info here: http://trolltech.com/products/qt
    MySQL for a database would be my choice as well..
    I think that a lot of small church communities could draw allot of benefit from this program.. open sourcing it would make it easier to translate and distribute it to other countries. (especially if you use QT, as it has a build-in translation functionality)
    Regards Nikau

Write A Comment