[18452] in Perl-Users-Digest

home help back first fref pref prev next nref lref last post

Perl-Users Digest, Issue: 620 Volume: 10

daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Tue Apr 3 18:11:07 2001

Date: Tue, 3 Apr 2001 15:10:26 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Message-Id: <986335826-v10-i620@ruby.oce.orst.edu>
Content-Type: text

Perl-Users Digest           Tue, 3 Apr 2001     Volume: 10 Number: 620

Today's topics:
        Perl Tutorial "Program Repair Shop and Red Flags" 23 Ap (Mark Jason Dominus)
        plain and simple search that works under 2k? <fofofofofo>
    Re: Please Flame my Benchmark: open vs. cat <ren@tivoli.com>
    Re: Please Flame my Benchmark: open vs. cat (Abigail)
    Re: Please Flame my Benchmark: open vs. cat (Abigail)
    Re: Please Flame my Benchmark: open vs. cat (Abigail)
    Re: QUE: Serial port interrupt handling from perl <mtsouk@freemail.gr>
    Re: QUE: Serial port interrupt handling from perl <wayne.keenan@ntlworld.com>
        site map (Michael R. Fox)
    Re: site map (Abigail)
        spook in perl <gopalan@cs.sc.edu>
    Re: spook in perl <gopalan@cs.sc.edu>
    Re: Swinging through the trees dmeyers+news@panix.com
        Using select() to block a pipe <imak@imakhno.freeserve.co.uk>
    Re: what are the new languages? <mischief@velma.motion.net>
        Digest Administrivia (Last modified: 16 Sep 99) (Perl-Users-Digest Admin)

----------------------------------------------------------------------

Date: Tue, 03 Apr 2001 19:11:29 GMT
From: mjd@plover.com (Mark Jason Dominus)
Subject: Perl Tutorial "Program Repair Shop and Red Flags" 23 April 2001 
Message-Id: <3aca205f.4f86$12e@news.op.net>
Keywords: Millie, annum, omniscient, ye




This year I'll be doing four tutorials at the big Perl conference in
San Diego.  One of them is new; it's called `Program Repair Shop and
Red Flags'.  I need to practice this before I go to San Diego, so I'll
be giving the tutorial in Philadelphia next month.  If you were to
attend in San Diego, you would pay about $320.  But you can come to my
practice session for less than that.  I am asking for a (voluntary)
donation of $5 to cover expenses.  Any money I have left over will be
donated to the Free Software Foundation.

WHEN

The tutorial will be at 6 PM on Monday, 23 April, and will end around
9:30 or 10:00 PM.  I will give it in room 303 of the Towne Building of
University of Pennsylvania. (Directions below.)

WHAT

Here's the brochure description:

        PERL PROGAM REPAIR SHOP AND RED FLAGS

        Length: 3 hours

        Who should attend: All Perl programmers.  Basic familiarity
        with Perl is required.

        What you will learn: Style and technique tips that will make
        your programs easier to understand and easier to maintain and
        modify.  We will look at several examples of real Perl
        programs and examine their flaws, drawbacks, and limitations,
        including:

                * Performance problems
                * Suprising behavior
                * Poor layout
                * Fragility
                * Error handling
                * Maintenance nightmares
                * Portability problems

        Often just a few small changes can make a program much more
        powerful while at the same time _reducing_ the amount of code.

        We will also see a number of 'red flags': Early warning signs
        that you might see in your own code that almost always
        indicate that something is wrong or should be done
        differently.

        Criticism will be incisive but kind, in the style of Mark's
        well-received 'Program Repair Shop and Red Flags' articles
        from www.perl.com.  


        Mark-Jason Dominus has been programming in Perl since 1993.
        He is the managing editor of www.perl.com, a moderator of the
        comp.lang.perl.misc newsgroup, an occasional contributor of
        Perl core patches, and the author of the 'perlreftut' manual
        page. He is noted for his articles in the Perl Journal, his
        classes and tutorials at past Perl conferences, and his
        'Memoize', 'Text::Template', and 'Algorithm::Diff' modules.
        

