oreilly.comSafari Books Online.Conferences.


Perl and C++: It's the best of both worlds at Lyris

by Bonnie Allen

Discussions about Open Source versus proprietary software models all too often erupt into ideological battles. But developers at Lyris Technologies, Inc., creators of the Lyris Email List Server, the leading commercial product in its category, fashioned a marriage of convenience between C++ and Perl that meets a diverse set of needs.

Citing "efficiency reasons," John Buckman, Lyris founder and CEO, said, "We decided to write the back-end list server totally in C++, and then we spent quite a bit of time writing an extensive Perl programming toolkit, so all the features inside the C++ based list server would be available from Perl.

"The entire Lyris Web interface, which is about 14,000 lines of Perl code, was written in Perl," Buckman said, "because:

  1. We could be extremely efficient and effective using Perl to write a large web interface.

  2. Other people could then modify the web interface to their own needs and learn from it.

  3. By forcing ourselves to use Perl for all the Web interface work, we had to write a rich programming toolkit and make it available to our users. There was no way we could "be lazy" and make something that only we could use. One of the core goals of open-source is to let everyone else benefit from the work you do.

"The best glue language out there is Perl," Buckman said. "Besides, Perl is the language of choice for writing CGI scripts, so again our choice was obvious."

Interested in learning more about Perl? Read more Perl Success Stories.

The glue aspect of Perl is reflected in the fact that "it is so easy to read data from an Oracle database with Perl, or from a text file in some odd format, or parse it and call just a few functions in the Lyris/Perl programming toolkit to import data."

"We also wrote an extension mechanism in Lyris so that it can run Perl scripts at all sorts of strategic points, or when certain things happen inside Lyris. This allows people to enhance and extend Lyris from within Lyris itself.

"For example, the Junior Summit at MIT's Media lab wrote a Perl extension which translated all inbound list messages into several other non-English languages so that conversations could happen in whatever native language the person preferred. That is a fairly sophisticated extension, but I've seen simpler ones that, for instance, stripped out any HTML codes from list postings."

Lyris is the leading commercial list server, and second only to Majordomo in the total number of organizations running the software. Buckman estimates that over 100 million email messages are sent by Lyris every day. "A large portion of these users subscribe and unsubscribe using our Web interface or use Perl programs embedded in other Web sites that use our Lyris/Perl programming toolkit. If you have subscribed to many newsletters from Web sites, chances are you used our Perl code!"

Buckman refers to Lyris as "a relatively old company as far as Internet standards go, having been around for five years." An early Lyris Technologies product was TILE, which converts Lotus Notes databases into Web sites. "We needed a way to polish up the HTML output," said Buckman. "Our application was written in C++, which is a terrible language for text processing, so we decided to write all the post processing of the HTML pages in Perl. This worked extremely well and we were able to create some extremely sophisticated database conversion scripts that even today I have not seen mimicked." The technology is used on, the Lyris Technologies search engine for newsgroups and discussion lists.

"When we wrote Lyris," Buckman added, "we knew from the start that we wanted an extensive Perl programming toolkit. Easy integration into existing systems was essential for the success of our product. Integration was a crucial feature overlooked by our competitors. I believe it is one of the main reasons we are the market leader in commercial list server software. It is also crucial that we be available on all Unix platforms and on Windows, and the number of easy-to-learn programming languages (i.e., not C) that meet this requirement are few."

To sum up, "Using Perl allowed us to very quickly develop a state-of-the-art Web interface, one which Webmasters can modify to suit their own corporate needs. I believe that choosing Perl for this project was crucial in the market growth we experienced, particularly in converting sites already using a competing product."

Sponsored by: