Skip to main content

Programming Enterprise Application in Perl - 00

SellerBay is a software package I have been developing part-time over the past 1 year. It's aimed to help online sellers make their sales activity efficient and as automated as possible. The commercial motivation comes from prospects of growth of online sales, and the impact that is going to have in reorganizing traditional sales-channels.

Perl is the lingua franca, which I mainly chose because:
  • I am familiar with it from past projects of developing network (LAN, 802.11) appliances
  • From the good things I read about how portable it is.
  • It's age, the "old-wine" status. I just felt better going for something that's been around since so long.
New languages like Ruby, Python etc as well as commercial spins like J2EE, .net were other options that crossed the decision table. .net was easiest to rule out, coz we all know from experience that stuff from the Microsoft-house-of-shit-software-sold-by-genius-marketing-campaigns is best to keep fingers off.

I've read a lot of good things about Ruby, Python and other new languages and how web-app developers are falling in love with them, but having writting 0 lines of code in any of them and SellerBay's objective of being a market-ready ASAP, I shied away from the adventure of getting into them from the scratch.

J2EE was the other other serious alternative, which I am not totally unfamiliar with, but here again Perl won out on portability and age.

I haven't forgotten PHP - features are super fast to accomplish and programmers are abundant whenever I need some coding support. But I stayed away from this given the fact that SellerBay is an Internet based app and security could be my nightmare when the code grows to a sizable amount.

Why is portability important for me? It is because I'd like to keep the flexibility of moving the production, development or staging environments between machines as fast as cafeteria lunch gets served on a weekday. This gives me the advantage of modifying the application environment at will, which I may need to do often till a really stable 1.0 version makes the first dollar.

Why is age important? Mainly because of support. Indeed with Perl I have a luxury of going up to and typing in any keywords like "pdf reports" or "date calculation" or "templates" and find a selection of packages ready to be installed, evaluated and adopted into the application.

So far it's been very rewarding to have banked on Perl, which means I am able to get the features I need without major overheads of time or cost. I am consious of the fact that I might be writing some 20% extra code in implementing certain functions where other langs have them built-in, but it doesn't bother me at this point.

In the long-term I would consider having made a correct choice if these requirements are fulfilled.
  • Performance - The app needs to perform at speeds ala Google, and definately not at those of Paypal and ebay. I am aiming at 1000 simultaneous users
  • Application growth - SellerBay is destined to grow in features as demand for them rises over the years. We also need to make sure that it is prepared to be offered in multiple-languages and look & feel issues (which are at the front-line to customers) can be resolved quickly.
  • Security - There isn't much room to allow for an attack, because it will of course mean loss of revenue and reputation, but I fear it is also going to be difficult to recover from an attack given the minimal resources available to pull this project off.