"Perl is the duct tape of the Internet" and other musings

Ron Resnick (rresnick@dialogosweb.com)
Thu, 09 Jul 1998 10:33:13 -0400


I've been spending some cycles figuring out "how the other half
lives". Ie, never mind all this distributed-objects stuff,
how does the real life distributed object-web of today
really work? There's no doubt about it - I'm being
pulled irresistably to the dark side (no, not the MS dark
side, the *web* dark side, silly.) CORBA? No thanks.
Java? Sure, but in a supporting role. The world isn't
just a bag of beans, and isn't likely to be. I'm taking
'web coexistence' more and more seriously.
(For those who have been following my personal saga here back
since things like "Climbing Clueful Mountain"
http://sphere.cs.caltech.edu/mailing_lists/dist-obj/msg00164.html
let's just say that my thinking has really evolved a lot since then.)
So, if the web is indeed the future of ubiquitous distributed
systems, I figured it was about time I really did some of that,
instead of just read about it in the abstract.
Embarassing, but I've never actually written
a CGI or configured it into a webserver until now.

I've been fooling around with all sorts of goodies lately -
the new Jigsaw 2.0beta, with the new JigAdmin Java admin client,
(http://www.w3.org/Jigsaw/),
and the new ActivePerl Win32 beta
(http://www.activestate.com/ActivePerl/).
The former gave me a free open-source (and Java to boot)
webserver to play with, the latter gave me Perl on my NT
environment.

I have a long list of grievances about these, esp. Jigsaw,
but this is neither the time nor the place :).

Perl is neat to code in, after being sunk in Java for the last longest
while. There's a great article about Perl, which looks at
scripting languages vs. systems
languages, the pros/cons of typing, and other topics. Coauthored
by Tim O'Reilly at
http://perl.oreilly.com/news/importance_0498.html

That cute but apt subject line is a quote from the O'Reilly article,
itself quoted from "Hassan Schroeder, Sun's first webmaster".

Also, Perl, and its role as "Internet duct tape", are easing
my mind about the one nagging problem I've always had with
viewing the web in the same light as a distributed object
infrastructure: that Turing completeness thing. HTML, XML, RDF,
all that stuff is great. But where do you finally, actually,
express behaviour? In that sense, I'm still not a 'karmakid'
in the sense of Adam & Rohit and their 'data reverse salients'.
Perl helps sets my mind at ease about web+code.

And I've been spending lots of thought on the role of open
source tools vs. commercial license software in the future
of the Big Bitspace (BB).

-----
<From here on down was initially composed as a separate
post, then I mashed together the part on top with this part
below. Forgive me for the jarring change of focus. It seemed
related when I was putting all this together. I'm actually
very confused of late as to what the hell I believe about
any of this stuff :)>

So here's a hypothetical:

Suppose you're responsible for laying out the entire
software architecture for a new database-backed website.

And suppose you've bought in, in a big way, to this whole
opne source thing. While the big corporates insist on only
buying shrinkwrapped binaries from known firms (IBM, Oracle, MS
et al) and relying on the traditional support channels, you know better.

Instead, you're going to rely on complete source distributions for
all your tools, on the thriving mailing lists and newsgroups
full of tips, fixes & hints, and on the rapid release cycles
of open source sw. And, if you're still worried, there's
always the commercial support companies and consultants
cropping up to hold your hand in the free sw world, like Cygnus
and Riverace.

Where the big corporates have mandated policies written
by lawyers saying "no
'free' software allowed on premises", you're going counter-culture -
you have a policy of "_exclusively_ open source software
allowed" - you won't touch it if you can't get the source.

All hypothetical, of course, but just bear with me for a moment.

What Open Source tools do you use?

- OS? Well, that's pretty obvious. Linux or FreeBSD.
- web server? Apache, or, perhaps Jigsaw, if you're of a Java
frame of mind.
- Development tools? gcc if C/C++ is your thing, JDK if you
like Java. That's kind of a cop out, since it's $-free but
not source-free. Still, that's 'kosher'. (Does anyone know
if Gnu or others are working on something like a gnu java compiler?)
- Scripting? Take your pick - perl, python,.. All with free
source, of course, and terms that are either gpl or similar.

So what does that leave? Well, there's still one glaring hole.
Database. So far, we have a nice little arrangement with
Linux+Jigsaw+a bunch of servlets and/or perl scripts, ...
just one thing missing... the database!

I went off searching for "free" databases. I started from
the www.linux.org and www.freebsd.org sites, looking for
databases that run on these os'es.

http://www.freebsd.org/FAQ/FAQ91.html#91 mentions only
2 unknown (to me) commercial db's. ugh. Not what we want.

http://www.linux.org/apps/database.html has a much longer
list, but the majority of these also seem to be commercial
products which have been ported to linux, but either cost $,
or even if $-free, still come as binary only and under
commercial license. The small number of free (in the
open-source sense) db's which are listed
seem primarily research efforts,
without large user communities.

The most promising exception seemed to be PostgreSQL
(http://www.postgresql.org/) which seems, to believe
the hype, powerful, fast, solid, with a large number of active
mailing lists for developers & users, and distributed under
apparently liberal licensing terms
(http://postgresql.luckynet.co.il/docs/tutorial/c0105.htm)
which, while not GPL, seem "politically correct" from an
Open Source pov.

Source is fully available & modifiable.
The db itself is mature, is fundamentally RDB with full
SQL support+extensions, and with object & class notions
pioneered in Postgres' Berkeley research phase,
which they claim have later been adopted by Oracle, Informix
et al.

It all sounds pretty good. So how come I've never heard of it,
till I didn't start poking around? Why doesn't it get
the press & hpye Linux, Perl, Apache, and that lot get?
Is PostgresSQL to Oracle and SQLServer what Linux is to NT or Solaris?

If the future belongs to piles of efficiently stored & sorted
& queried bits sitting behind the WWW, is PostgreSQL the
'open source' answer for data management, much as Apache is
the web serving answer or Linux or BSD are the resource
management answer?

Are there other open competitors to PostgreSQL that are in
the same league? Or is it in a class by itself?
Should Oracle be quaking in its boots in the face of PostgreSQL,
much as MS is quaking in the face of Linux? (Ha ha, now there's
a laugh.)

Anyone with any experience or opinions on any of this?

How does Linux+Apache+Perl+PostgreSQL sound as a middle & backend
tiered server combo?
modPerl lets Perl scripts run right inside Apache
as opposed to via CGI forking, and Perl DBI presumably
can be hooked up directly to PostgreSQL. So the whole
thing should just be humming, right? And, not a lick
of commercial-license code anywhere to be seen.

The other alternative I can think of
would be Linux+Jigsaw+Java servlets+PostgreSQL. Jigsaw can
run Perl scripts too, but only as externally spawned CGIs,
and besides, the whole point to using a Java webserver is,
presumably, to run Java servlets. And again, all open source.

Oh, I get it. The correct answer is NT+IIS+SQLServer, right ;-)?

Just musing,
Ron.