On Mar 21, 2006, at 8:59 AM, Gregory Hill wrote:

Sorry for the double post, but I just thought of an example of why
relying on external modules can be bad.  In Perl, the standard POSIX
module takes up over 1MB of memory. When I was working at Navitaire, we
had one module that relied on POSIX, but only for 2 or 3 extremely
simple functions. So, in order to cut down the memory footprint of our code, we dropped POSIX and implemented those same functions internally. So, we added probably 10 lines of code to our program, but dropped over
1MB out of a 20MB memory footprint (per apache process).

So, where do you draw the line between 'language' and 'library'? Does a language's standard library count? You couldn't write much of a program in C without its standard library. What about Java? It ships with a huge number of standard libraries. Which of those would you allow?

How do you take into account the runtime system of a language? C has a pretty small runtime support library, C++ has a larger one, and Java and other virtual machine-based or interpreted languages are on a whole different scale.

All languages are implemented by someone else's code, and their power to make programs short relies upon that fact. Not allowing libraries is silly, because it's difficult to define what constitutes a library and libraries do not necessarily constitute the largest part of a program's memory footprint even when they are used.

                --Levi

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to