in reply to speed factor
CGI doesn't require resident memory.
I remember one particular intranet server at a large corporate I was at, where their standard intranet development process was Perl and CGI for 5 years.
They had 300+ CGI applications running on one 64-cpu sun box, doing all sorts of stuff.
Then the company got the Java religion, and an edict came down from on high all new apps must be Java.
So they bought an entirely new 64-cpu sun box to hold the Java applications. It was filled to capacity in 3-6 months.
CGI may be worse performance-wise on a per-call basis, but it has much LOWER resource usage on a per-application basis.
So CGI is ideal for applications that don't see a lot of usage. I have some web apps I use no more than once a month. Why should I allocate permanent memory to them.
For high traffic applications, once you reach the point where an application can consume an entire CPU on it's own the economics reverse.
By that point, you should be well and truly switched over to some sort of memory-resident run-mode.