We all know that PHP is a bad language, but it is used by much many programmers 
than Perl. We also know that C# or the other DotNet languages are bad because 
they run in really good conditions only under Windows, however are used more 
and more these days. We all know that C/C++ are bad languages because they are 
old-style and very low productive, however they are used because of their speed 
of execution.
Java also has a low productivity but it is used by very many programmers and 
companies because of its portability and strict standards.

It is wrong to compare the bad things in other languages with the bad things in 
Perl because Perl will surely have more disadvantages.
Why? Because Perl is not a language, but it is... more languages and each "Perl 
language" has its own advantages and disadvantages, and if we get only the list 
of disadvantages from all of these "Perl languages" then they will surely be 
more.

A programmer that still uses CGI.pm to create programs will see a list of 
disadvantages. One that uses the low level interface of mod_perl will se 
another list of disadvantages. The programs created with these modules will 
surely differ, and the programs created with or without Moose will also differ 
very much. Also the programs that use or not use an ORM, or the programs that 
use or not use a templating system or the programs that use much the built in 
functions or many CPAN modules, because any of them imply using their own 
"language" and more or less complex syntax.

The combinations of the modules and frameworks that can be used in a Perl 
program are very many and the things that hurt and the incompatibilities that 
can appear are also very many. The beginner programmers are always interested 
about the "recommended" way, but Perl doesn't have any kind of recommended way 
and this is its big problem. The single recommendations are those regarding the 
coding style, but even there there are more opinions.
TIMTOWTDI is an advantage only for non-standard projects in which there should 
be found strange solutions for strange problems but most projects are not so 
unusual these days. It is also an advantage for one-person projects in which 
each programmer can follow his/her own preferences without caring to adapt to 
rules, but I guess that the most of programmers work in a team however so 
TIMTOWTDI is not an advantage for them either and that's a big disadvantage in 
most software companies' eyes.

Will Perl 6 be the solution for this problems or it will be just another "Perl 
language"?
Anyway, for the moment it is too early to consider it a solution.

At one time I've seen the list of improvements in Ruby on Rails, improvements 
that were announced as a big event, but reading them with attention I've seen 
that those new and shiny features were offered for a long time by Catalyst and 
DBIx::Class and even much more.

Another problem is that the Perl programmers community communicates so well 
inside using mailing lists, forums and IRC that it doesn't need to advertise 
each new and small feature added in a module as an event, and blog about it, so 
the "external" world hears only silence from this community, thinking that Perl 
is dead for good reasons.

Another problem of Perl is that it is an old language. Too old, and the newbies 
don't like old things. If Perl 6 will be presented as a new language this 
problem might be solved.
The newbies don't like old things in which there are very many old experts, 
because there are little chances that they as newbies will become so fast 
better than those old programmers so that's the reason they like to change 
things promoting new things (which are not always better than the old ones as 
someone said). In a new appeared language the newbies have more chances to 
become as good as the old programmers or even better.

Perl is not promoted by companies like Microsoft, Oracle, IBM or Google but 
those companies have reasons promoting the languages they promote so I think we 
need to also promote the advantages of Perl and not try to find only what hurts 
in Perl.

A question about what hurts in Perl can just start flames without good results. 
For example, here is what hurts me in Perl (I hope that I won't irritate 
anyone):

- There is no high level module for accessing well known protocols like SSH or 
SFTP that works under Windows;
- There are too many Perl modules on CPAN that don't work under Windows and 
they will probably never work;
- There is no Perl module that can be used for sending email which is also high 
level and doesn't requires specifying the Content-Types or constructing each 
part manually, that can send email with all kind of charsets possible and all 
kinds of body encodings and which reports the errors nice, and which allows 
SSL/TLS and authentication, and which can use any kind of transport possible... 
althoug mail is a very old protocol;
- The support of Perl for Windows comparing it with the support offered by 
other languages, for example by Python is very low;
- Because we all hope that Perl 6 will make our life easier ("soon", "on the 
Christmas" :) there are fewer and fewer Perl 5 books published, and perldoc is 
not enough in case of many Perl modules. For example the documentation for 
WxPerl is very poor;
- A big problem which hopefully will be solved by Perl 6 is that Perl 5 offers 
a very poor support for Windows threads - they consume a lot of resources and 
the objects can't be share among threads...;
- It also hurts that there are no many well known projects in Perl anymore. 
Even the Perl projects use Mailman which is written in Python, MediaWiki 
written in PHP, I also use Mercurial (written in Python) as a source control 
system because GIT is not very compatible with Windows command prompt, Bazaar 
source control is also written in Python, SVK source control which is written 
in Perl was abandoned, there are even 2 screen readers one for Windows and one 
for Linux (made by Sun) written in Python, and it would be very hard if not 
impossible to write such a thing in Perl. Wordpress written in PHP is also much 
well known and used than Movable Type...;
- The POD syntax looks worse than the syntax of the documentation used by other 
languages because of its notation and lots of empty lines. If there would be a 
good and portable IDE for Perl that could hide the documentation when not 
needed, it wouldn't be such a problem;
- There is no good and recommended Perl distribution for Windows yet. I have 
tried to install DBD::Oracle under Strawberry Perl (after someone else also 
tried) but without success until now and I have also tried to install latest 
version of Padre under ActivePerl without success, so I can't really follow the 
recommendation of using Strawberry Perl and it is also not very nice to 
maintain 2 Perl distributions on the same machine;
- Another thing that hurts in Perl and which is also a reason why many 
programmers don't like Perl is that it is not possible to install an 
application to a server by just uploading the files there and give some 
permissions, especially if that app uses XS, and not everyone has access to a 
shell;
- CPAN is also great, but it is the haystack that contains too many needles, 
beeing hard to find which of them is the wanted one, and the Perl productivity 
decreases with the time of finding the right modules;

Octavian

----- Original Message ----- 
From: "Chris Dolan" <ch...@chrisdolan.net>
To: "Bill Ward" <b...@wards.net>
Cc: "Gabor Szabo" <szab...@gmail.com>; <module-authors@perl.org>
Sent: Wednesday, December 01, 2010 3:36 AM
Subject: Re: What hurts you the most in Perl?


> On Nov 29, 2010, at 6:52 PM, Bill Ward wrote:
> 
>> What hurts me is that Perl has fallen out of favor so much ... I'm  
>> contemplating jumping ship myself, and moving to Ruby or Python, not  
>> because of anything intrinsic to the language but just because Perl  
>> is going the way of Cobol or Fortran.
> 
> In the early stages of my last big Perl project, a sysadmin happened  
> to mention to the non-technical project lead that Perl is a dead  
> language.  While that clearly was (and is) a falsehood, it nearly  
> killed the project.  To me, the mere *perception* that Perl is a  
> troubled platform hurts the most.
> 
> The funny thing, though, is that I've never worked in a language that  
> hasn't been maligned by my peers or customers at some point.  Perl, C,  
> C++, csh, Java, Actionscript, Python, Lisp, PHP, VB, Javascript, etc  
> -- it always seems like there's someone in a position of authority who  
> wants to trash-talk the technology.  Why is that?
> 
> Chris
>

Reply via email to