Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 956 Categories, Downloaded 50.204.024 Times

Module::Install::Philosophy 0.67

  Date Added: January 08, 2010  |  Visits: 1.112

Module::Install::Philosophy

Report Broken Link
Printer Friendly Version


Product Homepage
Download (94 downloads)



Module::Install::Philosophy Perl module contains the concepts behind Module::Install. SYNOPSIS This document describes the personal philosophy behind the creation of CPAN::MakeMaker (the predecessor of Module::Install). The views expressed here belong to Brian Ingerson; if they are not of interest to you, you can safely ignore this document. The above is obviously a mutation of the monumental speech by great Martin Luther King (http://web66.coled.umn.edu/new/MLK/MLK.html). While the contexts are vastly different, I feel that there are some serious parallelisms. The CPAN has become a place that is not free of injustice. This situation has arisen not out of directed oppression, but from a failure of our community to keep its tools sharp. It is the culmination of many small decisions made in the name of practicality. This is a sad state for an institution that was created to allow all interested people to contribute equally to the best of their ability. This assertion is rooted in my personal experience as an author. When I created my first Perl module, Inline.pm, I knew that I had done something important. But how was I to make a dent in vast Perl community? As a complete unknown in the Perl community, my voice did not travel far. I repeatedly tried to get even an acknowledgment from the gurus familiar with XS. No success. I resorted to sending messages with ridiculous subjects to modules@perl.org. (http://www.xray.mpe.mpg.de/mailing-lists/modules/2000-08/msg00078.html) No response. Through sheer determination and shameless self-promotion I eventually got the word out, and I hope the world is a slightly better place for it. Since then, Inline has won awards and I have had the privilege to meet almost all of Perls finest. But I still remember the pain of starting out, and want to help invite more people into this wonderful world. One thing I have learned from experience is that the Perl community (and throw in the Python and Ruby people as well) is a small drop in the vast ocean of programming. Its a giant pot of Java out there; and a sea of C. Perl may not be the biggest fish, but with some care and cunning we could become a much bigger school. These are the current problems that I see with CPAN and the core modules: New Modules dont help Older Perls If I were to guess what percent of all Perl5 installations were at the current release level (5.8.0 in October 2002) I would say 3-5%. That may even be generous. Id say that over 40% of installations might still be at 5.005 or earlier. The biggest problem with adding a module to the core is that it only helps a small subset of Perl users for a long long time. Worse yet, a good module author will still probably avoid using the core additions as prerequisites, because they want their new module to work as well on 5.005 as on 5.8. CPAN::MakeMaker should be able to help in this regard. For example, instead of putting Inline.pm into the core for 5.9, I can now effectively get it into the core for every version of Perl that Inline supports. Author Exclusiveness Not just anybody can get a module into the core. It seems you have to know people in high places. If I were a brilliant new talent with a great new module, it would have a harder time getting the ear of the pumpking, then if I were, say, Damian Conway. In fact, I probably wouldnt even know where to start. Reduced Competition One comment Ive heard from some very good Perl programmers is "Everything important has already been done". Their feeling is that even though a module is suboptimal, it would be a waste of time to write a competing module. Who would use it instead of the one already in the core? When I write a competing module, I know that I have to make it at least twice as good as the existing one to even get noticed. Thats not a bad thing, but should everybody be forced into that situation? For example, lets say that you have created a really useful CGI script. Lets also say that it makes use of your own CGI::Special module, because CGI.pm doesnt meet your needs. Even though your script might be generally useful and worth sharing, the fact that it requires a non-standard module can only negatively affect its acceptance. Trying to get general acceptance for the superior CGI::Special module will be harder still. Core modules are assumed by the general public to be "Best of Breed". While this may be true for some modules at some point in time, it keeps talented people from attempting to "breed" something better. Core Bloat Every time we add a module to the core it gets bigger and bigger. And we cant ever remove modules from the core, once theyve been added. If I had my druthers, wed remove all modules from the core that werent necessary for either running Perl or installing modules. Of course, wed need to set things up so that installing modules was so easy, that it could be done on the fly if necessary. Is this easily accomplishable? Nope. Is it impossible? Nope. We have the best language in the world to help us do it! Maintenance Bitrot Believe it or not, Perl authors can sometimes acquire a "Life Beyond Perl". They get families or new hobbies or even hit by a bus. (This would be a "Death Beyond Perl".) The fact is, that once somebody writes a piece of code and shares it with the world, they are expected to maintain it for all time. That is being generous. There are others that think that once their module has become popular or made it into the core, they dont need to keep fixing and improving it. I have personally been guilty of this sin. And then theres the Damian Conway Effect. This plagues the exceptional authors who are so innovative and prolific they simply dont have time to maintain everything they have written. I initially formalized these opinions at the YAPC (Yet Another Perl Conference) in June 2001. Since then I have been trying to think of technological solutions to fix these social problems. One idea was dubbed NAPC. NAPC is CPAN backwards. It is a large system of precompiled modules that can be installed on the fly, with the goal of reducing the number of modules in the core. NAPC hasnt got started yet. Id still like to do it someday, but its a big problem with a lot of issues. CPAN::MakeMaker (and now Module::Install) on the other hand, is simple and ultimately flexible. It should work with all of the existing CPAN processes without requiring any changes from them. And new features can be continuously added. Even though it doesnt scratch all of my philosophical CPAN itches, its a good start..

Requirements: No special requirements
Platforms: Linux
Keyword: Cgi Core Cpan If I Makemaker Module Moduleinstallphilosophy Modules Napc New Perl Perl Module Philosophy Perl Time
Users rating: 0/10

License: Freeware Size: 81.92 KB
USER REVIEWS
More Reviews or Write Review


MODULE::INSTALL::PHILOSOPHY RELATED
Icon Tools  -  If I Were A Thief In The 24th Century 1.0
If I Were A Thief In The 24th Century is an icon set of over 130 icons containing items of importance and trivia from the 24th century Star Trek universe. And not only that, therels an entire system replacement here as well!
 
Libraries  -  Lingua::ZH::DateTime 0.01
Lingua::ZH::DateTime is a Perl module to convert time to chinese format. SYNOPSIS This module can convert asctime to chinese format in your locale. you can select china singapore hongkong taiwan locale and gb2312/big5 charset. asctime is ASC C...
3.07 KB  
Libraries  -  CGI::Validate 2.000
CGI::Validate is an advanced CGI form parser and type validation. SYNOPSIS use CGI::Validate; # GetFormData() only use CGI::Validate qw(:standard); # Normal use use CGI::Validate qw(:subs); # Just functions use CGI::Validate qw(:vars); #...
10.24 KB  
Libraries  -  Module::AutoINC 0.02
SYNOPSIS perl -MModule::AutoINC ABSTRACT When Module::AutoINC is loaded, it will add itself to @INC and catch any requests for missing resources. If a Perl module is requested that has not been installed, then this will attempt to...
5.12 KB  
Libraries  -  CGI::Cache 1.4200
CGI::Cache is a Perl extension to help cache output of time-intensive CGI scripts. WARNING The interface as of version 1.01 has changed considerably and is NOT compatible with earlier versions. A smaller interface change also occurred in...
44.03 KB  
Libraries  -  CGI::WeT::Modules::News 0.71
CGI::WeT::Modules::News are Perl extensions to engine to allow article management. SYNOPSIS use CGI::WeT::Modules::News (); This module provides rendering constructs to allow navigation through a set of articles. Support is provided for...
40.96 KB  
Libraries  -  CGI::WeT::Modules::Calendar 0.71
CGI::WeT::Modules::Calendar are Perl extensions to engine to allow calendar management. SYNOPSIS use CGI::WeT::Modules::Calendar (); This module provides rendering constructs to allow navigation through a set of calendars. Support is...
40.96 KB  
Development Tools  -  PDFMap 2.0
PDFMap is both a command line tool, a CGI script and a Python language module, designed to make the automated generation of very high quality interactive maps in the PDF format easy. PDFMap can place different objects on a rasterized map...
 
Modules  -  UC Recurring Payments and Subscriptions 7.x-2.0-alpha1
Ubercart has included the Recurring Fees module as a core module for some time now, allowing users to associate recurring fees with products that customers must pay for via credit card. Unfortunately, the module was never really there in terms of...
81.92 KB  
Libraries  -  Perl6::Builtins 0.0.3
Perl6::Builtins is a Perl module that provides erl 5 versions of the new Perl 6 builtins. SYNOPSIS use Perl6::Builtins qw( system ); system $system_cmd or die "Could not $system_cmd: $!"; my $package = caller->{package}; my $file =...
4.1 KB  
NEW DOWNLOADS IN PROGRAMMING, LIBRARIES
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 4.0.0
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB