PLNet.org: Background and Rationale
There are probably about a million people who write
programs and applications using the PL/SQL language. There are a handful of
helpful web sites and public discussion forums that allow us to share ideas
and code, ask questions and provide answers. In general, though, the sense of
community and the benefits of community for PL/SQL developers are weak, particularly
when compared to what is available for other popular languages and tools.
I feel that this is a real shame--something that can and should be addressed.
This note gives a brief introduction to the idea, why you might care about
it, how it might work.
Why Create a PL/SQL Repository?
The Open Source software development model has proven itself as a viable way to
utilize the minds and efforts of people around the world, in a way that is impossible
for any single company. But to date, PL/SQL developers have been unable
to draw from this “well.” But why should of thousands of developers around the
world work hard every day to build PL/SQL-based systems without taking
advantage of reusable code elements? Why should few of us have access to
expertise that can help us get our jobs down in a productive way?
Having a web-based, open-source PL/SQL repository could address these issues
and be of benefit to almost every PL/SQL developer in the world. The repository
I hope those thoughts give you a clear idea of what might be possible.
Some of you familiar with other public source repositories may be asking,
I like the idea of sharing PL/SQL, but why build a new repository when
there are others we could use? Up to a point I agree--and we should
be using other available tools like SourceForge (see below) insofar as
they are useful. However, when you think about some of the features
that would be really helpful to PL/SQL programmers, it's not clear to me
that any existing repository would meet the need.
Improve the quality of PL/SQL code being written. Developers benefit
greatly from having other people look at their code. Knowing that you write
for a world-wide audience, and getting feedback from that audience, will
reduce greatly the number of bugs in your code. This will have a ripple
effect of improved quality and productivity into every development effort
throughout the world. That would be cool.
Dramatically increase the quantity of tested, reliable reusable code.
How many times has someone built a string parsing procedure, a checksum
algorithm, etc., etc.? Wouldn't it be wonderful to be able to visit the
repository and download a package, along with documentation, that is more
efficient and better written than anything any single person has time for
on a given project?
Make the world a better place! Sharing is a great thing for humans
to do. The world of Oracle is overwhelmingly driven around dollars and
personal enrichment. Nothing wrong with that, but not particularly ennobling.
Most people get tremendous satisfaction out of helping other people, of
creating a piece of software or a document that has an impact. This repository
extends that opportunity to thousands. And this repository does not mean
that your individual contribution goes unrecognized. To the contrary, your
authorship is maintained – and projected to a much wider audience.
Revitalize the PL/SQL language. Let's face it: PL/SQL is not a high
visibility, high "buzz" language. PL/SQL will always be proprietary to
Oracle, a "tough sell" in a world of open standards. Yet it is also very
much an actively used language, and will be for years to come. An open-source
repository could break down many walls, and, if things go right, elevate
PL/SQL – or at least the community of developers working with PL/SQL –
to a higher level of recognition and vitality. We could even influence
the direction of the language.
Features of a PL/SQL Repository
Here are some of the envisioned features of the repository. This is definitely
a draft list; at this early stage, almost everything is open for discussion and
change. Here is one vision of what the repository could offer:
Here are some proposed ground rules and specific features:
The most comprehensive, highest-quality archive of reusable code. It would
be the place every PL/SQL developer goes to first to see if what they need
to write is already written.
A real FAQ for PL/SQL (or pointers to one). There are snippets of such
a thing on various sites, but nothing that is truly comprehensive and as
helpful as one would expect from a language that has been around for ten
A large body of written material that would supplement Oracle's (albeit
improved) documentation with guidance for the real world.
All material in the repository will be available to any user via a license
of its creator's choosing. That would include, for example, the GNU
Public License and the Artistic License.
No advertising, either paid or unpaid.
The repository will hold both source code and documents. We could
incorporate pointers to any existing FAQs or roll them into the repository
if it's appropriate.
There will be multiple ways to search and retrieve material from the repository.
That is, via the web, or via a command-line tool.
There will be a dependency-tracking facility so that if you want to retrieve
and install a particular PL/SQL package, the tool can automatically retrieve
and install the prerequisite packages, tables, and other objects first.
There will be some kind of alert/upgrade tool that will inform you when
a new release of a package you've downloaded is available, and, optionally,
install it for you, including any new dependencies (kind of like rpmfind
if you're a Linux maven--see http://www.rpm.org/).
Will This Idea Really Work?
In addition to the Linux rpm tools mentioned above, the major inspiration for this
idea is CPAN, the Comprehensive Perl Archive Network (http://www.cpan.org),
which is the place to find all things Perl. Not only is it a fairly amazing
web site, but Perl programmers also have a “cpan” command-line program that automatically
performs all the grunge work of downloading and installing the module they want.
If you haven’t already, you could visit CPAN and envision a site like this one devoted
to improving the lives of PL/SQL developers.
Success is more likely if we build from a model that has proven itself many times
over. We have the support of many publicly-acknowledged leaders in the language,
people who are willing to devote some of their time and resources (code and documentation
they have written), and an infrastructure to house the repository.
The repository is all about content. I personally offer a variety of material for
the repository, from training material to code. One of my pet projects is using GNU
“make” to help manage the development, building, and release of PL/SQL code; the
ultimate goal is a tool that generates Makefiles for PL/SQL.
I am sure that each of you have a large volume of your own code or written material
that could be added so that, at the time of launch, the repository has an attractive
seeding of top-quality "stuff". (Heck, maybe one of you has already built that
Once a baseline of content is available, we will aggressively spread the word
about this project, and see what happens!
05-Mar-2003 9:40 AM