Nice bit of history :-) Maybe a “history” tag would be good for this kind of thing.
one can write a small core of the algorithm in C, compile it as a dynamically loaded module or external executable, and leave the rest of the application in Perl
This reminds me of a reverse situation I found myself in around the same time which was also solved by the glue-ability of Perl. I’d written a website in C for a small independent record dealer, so hardly as portentous as HGP :-) We’d been taking credit card details and processing them offline; customers wanted faster transactions, and as you can imagine I was really keen(!) to get away from having anything to do with storing CC info. The only payment processing company the record shop was able to get merchant status with provided either a Perl API or nothing. I knew Perl was a thing but had never written any; at the time, there was no obvious way to interface it with the Faircom DB we were using, and I was loath to have just one CGI program written in a different language, as it meant none of the existing site code could be re-used, etc, etc. Bit of AltaVista-ing later, I found out about perlembed, which lets you embed a Perl interpreter in your C code. Being pretty inexperienced with this kind of thing I was wary, but it turned out to be fairly straightforward, and it totally saved the day. Tail wagging the dog, for sure, but I only had to write a very few lines of a language I wasn’t familiar with, and it worked a treat. Hooray for Perl.
I recently found out about this and the whole write up is pretty interesting, i don’t know if i should add a programming tag since it’s not an exactly/strictly programming article.
A history tag might have been good for such articles too, anyway i know we have quite a few perl enthusiasts on the site ,so even if old, thought i should share.
Did (reliably) standard IDLs with multiple language bindings exist at this time? There was ASN.1 but that had compatibility issues and was very low-level; I don’t know enough about CORBA to comment.
I ask because my first thought for this kind of problem today would be something like Protocol Buffers, potentially using a typed language with a REPL (e.g. Scala/OCaml/Haskell). That would quite possibly have slowed development initially, but potentially improved compatibility as time went on and ensured that old data remained available and old code remained usable.
I am by no means an expert on the subject but from what i know/remember there weren’t really any “real/production ready” apart from ASN.1 which is also mentioned in the story.
I don’t know enough about CORBA either, so i don’t know what status it had/was (if it had any) at that point in time.
ISO 11404 came to mind, but I see the first version was published in 1996. I’m also not sure how much support it ever had.