Attendees are invited to submit their own code for review during the
class; please mail it to mjd-tpc-5-repair+@plover.com no later than
April 16 2001.

WHERE

The Towne Building is located at 220 South
33rd Street in Philadelphia.

For directions to the University, see

        http://www.upenn.edu/admissions/undergrad/visiting/directions.html

Maps are available at
        http://www.seas.upenn.edu/staff/pem.html


HOW

You must make an advance reservation; I have room for only 42 people.
To reserve, please send an email message to

        mjd-perl-practice+@plover.com

AFTER 9AM ON THURSDAY APRIL 4 2001.

I'd like it if this notice could be circulated to other groups that
might be interested, so to give it a chance to circulate, I'm going to
disregard any mail I receive asking for a reservation unless it
arrives after 9AM tomorrow.  

If I get more than 42 requests for reservations, participants will
be selected by me based on some combination of:

         * Promptness of response  (ignoring responses that arrive before 9AM)
         * Random drawing
         * Blatant favoritism

I hope to see lots and lots of people there.

My grateful thanks to Helen Anderson and to the University of
Pennsylvania School of Engineering and Applied Science for providing
the space and AV equipment for my talk.

[Note: This article was posted with 'Distribution: phl' in the
header.  If you are reading it, it is because your news administrator
has made a decision to receive articles intended for distribution
within the Philadelphia area.   ]
-- 
@P=split//,".URRUU\c8R";@d=split//,"\nrekcah xinU / lreP rehtona tsuJ";sub p{
@p{"r$p","u$p"}=(P,P);pipe"r$p","u$p";++$p;($q*=2)+=$f=!fork;map{$P=$P[$f^ord
($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&&
close$_}%p;wait until$?;map{/^r/&&<$_>}%p;$_=$d[$q];sleep rand(2)if/\S/;print


------------------------------

Date: Tue, 3 Apr 2001 15:12:31 -0600
From: "Help!" <fofofofofo>
Subject: plain and simple search that works under 2k?
Message-Id: <9aded00dmc@enews3.newsguy.com>

Can anyone please tell me where to get a nice simple site search that will
work under IIS? I'm only wanting to search 30 or so pages in one site.

Thanks!




------------------------------

Date: 03 Apr 2001 14:36:45 -0500
From: Ren Maddox <ren@tivoli.com>
Subject: Re: Please Flame my Benchmark: open vs. cat
Message-Id: <m3r8z9ixma.fsf@dhcp9-175.support.tivoli.com>

On Tue, 03 Apr 2001, uri@sysarch.com wrote:

> i disagree. the repeated reading means the file will almost
> assuredly be in cache the entire time so the disk access part is
> removed. then you are comparing the overhead of the fork/exec of
> `cat` to the speed of open. the rest is irrelevent. the bencmark
> isolates the real difference between the two methods and leave the
> disk and other stuff outside.

Abigail's point is that the disk access is likely to dwarf any
difference between the two methods, so focusing on such differences is
pretty pointless.  Comparing the overhead of the fork/exec might be
academically interesting, but the I/O is going to dominate for
real-world situations.

On a related note, Z-shell has a syntax for skipping the fork/exec/cat
call.  Instead of:

% grep string `cat myfiles`

you can use:

% grep string $(<myfiles)

which causes Z-shell to read the file for you, rather than have cat do
it.

I, for one, would be very much in favor of a similar function for
Perl.  The reason that anyone falls back to:

$data = `cat $datafile`;

is because is just seems programmer-inefficient to write something
like:

$data = do {local $/; open my $fh, $datafile; <$fh>}

And sure, I could put this in a slurp function or something and stick
that in a module, but that's just not the same as having it built into
Perl.

sub slurp { my $file = shift; local $/; open my $fh, $file; <$fh> }

(Funny thing about calling it slurp... you end up with the same number
of characters as `cat`:

$data = slurp $datafile;
$data = `cat $datafile`;
)

Of course, in the *real* version I would want it to have error
handling, the ability to slurp multiple files, etc. :)

-- 
Ren Maddox
ren@tivoli.com


------------------------------

Date: Tue, 3 Apr 2001 20:31:38 +0000 (UTC)
From: abigail@foad.org (Abigail)
Subject: Re: Please Flame my Benchmark: open vs. cat
Message-Id: <slrn9ckcpa.vis.abigail@tsathoggua.rlyeh.net>

revjack (revjack@revjack.net) wrote on MMDCCLXXII September MCMXCIII in
<URL:news:9acps9$hlt$1@news1.Radix.Net>:
"" Abigail <abigail@foad.org> wrote:
"" 
"" : Benchmark would bench a whole range of file sizes, from small to large.
"" : And preferably, read in different files - now you just might be lucky
"" : that in one case the file keeps being cached in RAM, and in the other
"" : case it doesn't. (Solaris thinks that unused RAM is wasted RAM, so it
"" : uses RAM as a cache. If you read a file once, disk access is likely
"" : to dwarf the overhead of an extra process. But now, most of the time,
"" : you read from the file cache - not a good test.)
"" 
"" How would you do it?


