develooper Front page | perl.perl5.porters | Postings from April 2001

on bloat

Thread Previous | Thread Next
Jarkko Hietaniemi
April 16, 2001 11:59
on bloat
Message ID:
I have heard some mutterings about the alarming rate of bloat growth
in the core and I can easily understand the concern, so I guess it's
again time for my intermittent policy reminder.

First, a review and a preview:

What has been integrated since I took the helm:

	Digest + Digest-MD5
	Filter-Util-Call + Filter-Simple
	MIME-Base64 + Mime-QuotedPrint

New submodules of previously existing modules:


New modules sort of written for/during 5.7:


What I still plan on integrating before 5.8:

	libnet [1]
	Locale-MakeText + I18N-LangTags
	Math::Big* [2]
	Time-Object [3]

[1] This will happen if Graham figures out a nice way to somehow
    either avoid or ease the Net::Config step.  Configuring your network
    settings should be a separate step from building / installing Perl.
[2] If Tels finishes his rewrite in time for the new code to be tested.
[3] Somewhat extensive API revamping has taken place recently
    (the new version unfortunately not in CPAN), and I hate the name
    Time-Object.  Maybe Time-Piece, since it deals out the information

I'm also open to suggestions on some OO modules: Tie::SecureHash,
Class::MultiMethods, and Class::Contract have been suggested, but
I feel uneasy letting the mad Aussie to overwhelm us :-)

Lincoln Stein may implement some IO::Socket extensions
(sendmsg, recvmsg, multicast), if he finds the time.

Now, why these (aka "He must be barking mad" or "There must be a conspiracy"),
why these at all (aka "My perl1 programs work just fine without those"),
and why not something else (aka "He must be barking mad not to see the
obvious utility of including X")?

Rule #0: High utility/size ratio (Class-ISA).

Rule #1: Shorten the FAQs, wishlists, and to-do lists.
         (Switch, Time-HiRes, Scalar-List-Utils)

Rule #2: Prefer and showcase Perl's strengths: text processing
         and dynamicness (Text-Balanced, Memoize) (see also #7 vs #8)

Rule #3: Prefer i18n et alia: Locale-*, I18-LangTags, MIME-*
         (and, of course, Encode.)

Rule #4: Extensions that either need to be maintained in close
         synchrony with the Perl core (Storable) or that benefit from
         the probing capabilities of Configure (Time-HiRes).

Rule #5: Many of the things proposed for Perl 6 are already available.
         (Switch, Filter::*, Time-*)  No need to deny them from fivers.

Rule #6: Give Perl 5 extensibility (Filter-*, to some extent libnet
         (it being OO)) and fresh blood (all of the new stuff)
         (Variant of #5)

Rule #7: Prefer low-level and infrastructural additions (libnet,
         Digest*), and extensions to existing functionality (Time-HiRes)

Rule #8: Too application-specific is bad, however popular the application
         area emay feel now or to you.  (I don't, for example, see LWP
         being included.)  (Flipside of #7.) 

Rule #9: External dependencies are bad.  (This rule, for example,
         plays against Compress::Zlib, databases, and XML parsing.)

$jhi++; #
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About