Re: Web Module (Was: Perl6 new features)

2007-06-25 Thread Peter Scott
On Mon, 25 Jun 2007 09:57:18 +0200, Hakim Cassimally wrote:
 On 23/06/07, chromatic [EMAIL PROTECTED] wrote:
 On Friday 22 June 2007 11:07:35 Chas Owens wrote:

  Please, god, no. Or at least make two distributions: Bare Perl 6 and
  Perl 6. Many companies have a Only Core Perl policy. They refuse
  to install CPAN modules because We don't trust them.

 I think of this the same way I think of Do not drink even if you mix with
 beer labels on bleach bottles.  Stupid people often remove their genes from
 the pool.  We should not discourage stupid business practices from doing the
 same.
 
 Releasing a language without a useful, easily installable library bundle
 could quite reasonably be construed as a stupid business practice.

I will just voice my support for putting best-of-breed modules for very
common tasks (CGI, DBI for sure) in the core.  It may not be elegant, but
it is practical... and Perl has weighed in on that side of the dilemma
before.  I think part of Perl 4's success was the one stop shopping
availability of numerous useful functions that would otherwise have
required linking in a library, e.g. dbmopen, crypt, shmget, gethostbyaddr,
math functions, etc.  I think the synergistic effect of the combination of
all these functions being so readily available helped Perl take off. 
Please continue the tradition of tending to err on the side of practical
over elegant.  It may not seem rational that avoiding the need to type
cpan Foo::Bar makes a huge difference, but I believe it does, for
certain modules.

-- 
Peter Scott
http://www.perlmedic.com/
http://www.perldebugged.com/



Re: Web Module (Was: Perl6 new features)

2007-06-25 Thread Luke Palmer

On 6/25/07, Peter Scott [EMAIL PROTECTED] wrote:

I will just voice my support for putting best-of-breed modules for very
common tasks (CGI, DBI for sure) in the core.


Of course, then you get the disadvantage that most users will see new
versions of those modules as often (or seldom, as it were) as perl
itself.

Luke


Re: Web Module (Was: Perl6 new features)

2007-06-25 Thread Paul Hodges

How about a Bundle::Common?
Streamline both the core and the inclusion of the most commonly used
modules? The core does include the CPAN module, right?

Personally, I *prefer* grabbing what I need piecemeal, but I understand
making it easy if possible

--- Luke Palmer [EMAIL PROTECTED] wrote:

 On 6/25/07, Peter Scott [EMAIL PROTECTED] wrote:
  I will just voice my support for putting best-of-breed modules for
 very
  common tasks (CGI, DBI for sure) in the core.
 
 Of course, then you get the disadvantage that most users will see new
 versions of those modules as often (or seldom, as it were) as perl
 itself.
 
 Luke
 


===
Hodges' Rule of Thumb: Don't expect reasonable behavior from anything with a 
thumb.


   

Choose the right car based on your needs.  Check out Yahoo! Autos new Car 
Finder tool.
http://autos.yahoo.com/carfinder/


Re: Web Module (Was: Perl6 new features)

2007-06-25 Thread Juerd Waalboer
Hakim Cassimally skribis 2007-06-25  9:57 (+0200):
 Releasing a language without a useful, easily installable library bundle
 could quite reasonably be construed as a stupid business practice.

A useful, easily installable library bundle does not have to be in the
core distribution.

Debian already has its own split between perl and perl-modules. This is
a great scheme that allows Debian to use Perl in the base system,
without requiring the loads of unused modules that usually come with it.
If you need those modules, though, you can easily install them.

It would be great if Perl had this by default, because it would make it
easier for vendors to choose to use Perl in their base system. It would
also make Perl a more attractive choice for embedded systems.
-- 
korajn salutojn,

  juerd waalboer:  perl hacker  [EMAIL PROTECTED]  http://juerd.nl/sig
  convolution: ict solutions and consultancy [EMAIL PROTECTED]


Re: Referring to source code within Perldoc

