SPUG: Does Perl Scale? (Was: Evolution of Perl)

Colin Meyer cmeyer at helvella.org
Sat Aug 11 17:28:31 CDT 2001

On Sat, Aug 11, 2001 at 08:14:04AM -0700, Richard Anderson wrote:
> ----- Original Message -----
> From: "Kevin Watt" <kevin at economyart.com>
> > He countered that perl isn't the best language for
> > the job because it is hard to maintain when the project gets large (which
> I
> > have certainly had problems with in the past).  However, I feel that while
> > perl's many options let you be lazy if you want to, you can certainly
> > structure things (as with OOP) such that perl does scale well...  Anyways,
> > I'd be interested in others' opinions on the matter.
> Much as I like Perl, weakly-typed, free-form languages like Perl are
> not as appropriate for large projects as C++ and Java are. Since Perl
> doesn't have any way of enforcing compliance with subroutine
> interfaces for OO calls, it can be

Looked at Class::Contract?  

btw, Perl6 will support (if I understand correctly) data containers with 
strong types.  For example, 

my int $x;    # $x can only store ints
my dog $spot; # $spot can only hold objects of class dog

This sort of functionality can be accomplished with Perl5, through OO
interfaces, or tieing.

> difficult to
> track down bugs in large systems.  It's easy to say that programmers
> shouldn't create bugs, but using a strongly-typed language can produce a
> better product.

? Explain - IMO, it is just as easy (and necessary) to launder data in
strongly typed languages as weakly typed ones.  Just because you know that
a particular data container contains a string (as opposed to it possibly
being a float or ref), that doesn't mean that it is safe for your program
to use in any way that it might use a string.

> More importantly, C++ and Java programmers tend to be more rigorous than
> Perl programmers.  Damian's talk is a good illustration of some of the
> warped programming styles that Perl can seduce programmers into.  (I realize

The whole point of obsfu is not being "seduced" into a certain style,
but careful planning and thought so that your style isn't recognizable.
Code that was purposely designed to be tricky is an example of just
that, tricky code. It doesn't reflect anything whatsoever about cleanly
written code.

I've tried to maintain some incredibly irrigorous Java code. One of the
things that turned me off to every wanting to be a serious Java
programmer.  I think that programmers tend to be programmers, and the
rigosity level that they program at is more based on the individual
than the language that they choose to code in.

> that he was writing a submission for the Obfuscated Perl Contest, but
> unfortunately there are many Perl programmers who emulate this "cool"
> style.)  Obfuscated programming can be done in Java and C++ too, but the
> implicit OO structure of these languages discourages it.

? who emulates this "cool" style for production code?  I don't know anyone
that does. Most, if not all, of the programmers that participate in
obsfu or golf contests also maintain very readable code.   I find that the
programmers who are exceptional at obsfu are also exceptional at readable

> Perl uses some non-standard OOP features that make it a bit awkward for OOP,
> like being able to dynamically change your superclass at runtime and failing
> to implicitly call a superclass's constructor.  Some might argue that these
> are improvements over Java and C++, but they are still non-standard and can
> induce confusion.  Python and Ruby are superior to Perl as object-oriented
> languages since they were originally designed as OO languages rather than
> Bourne shell / awk / C derivatives as Perl was.

Ruby makes funny convolutions for its users to be able to access some 
aspects (see its handling of regexs) in a non OO way.  Fancy that.

Perl6 will be OO from the base up, in a similar way to Python.  Out of
curiosity, I wonder what you or anyone specifically likes (besides the
whitespace ;-) about Python's handling of OO style?

> This is a religious issue, and everyone has a different point of view.  My
> utilitarian position is that Perl is just another tool in the programmer's
> toolbox.  It has strengths and weaknesses that make it appropriate for some
> situations and not appropriate for others.  Even a lame platform like VB on
> Windows has its uses.

Windows/VB may have its uses, but not for everyone. ;-)

Have fun,

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     POST TO: spug-list at pm.org       PROBLEMS: owner-spug-list at pm.org
      Subscriptions; Email to majordomo at pm.org:  ACTION  LIST  EMAIL
  Replace ACTION by subscribe or unsubscribe, EMAIL by your Email-address
 For daily traffic, use spug-list for LIST ;  for weekly, spug-list-digest
  Seattle Perl Users Group (SPUG) Home Page: http://www.halcyon.com/spug/

More information about the spug-list mailing list