Putting Information to Work with Perl: A Perl Success Storyby Bonnie Allen
How do you manage a Web site with a text-rich database that must accommodate constantly changing input and output, to and from end users? With Perl, says Brian Biggs, Web property developer at IX Development Laboratories Inc., a Santa Rosa, California company. IX Labs specializes in Web sites it calls Information Factories, or sites that involve a high degree of interaction with users. On such sites, people provide information that is manipulated to produce different information of value to other people; and these powerful, complex interactions take place behind interfaces that are easy to understand and use.
You can see an example of IX Labs' handiwork at DatingFaces, a lively Internet dating site that matches people by interest and allows a great deal of input from each person. DatingFaces has a production code base of roughly 100,000 lines in some 350 files, and it's designed to support 1,000,000 users. Data is constantly changing, and needs to be manipulated and delivered on an individual basis quickly and efficiently.To facilitate its Information Factories, IX has developed an application called Intellix. "Intellix is the core 'engine' behind our Information Factories," said Biggs. "It consists of many smaller Perl programs and modules and is responsible for all user interaction and all database transactions. Intellix is an 'integrated Web system,' offering a full management system (documentation, imaging, and text manager), and it interfaces directly with several databases."
Biggs has won a lot of praise from his colleagues at IX Labs. "We can put together complete interfaces along with an application in a very short time," said Tim Allwine of the IX Labs Product Group. "In the Web game, you have to have the ability to change quickly. What seems 'cool' one day is old the next. We are asked to make changes all the time by both designers and users, and we don't use templates. All of our Web pages are 100 percent dynamically generated; Perl makes this kind of manipulation problem easy."
"Perl is like a Swiss army knife. You can use the screwdriver, knife, scissors, or spoon to get the job done." --Dan Jenner, Operations Manager, IX Labs
According to IX Labs' founder and CEO, Stuart Malin, adaptability, speed of development, and ease of use give Perl the edge. "Perl allowed us to move from concept to production directly, without having to do formal systems design and spec. I think that any other 'formal' language demands a development style that forces a commitment to a given design and is generally inflexible in adaptation. This could never be done in C or C++."
Malin started IX Labs five years ago specifically as an Internet-related business, "back when the Internet wasn't on the radar screen for many people." IX Labs' first client was Scudder Investor Services. "We created a mission-critical, Web-based application that integrated up-to-the-minute, accurate market data from multiple data sources, client investment portfolio control and interaction, and site management to control and monitor all aspects of the system," said Biggs.
While continuing with Scudder, IX Labs' staff of eight is moving toward building Web-based services and offering them directly to the public. "Our growth will come from having ever more people using the services offered through our Web sites," said Malin. "IX Labs' mission is to make the Internet a safe and valuable tool for relationship building."
Has Perl's open-source status been a problem? Only in that some managers are nervous about it, according to Allwine. "In my experience," added Morris, "Open Source is always better supported and more stable than similar commercial software."
"We use Perl because it is the best rapid application development language available," said Malin. "We evolved our Intellix system from nada to over fifty thousand lines of code without a master plan. We have turned this growth into live, mission-critical Web sites and back-end systems on the fly. And now that Perl has a following and CPAN, we adopt key aspects of functionality without having to reinvent the wheel. Besides," added Malin, "Perl is a fun language."
If "fun" translates into enthusiasm on the part of programmers and those who are inspired to contribute to the language, this statement may be as relevant to Perl's increasing presence in programming as anything else that could be said about Perl.