On Tue, Apr 06, 2004 at 10:25:47AM -0200, Gabor Szabo wrote:
> ... and the VP will respond something like this:
> 
> >
> > - Perl is an Open Source language with world wide support of a large
> > enthusiastic community independent from 3rd party corporate
> > interests
>
> It does not have a "father". What if those people lose interest. What if
> we have a problem and those kids are not interested in fixing it.
> We cannot afford to invest in something so risky.

What if these microcomputers all stop working on 1/1/2000?

Yes, there's a risk.  In theory it's a huge risk, but in practice, it's
effectively mitigated.  Perl has gone crises of confidence before, and
yet it still thrives.  There are currently 5 (!) actively maintained
branches for Perl today, only two of which are for long term development
and experimentation.

Furthermore, Perl is much better suited for the long haul than other
open source languages.  If you were to choose, say, VB.Net, Lua or
Groovy for your infrastructure, who knows if the language will continue
to grow over the next 10 years?  With Perl, there's not only a large,
active base of developers, but also The Perl Foundation who acts as a 
steward over Perl to support development over the long haul.

> > - It's no spring chicken.  Perl has been around for many years, and
> > it's used because it's good, not because someone sold it as
> > vaporware very well
>
> Perl is an old langugage, does it have objects anyway ?

C++ is an old language, about as old as Perl.  Does *it* have objects?  ;-) [1]
 
> > - Perl is quite lightweight and tipycally does not need big hardware
> > or expensive application servers to run, like Java does
> 
> Hardware is cheap, it is not relevant. 

Hardware is most certainly relevant.  On the one hand, you can throw
memory, disk and CPU at a single box to scale up an application.  At
what point does that become cost prohibitive?  16CPU servers? 64CPU
machines, 4GB of RAM per CPU?

Eventually, for scalability and reliability, you need to move to a
server farm.  If you need a server farm just to run your (big, bloated)
application, you're going to come to some nasty, thorny systems
management issues that are very costly to solve properly.  

By choosing a more lightweight platform, you postpone those hard
problems that are expensive to solve.  You can still throw memory, disk
and CPU for scalability, but with much better ROI.  You can migrate to a
server form for reliability, scalability or both, but at a time of your
choosing, not your application's.

> > - If finding Java programmers is easier, then finding bad Java
> > programmers also is. Quality and quantity differ.
> 
> Perl scripters can't even read each others code.

You can hire one of two types of programmers - those with shallow
knowledge of a programming language, and those with deep knowledge of
the craft of software development.

Shallow coders will have trouble reading each others code, regardless of
the language.  Deep coders will be able to read code written by anyone,
in many languages.  Shallow coders are cheaper, but build buggier
systems due to their lack of experience.  Deep coders write less code,
code faster, are more disciplined and make fewer mistakes.

Who do you want to hire?  If you hire deep coders, then reading other
people's code is not a problem, regardless of the language you're using.

> > - A bad OO Java architecture has tipycally tragic performance
> > problems and is hard to reengineer. A poorly implemented Perl
> > architecture is more easily tuned and fixed
>
> Perl is an interpreted scripting languge. It is known to be slow.

Perl is compliled, just like Java.  The three major differences are that
(1) Perl bytecode is not saved to disk, (2) eliminating the separate
compilation phase makes Perl easier and quicker to develop, and (3) it
is easier to optimize slow parts of a Perl program by running compiled C
code than it is in Java.

> > - Perl also runs everywhere
>
> Does it run on mobile phones and on PDAs ?

Does your application run on mobile phones and PDAs?  I thought not.
 
> > Of course there are pros and cons. I can tell you that by my
> > experience that Java sells better as a concept (it helped to sell
> > lots of computer mags in the past) But at the end of the day, Perl
> > applications are usually much more flexible for changing and
> > tunning. The simple thought of EJB and EJB-QL makes me be sure of
> > this.
> 
> So what are the pros ?

  - Faster development
  - Quicker turnaround
  - Smaller teams

Z.


[1] OOP is a phase.  Before it we had "Structured Programming", and 
    after it, we have "Aspect Oriented Programming".  There are some big
        minds in the OOP world that are thinking about what's next after
        objects.  Much of what they forsee has been present in Perl for
        at least 10 years.

Reply via email to