I wouldn't as it's unlikely to matter.

But otherwise, if you want to do something 10,000 times, I'd make
sure to have 10,000 different files. Preferably scattered over 
your disks.


Abigail
-- 
perl -wle '$, = " "; sub AUTOLOAD {($AUTOLOAD =~ /::(.*)/) [0];}
           print+Just (), another (), Perl (), Hacker ();'


------------------------------

Date: Tue, 3 Apr 2001 20:34:07 +0000 (UTC)
From: abigail@foad.org (Abigail)
Subject: Re: Please Flame my Benchmark: open vs. cat
Message-Id: <slrn9ckctv.vis.abigail@tsathoggua.rlyeh.net>

Uri Guttman (uri@sysarch.com) wrote on MMDCCLXXII September MCMXCIII in
<URL:news:x78zlhvs70.fsf@home.sysarch.com>:
;; >>>>> "A" == Abigail  <abigail@foad.org> writes:
;; 
;;   A> I find the Benchmark not very useful. One doesn't repeatedly read
;;   A> the same file over and over again in a typical program.
;; 
;;   A> Furthermore, you are banchmarking the repeat read of a single
;;   A> file. A good Benchmark would bench a whole range of file sizes,
;;   A> from small to large.  And preferably, read in different files - now
;;   A> you just might be lucky that in one case the file keeps being
;;   A> cached in RAM, and in the other case it doesn't. (Solaris thinks
;;   A> that unused RAM is wasted RAM, so it uses RAM as a cache. If you
;;   A> read a file once, disk access is likely to dwarf the overhead of an
;;   A> extra process. But now, most of the time, you read from the file
;;   A> cache - not a good test.)
;; 
;; i disagree. the repeated reading means the file will almost assuredly be
;; in cache the entire time so the disk access part is removed. then you
;; are comparing the overhead of the fork/exec of `cat` to the speed of
;; open. the rest is irrelevent. the bencmark isolates the real difference
;; between the two methods and leave the disk and other stuff outside.


Which means, it's pretty pointless.

If I need a string 10,000 times in a program, I would not read it
10,000 times from a file and benchmark which is the fastest.

I'd redesign my program to something less absurd.


Abigail
-- 
perl5.004 -wMMath::BigInt -e'$^V=Math::BigInt->new(qq]$^F$^W783$[$%9889$^F47]
 .qq]$|88768$^W596577669$%$^W5$^F3364$[$^W$^F$|838747$[8889739$%$|$^F673$%$^W]
 .qq]98$^F76777$=56]);$^U=substr($]=>$|=>5)*(q.25..($^W=@^V))=>do{print+chr$^V
%$^U;$^V/=$^U}while$^V!=$^W'


------------------------------

Date: Tue, 3 Apr 2001 20:37:19 +0000 (UTC)
From: abigail@foad.org (Abigail)
Subject: Re: Please Flame my Benchmark: open vs. cat
Message-Id: <slrn9ckd3v.vis.abigail@tsathoggua.rlyeh.net>

