« RFC: Non Code Data Directories and Standards for Catalyst | Main | Time to Rotate the Profile Pic? »



Feed You can follow this conversation by subscribing to the comment feed for this post.


[this is good] As someone who have been developing in Perl for more than 10 years, I feel abandoned by the developers.The
Perl module system was always difficult to install and use, especially
if you did not have admin access, but now with modules and dependencies
that have not been updated since 2004 it has become a minefield.Perl
developers, meanwhile, have fragmented into Rakudo, Parrot, Strawberry,
and gawd knows what else, none of which is even close to production,
and most of which likely never will be.If you sense a bit of
hate on from Perl developers, it's because we put a lot of effort into
what was really a good language, only to see maintenance and
development turn into a farce.


Downes which modules are you referring to? Which platform/hosting are you using to install Perl modules?

I have never had any difficulty installing Perl modules to a Dreamhost shared hosting by using the Linux terminal.I have been using Perl for 10+ years and the hundreds of development tools and modules I have used, have actually been updated. These include CGI based web,DB programming, and Wx, Gtk based desktop programming. Today, more and more modules and "perspectives" (Moose for example) is on CPAN with a solid user base.Rakudo and Parrot is progressing and will mature to production level in the following years to shape the next 30 years of programming. Parrot 1.0 is already out and with more usage bugs are being fixed, features are being added. As many I agree that the development time has been slow, but considering this has been a community project with no stable cash flow, I still believe that Perl 6 initiative is a success.Least but not the least. Perl community. In perlmonks.com I can get help from other Perl programmers within minutes. One day it is a IO::Select question, the other day a thread question, a mod_perl question, etc...Or you I do a search in perlmonks alone, find a thread from 2002, apply the solution presented in a Perl 5.8 Linux box. Then testing the code in a Windows Perl 5.10 platform and converting the application to an exe with PerlApp.And get paid to bring bread on the table. Thank you Perl. Thank you Perl Community.


[this is good] Downes: Strawberry was long ago marked as stable. Due to Strawberry project many modules better work on Windows and in general. See Vanilla/Strawberry Perl problem modules - many modules listed as fixed due to our patches and bug reports.In general, you should use your OS package manager for installing modules. If you want latest versions - you have to live with possibility of error. Using CPAN::Reporter helps to make bugs fixed earlier.Installing modules was made easier recently with configure_requires implemented in all parts of install process and Module::Build entering core.

John Napiorkowski

Downes:Thanks for the frank and open feedback. I felt similarly about three years ago when I nearly gave up on Perl. For me, a few very interesting projects, mostly Catalyst, Moose and DBIC, got me to stick around. There are definitely things you should be doing to ease the install pain, such as using local::Lib and some other tricks which are known within the community but not promoted strongly enough. Things are getting better. I remember the first time I installed Catalyst, about 3.5 years ago, I struggled for hours. Two days ago I got it to install with one command and no fuss. So the community is taking this issue as seriously as time allows. Part of the problem is there is a lot to do and not enough skilled hands with time, so we triage the worst problems first.One serious problem you mentioned is how some important modules seem abandoned. Partially this has to do with the lack of enough common framework built into perl, such as it's minimal object system, method signatures, etc. I've spoken on this before, that this tends to make each Perl module a bit too much of a snowflake all alone, and hard for people other than the original author to work on. I think Moose has really helped with this, as it provides a deep framework around which enough best practice context exists to smooth the learning curve. That's why I am not surprised to see Catalyst development kick up a notch now that it's on Moose. I expect the eventual port of DBIC to Moose will have a similar effect.However part of this solution has to be that we as Perl programmers need to take a more active role in maintaining our stuff. If an important module that you need is having trouble, that you should make the effort to offer a patch. Again, I realize this can be tough and we need to do more to make it easier for newcomers to join in.

Adam Kelly

Hi there,

I'm writing as a Perl "outsider". I've used perl once in a while for small tasks since about Perl 4, but I had never attempted an app with more than say 50 lines of code.

Around 2006, I took overmaintenanceof a moderate sized Perl code base. It was ... not good.

What was interesting to me was that the particular maintainability problems in each section of the code would track which developer wrote the code. Each developer had a consistent style, and used "use warnings" and "use strict"

What that tells me is that there is a huge variety of ways to express yourself in Perl, and that none of us working on this code base had mastered a significantly overlapping set of idioms.

Another weakness of using Perl in production, which Python and Java share to some extent is the @INC / $PATH variable. Having more that one version of Perl on a server can be a bit tricky to work with.

Overall, I think Perl is a great tool for text wrangling, and building small components that are then connected together, but using it for a large project in a team of non-experts (and I mean EXPERTS) seems dicey.


[this is good] i'd have to argue that most of the negativity towards perl comes in the form above.

John Napiorkowski

For those of you having trouble which the fact that out of the box Perl CPAN modules need to be installed into a global, shared area (see "perl -V" to see what that is for your local perl executable), I really recommend seeing local::lib which really smooths this process quite a bit. Using local lib I have no trouble with having lots of developers all on one box and each with different modules installed. So that really helps.For the issue of how Perl projects often end up strongly expressive of how particular programmers think, I agree that is an issue. As I've said, since Perl out of the box lacks a lot of framework, most programmers end up plugging in the gaps with very personal solutions. I personally believe that Moose is helping us to solve this problem. As I've written elsewhere, Moose really helps plug in a lot of gaps and I believe anyone starting a new Perl project should seriously take a look. I believe over time, projects like this will help grow our ecosystem of best practices and reduce the local contextuality that beleaguers newcomers and raises the learning curve.Also, I think that we need to do better with developing and sharing the load of code maintainence. This is something we are learning to do, and I've also written about it here. Between these two things I think over time you will see less idiomatic Perl and more concensus about the best tools and practices. Now, Perl will always to a certain degree more 'DIY' than a lot of languages. That's one of it's key differences and a reason why it attracts a certain type of mind. Not all people fit, but that's fine because there's other options. Perl is a ruthless meritocracy and we don't like to close off the new, radical idea by overly standardization. Personally, I would like to see the next version of Perl have fewer standard modules than more. Projects that are great, attract lots of developers, having regular CPAN releases, etc, are going to rise to the top. Ones that don't will just fall below the surface.


[this is good] I just reviewed my blog entry of 2006 on this topic and I find it still reflects my views. Mind you I'm still waiting on Perl 6.

The comments to this entry are closed.