2007-06-25 Thread Jonathan Lang

David Green wrote:

(Unless I'm missing something, which is always possible; you can put
a piece of POD geographically next to a Perl declaration, but I'm not
sure that's unambiguous enough.  Hm, why not?  POD doesn't know
what's going on around it, but Perl does, and could say, I've just
declared $size, and the next line starts a chunk of POD, so I'll
simply copy it into $size's 'documented' trait... would that work??)


It is doable: say that any Pod section that appears within or after a
class definition is considered by perldoc to refer to that class.

The problem with this is that you're forcing the Pod author to
organize his documentation in a manner that precisely mirrors the
organization used by the Perl programmer, and to scatter it throughout
the module.  This isn't necessarily a deal-breaker because the Pod
author is usually(?) going to _be_ the Perl programmer (thus letting
him reorganize the classes to match the preferred documentation
sequence or vice versa), and because the Pod author may _prefer_ to
place the documentation in close proximity to the source code being
documented.  But it would be nice to have more freedom of placement of
documentation for those with other preferences.

There's the new 'A' tag, which specifically refers to a word or
phrase in the source code.  But that's a single inline tag; so it's
questionable as to how useful it would be for the purpose of
associating an entire Pod section to a piece of source code.  In
addition, the 'A' tag, as written, makes explicit use of exactly the
geographic positioning that we're trying to get around.

--

Then there's the suggestion that I made about providing a Pod rule (or
Pod rules) for the purpose of identifying points in or sections of the
source code for more robust referencing.  In my proposal, I suggested
being able to say something like '=code Foo' to identify the start of
a section of source code that abstractly relates to the label 'Foo',
coupled with the ability to tell a Pod section elsewhere that it is
associated with the source code identified by 'Foo' (using something
like '=begin pod :AFoo' to do so).

At the time, I was thinking in terms of allowing more freedom of
placement of 'A' tags; but it also works for giving entire pod
sections freedom of placement while still maintaining ties to specific
source code: for example, perldoc could look for the '=code' rule that
precedes or encompasses a given class definition and then associate
any Pod sections that attach themselves to that rule with that class.
So while the '=code' rule would have to maintain a close geographic
relationship to the source code in question, the documentation itself
would not.

Ideally, this wouldn't replace the proximity-based bindings, but would
supplement it, with the idea that Pod sections with :A... traits
would be bound to whatever follows the associated '=code' rule, while
those without :A... traits would be bound to whatever they follow.

Best of all, none of these bindings would be Pod's responsibility.  As
far as Pod is concerned, the only use that '=code' rules would have
would be in service to 'A' tags, and could maintain ignorance about
what the source code speaks of.  Perldoc would have the final
responsibility of binding documentation to definitions.

--

The other way to go about it would be to have the source code refer to
Pod sections:

 class Foo is documented(Bar) {
   has $.x is documented(Baz);
 }

 ...

 =begin Bar
 ...

 =begin Baz
 ...

This places the responsibility of bindings on the language (in this
case, Perl) - each of which would have to come up with its own syntax
for referencing documentation.  This is fine as far as Perldoc is
concerned, but does raise issues if you decide that you want to do
something similar with, say, C++ or HTML.

--
Jonathan Dataweaver Lang


Re: Web Module (Was: Perl6 new features)

2007-06-25 Thread chromatic
On Monday 25 June 2007 00:57:18 Hakim Cassimally wrote:

 Releasing a language without a useful, easily installable library bundle
 could quite reasonably be construed as a stupid business practice.

Of course.  Yet some dozen years later, the argument for keeping interfaces 
such as File::Find (because sysadmins should learn all about closures and 
callbacks but can only understand global variables) and code such as CGI.pm 
(it was SelfLoader before SelfLoader was cool and *that* was a while ago) in 
the Perl 5 core has absolutely nothing to do with quality, ease of use, or 
suitability for the problem domain and everything to do with incidentally 
having been first and, thus, immediate evolutionary dead ends.

-- c