Monte (montep@about.com) wrote on MMDCCLXXII September MCMXCIII in
<URL:news:3ac9ffc0.6457355@news.hal-pc.org>:
:) On Tue, 3 Apr 2001 14:45:29 +0000 (UTC), abigail@foad.org (Abigail)
:) wrote:
:) <snip>
:) >I find the Benchmark not very useful. One doesn't repeatedly read the same
:) >file over and over again in a typical program. 
:) >
:) >Furthermore, you are banchmarking the repeat read of a single file. A good
:) >Benchmark would bench a whole range of file sizes, from small to large.
:) >And preferably, read in different files - now you just might be lucky
:) >that in one case the file keeps being cached in RAM, and in the other
:) >case it doesn't. (Solaris thinks that unused RAM is wasted RAM, so it
:) >uses RAM as a cache. If you read a file once, disk access is likely
:) >to dwarf the overhead of an extra process. But now, most of the time,
:) >you read from the file cache - not a good test.)
:) >Abigail
:) 
:) So, Abigail, rather than just nit-picking the issue why not right a
:) benchmark program yourself and specify the parameters of use.  As it
:) stands revjacks little utility is better than any other so far
:) submitted on this thread.


It would be silly for *me* to specify the parameters for benchmarking
*his* program.

And I do claim I was not nitpicking. I said the entire benchmark was futile.
That's a bit more than nitpicking.


Abigail
-- 
perl -le 's[$,][join$,,(split$,,($!=85))[(q[0006143730380126152532042307].
          q[41342211132019313505])=~m[..]g]]e and y[yIbp][HJkP] and print'


------------------------------

Date: Tue, 3 Apr 2001 23:13:54 +0300
From: "Mihalis Tsoukalos" <mtsouk@freemail.gr>
Subject: Re: QUE: Serial port interrupt handling from perl
Message-Id: <9adb2d$a4$1@ulysses.noc.ntua.gr>


