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

on bloat

Thread Previous | Thread Next
From:
Jarkko Hietaniemi
Date:
April 16, 2001 11:59
Subject:
on bloat
Message ID:
20010416135850.E22887@chaos.wustl.edu
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:

	Class-ISA
	Digest + Digest-MD5
	Filter-Util-Call + Filter-Simple
	Locale-*
	MIME-Base64 + Mime-QuotedPrint
	Scalar-List-Utils
	Storable
	Switch
	Text-Balanced
	Time-HiRes

New submodules of previously existing modules:

	Pod-Text-Overstrike

New modules sort of written for/during 5.7:

	B-Concise
	Encode
	PerlIO-Scalar
	PerlIO-Via

What I still plan on integrating before 5.8:

	libnet [1]
	Locale-MakeText + I18N-LangTags
	Math::Big* [2]
	Memoize
	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
    piecewise...

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++; # http://www.iki.fi/jhi/
        # There is this special biologist word we use for 'stable'.
        # It is 'dead'. -- Jack Cohen

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About