wayne.keenan <wayne.keenan@ntlworld.com> wrote in message
news:3AC5B9E1.3A7DE16F@ntlworld.com...
>
> this is not neccesarily true, but the external device need to use flow
control
> (handshaking).
>
> if the device uses sodtware or (XON/XOFF) or hardware  handshaking then
your
> PC's serial device will be able to signal when and when not data is able
to be
> recieved by your PC's serial port.
> What this meas is that the device should be able to buffer its output. If
the
> device is of limited memory and you wont have anything listening to the
> serial port for a time longer than it takes to fill up the remote devices
> (probably circular)
> buffer, then unfortunately, you may(or may not ) lose character before
they
> are even sent to the serial port.   (I say maybe not, because a poorly
> designed device might block the entire (sub) system, and cause it to fail
on
> timeouts on state transitions, I've seen this in an embedded system)
>
> if it is a tiny device you may be better of implementing some kind of
background
>
> C collecter on the PC side, and then read your input from that buffer.

Hello again.
That kind of a collector would be very helpfull to me. Can you please give
me more info of how to write such a program in C?

> what is it you are talking to?

I have an external device that sends events to the serial port of my linux
machine.
I can't afford to loose any data from the external device but I can delay
sending data to the external device a little.

thanks in advance,
Mihalis.

>
> Mihalis Tsoukalos wrote:
>
> > Yes,
> > but if the device connected to the serial port of my computer starts
sending
> > data to the serial port and there is no-one to read them (because the
> > program is doing something else), after some time the old data is going
to
> > be overwriten by the new data.
> > Is this true?
> > This is what I am afraid of and I want to avoid.
> >
> > thanks,
> > Mihalis.
> >
> > wayne.keenan <wayne.keenan@ntlworld.com> wrote in message
> > news:3AC52338.9793DBBD@ntlworld.com...
> > > the chracters may come fast, but what about buffering and handshaking?
> > > the serial device (UART 1- 16 bytes?) & driver should handle them
> > transparently,
> > > when asked.
> > > although handshaking does depend on the device dangling off the
outside
> > end.
> > >
> > > Mihalis Tsoukalos wrote:
> > >
> > > > Bbirthisel <bbirthisel@aol.com> wrote in message
> > > > news:20010324203647.25034.00000635@ng-cp1.aol.com...
> > > > > Hi Mihilis,
> > > > >
> > > > > >I want an example of how to handle serial port interrupts from
perl.
> > > > > >If possible I want to have to possible options:
> > > > > >- Reading interrupt
> > > > > >- Writing interrupt
> > > > >
> > > > > You almost certainly don't want to implement the raw serial driver
in
> > > > > Perl. Even I don't - Win32::CommPort talks to the driver at a
rather
> > low
> > > > API
> > > > > level, but no where near interrupt services. But most Operating
> > > > > Systems already have a serial driver to do that (even the $MS ones
> > > > starting
> > > > > with W9x - earlier attempts are disparaged even within $MS).
> > > > >
> > > > > What you probably want is read_characters_if_available, and
> > > > > write_characters_and_let_me_know_when_done. For those, the
functions
> > in
> > > > > xxx::SerialPort are a possible starting point. Versions for
Windows
> > > > (Win32::)
> > > > > and POSIX-compliant (Device::). There is also
> > > > > serial code for the Mac - but not compatible with the ones above.
> > > > >
> > > > > -bill
> > > > > Making computers work in Manufacturing for over 25 years
(inquiries
> > > > welcome)
> > > >
> > > > First of all, thanks for answering.
> > > >
> > > > Yes Bill,
> > > > you are right. What I want is what you 've said:
> > > > "What you probably want is read_characters_if_available, and
> > > > write_characters_and_let_me_know_when_done."
> > > >
> > > > Especially the read_characters_if_available.
> > > > An interrupt behaviour is exactly what I wanted, but  I have to find
> > another
> > > > way to achive my purpose.
> > > >
> > > > What I want to make sure is that I won't loose any characters from
the
> > > > serial port. This is critical to me because characters for reading
may
> > come
> > > > pretty fast. So if I spend too mych time for writing then I might
looose
> > > > data that I have to read.
> > > > If you have any code examples it would be very nice of you.
> > > > I am using the ::SerialPort perl module (SuSE Linux 7.0).




------------------------------

Date: Tue, 03 Apr 2001 21:54:52 +0100
From: "wayne.keenan" <wayne.keenan@ntlworld.com>
Subject: Re: QUE: Serial port interrupt handling from perl
Message-Id: <3ACA389C.8967163D@ntlworld.com>

Hi

>
> > C collecter on the PC side, and then read your input from that buffer.
>
> Hello again.
> That kind of a collector would be very helpfull to me. Can you please give
> me more info of how to write such a program in C?

what platform?

you might even be able to do the whole thing in perl, depending on you baud rate



>
> > what is it you are talking to?
>
> I have an external device that sends events to the serial port of my linux
> machine.

I'd figured that bit!
speed?

regards
Wayne




------------------------------

Date: 03 Apr 2001 15:58:37 -0400
From: mrf4u@node2.unix.Virginia.EDU (Michael R. Fox)
Subject: site map
Message-Id: <y7bflmph4uxe.fsf@node2.unix.Virginia.EDU>

does anyone know where i can find a perl script that creates a simple
site map of a relatively large, complex website?  all i need is a
structured list of the links contained in the whole site.

thanks,
michael


------------------------------

Date: Tue, 3 Apr 2001 21:09:16 +0000 (UTC)
From: abigail@foad.org (Abigail)
Subject: Re: site map
Message-Id: <slrn9ckevs.vis.abigail@tsathoggua.rlyeh.net>

Michael R. Fox (mrf4u@node2.unix.Virginia.EDU) wrote on MMDCCLXXII
September MCMXCIII in <URL:news:y7bflmph4uxe.fsf@node2.unix.Virginia.EDU>:
__ does anyone know where i can find a perl script that creates a simple
__ site map of a relatively large, complex website?  all i need is a
__ structured list of the links contained in the whole site.


What did you do so far, and which Perl problem are you running into?



Abigail
-- 
$_ = "\nrekcaH lreP rehtona tsuJ"; my $chop; $chop = sub {print chop; $chop};
$chop -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> ()
-> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> () -> ()


------------------------------

Date: Tue, 3 Apr 2001 13:21:46 -0400
From: Gopi Sundaram <gopalan@cs.sc.edu>
Subject: spook in perl
Message-Id: <Pine.GSO.4.33.0104031311100.5133-100000@mum.cs.sc.edu>

Hello all,

I'm trying to implement the "spook" function of Emacs in Perl, and I
got stuck. Here's my logic:

I must generate at most n lines of output, each line containing at
most m characters.

Read all phrases into DATA1

lines = 0;
while (there is data left in DATA1 && lines < n)
{
    DATA2 = DATA1;
    chars = 0;

    while (there is data left in DATA2 && chars < m)
    {
        pick a phrase from DATA2.
        If chars + length(phrase) < m
        {
            output phrase
            chars += length
            delete phrase from DATA2 and DATA1
        }
        else
        {
            delete phrase from DATA2 so I don't try it again
        }
    }
    lines++
}

My problem is choosing a datastructure for DATA1 and DATA2 (they need
not be the same datastructure). I would like to use hashes so that I
can delete stuff from it. But how do I choose random elements of a
hash?

If I use arrays, I can't efficiently keep track of what I've tried and
what I haven't, especially since I have to delete from DATA2 and DATA1
separately.

Any ideas? Or am I approaching this all wrong?

Gopi.

-- 
Gopi Sundaram
gopi@cse.sc.edu



------------------------------

Date: Tue, 3 Apr 2001 15:17:44 -0400
From: Gopi Sundaram <gopalan@cs.sc.edu>
Subject: Re: spook in perl
Message-Id: <Pine.GSO.4.33.0104031516450.5133-100000@mum.cs.sc.edu>

Never mind, folks. I figured it out. I would appreciate it if you
could take a look at the final product, and critique it:

http://www.cse.sc.edu/~gopalan/Unix/spook

-- 
Gopi Sundaram
gopi@cse.sc.edu



------------------------------

Date: 03 Apr 2001 15:59:58 -0400
From: dmeyers+news@panix.com
Subject: Re: Swinging through the trees
Message-Id: <yobg0fp69fl.fsf@panix6.panix.com>

skipit@nospam.com writes:

> my trying to use Windows style path names in my code.  I had not
> realized that perl did not care, or rather prefered I use UNIX paths
> (/ not \).  Having made that simple change alone, my script runs

To be more precise, it's not that perl prefers, but that
in the code you posted, you used _neither_.  Perl allows
either.  Your code had something like this "c:\path" - that
backslash inside the quotes does _not_ generate a backslash.

--d (picking nits, but if you don't learn about quoting
    you're going to run into other ugly trouble, too...)

-- 
dmeyers@panix.com

Please don't use HTML in e-mail.  Here's how not to:
http://www.geocities.com/CapitolHill/1236/nomime.html


------------------------------

Date: Tue, 3 Apr 2001 19:39:28 +0100
From: "Makhno" <imak@imakhno.freeserve.co.uk>
Subject: Using select() to block a pipe
Message-Id: <9ad5ok$amt$1@news6.svr.pol.co.uk>

Hi, I'm trying to use select() to read from a list of pipes, currently only
testing it with one. I'm on an NT system, and trying to re-direct the output
of the 'dir' command via a filehandle, and blocking on that output with
select().
eg:

open (R,"dir |");
my $bits='';
vec($bits,fileno('R'),1) = 1;
my $ret = select($bits,undef,undef, undef);

The trouble is that select returns immediately, with $ret==-1 (indicating an
error). I can read <R> alright (though obviously not in the same code that
has the select call).
Am I doing something wrong?




------------------------------

Date: Tue, 03 Apr 2001 20:15:09 -0000
From: Chris Stith <mischief@velma.motion.net>
Subject: Re: what are the new languages?
Message-Id: <tckbqdru2ooc66@corp.supernews.com>

Jim Land <jland@bigfoot.com> wrote:

>> So what's the next new
>>programming language gonna be? 

> Python.   http://www.phython.org

Good at some things, bad at some.

I hate the whitespace as part of the language. I want to indent in
my style, the way I understand my code the easiest at a glance. I
hated ABC's way of doing this, so a rehash of it in Python isn't my
thing either. Misaligining something in an editor causing your
program to behave differently is bad, IMHO. Some people love this
though, and it's mostly a personal taste issue.

Python uses more processor or memory than Perl for some things, 
and less for others. Both are still growing and changing, and I
expect both to get better in their weakest spots. There is usually
a decent reason to choose one or the other based on design,
implementation, and maintenance reasons before this comes into
play but it could be an important distinction for certain projects.

Python has a smaller (but still pretty large compared to many languages)
public archive of modules and examples than Perl. This could change with
a shift of popularity for either or both languages.

> Ruby.     http://www.ruby-lang.org/en

Ruby has a few nice ideas. It is mostly designed to take after Perl,
but to improve upon Perl's object orientation model. I haven't used it
enough to say whether that's an improvement or not. It does have issues
of efficiency compared to Perl, Python, or Java -- sometimes quite
substantial ones. It is a fairly young project, though, so this could
change.


Perl.    http://www.perl.com

The language is still evolving, with backward compatibility being kept
in mind. There is a large public code base. There is a large base of
private code to be maintained and built upon. There are still more
programmers picking it up all the time. The documentation available for
it is astonishing. Perl is being used by many very large projects with
much success -- including the configuration of operating systems as
shipped by the OS vendors (no, not just Linux), the Human Genome Project,
etc. It is even being used by the FSF to act as a make utility to make
GNU make! I'd not count Perl out of the running as still a big contender
for big-name mainstream languages in five, ten, or even fifteen years
(although I'm not taking bets).

C#    MShttp://MSwww.microsoft.MScom

I've heard good and bad things about this. Unfortunately, most of the
good things are from devoted Microsofties and most of the bad things
are from people who would like to roast Mr. Gates on a stick. I've
yet to crack a book on it or play with the language at all.

From what I hear, it wins in some places where Java loses. It's supposed
to win in some of the same places as Java as well as some of the same
places as Perl. It's supposed to be portable (which I'll believe when
I see it -- not just because it's MS, but also because it's a competitor
for Java which isn't as portable as Sun would have your CEO believe).
If it reallyt is what I've heard -- a less pretentious form of
higher-level C++ than Java with some of the nicer features of other
languages thrown in that runs on all the relevant platforms -- then
I'd be happy to try it, even if it is a Microsoft product. ;-)  It
may very well become an important language even in places where Java
has failed to do so.


###

There are other languages I'll be watching just in case. Eiffel,
Dylan, CAML/OCAML, Sceheme, and Guile have all shown some promise in
recent years. I wouldn't be surprised to find that some derivative of
one of these languages becomes very popular in the next few years.

Chris

-- 
Christopher E. Stith
You can never entirely stop being what you once were. That's
why it's important to be the right person today, and not put
it off till tomorrow. -- Larry Wall, 3rd State of the Onion



------------------------------

Date: 16 Sep 99 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin) 
Subject: Digest Administrivia (Last modified: 16 Sep 99)
Message-Id: <null>


Administrivia:

The Perl-Users Digest is a retransmission of the USENET newsgroup
comp.lang.perl.misc.  For subscription or unsubscription requests, send
the single line:

	subscribe perl-users
or:
	unsubscribe perl-users

to almanac@ruby.oce.orst.edu.  

| NOTE: The mail to news gateway, and thus the ability to submit articles
| through this service to the newsgroup, has been removed. I do not have
| time to individually vet each article to make sure that someone isn't
| abusing the service, and I no longer have any desire to waste my time
| dealing with the campus admins when some fool complains to them about an
| article that has come through the gateway instead of complaining
| to the source.

To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.

To request back copies (available for a week or so), send your request
to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
where x is the volume number and y is the issue number.

For other requests pertaining to the digest, send mail to
perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
sending perl questions to the -request address, I don't have time to
answer them even if I did know the answer.


------------------------------
End of Perl-Users Digest V10 Issue 620
**************************************


home help back first fref pref prev next nref lref last post