SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
http://xkcd.com/224/

                       1
Perl
Baseless Myths & Startling Realities



          by Tim Bunce, February 2008

                                        2
Realities
-
    I'm positive about Perl
    Not negative about other languages


-   Pick any language well suited to the task
-
    Good developers are always most important,
    whatever language is used


                                                 3
Who am I?
-   Tim Bunce
-   Author of the Perl DBI module
-   Using Perl since 1991
-   Involved in the development of Perl 5
-   “Pumpkin” for 5.4.x maintenance releases
-   http://blog.timbunce.org


                                               4
~ Myths ~




            5
~ Myths ~

-              Perl is dead

- Perl is hard to read / test / maintain
-         Perl 6 is killing Perl 5

                                           6
~ Myths ~

-              Perl is dead

- Perl is hard to read / test / maintain
-         Perl 6 is killing Perl 5

                                           7
Perl 5

-   Perl 5 isn’t the new kid on the block
    -   Perl is 21 years old
    -   Perl 5 is 14 years old


-   A mature language with a mature culture




                                              8
9
10
Buzz != Jobs

-   Perl5 hasn’t been generating buzz recently
    -   It’s just getting on with the job
    -   Lots of jobs
        -   just not all in web development




                                                 11
Guess the Languages




                      12
“web developer”




Yes, Perl is growing more slowly than others
  but these are just “web developer” jobs
                                               13
“software engineer”




  Perl is mentioned in many more
 software engineer/developer jobs.
                                     14
“foo developer”




Perl is the primary focus of more developer jobs.
 Want a fun new job? Become a Perl developer!
                                                    15
Massive Module Market

-   Large and vibrant developer community
-   Over 14,000 distributions (54,000 modules)
-   Over 6,400 ‘authors’ (who make releases)
-   Thousands of new releases every month to
    hundreds of modules




                                                 16
Top Modules
-Many gems, including...
  -DBI DBD::* DBIx::Class Rose::DB::Object
  -Catalyst Moose DateTime
  -Algorithm::* Statistics::* Thread::*
  -XML::* HTML::* WWW::* Parse::*
  -Net::* Email::* POE::* Locale::*
  -Test::* Devel::Cover Perl::Critic perltidy
                                                17
-   Comprehensive Perl Archive Network
-   360 mirrors in 51 regions (TLDs)




                                         18
Developer Services
-   Upload a perl module distribution
    and you automatically get...
    -   global distribution and archiving
    -   namespace ownership and management
    -   a bug tracking queue at rt.cpan.org
    -   a forum at cpanforum.com
    -   smoke testing on many platforms


                                              19
search.cpan.org
-   For each and every distribution:
-   Browse well formatted inter-linked docs
-   Links to forums, bug tracking, ratings,
    annotated documentation, dependency
    analysis, smoke test results, and more...
-   620,000 unique visitors per month
    150,000 page views per day
    33,000 visits per day


                                                20
21
Dependency Analysis available for all Modules
             http://bbbike.radzeit.de/~slaven/cpantestersmatrix.cgi




                                                                      22
Average Uploads/Month




                        23
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS

- Perl is hard to read / test / maintain
-         Perl 6 is killing Perl 5

                                           24
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS

- Perl is hard to read / test / maintain
-         Perl 6 is killing Perl 5

                                           25
“How Not to Write FORTRAN
     in Any Language”
-   by Donn Seeley
    ACM Queue Vol. 2 No. 9 - Dec/Jan 2004-2005

-   False: “There’s no obfuscated Perl contest
    because it’s pointless.”
    
 —Jeff Polk
-   True: “Whatever language you write in, your
    task as a programmer is to do the best you can
    with the tools at hand.”
    
 —Kernighan and Pike


                                                     26
“True greatness is measured by how much
freedom you give to others, not by how much
you can coerce others to do what you want.”

    —Larry Wall




                                              27
Guidelines and Tools

-   Perl Best Practices
-   Perl::Tidy
-   Perl::Critic
-   Test::*
-   Devel::Cover



                           28
29
Perl::Tidy

-   Perl code beautifier
-   Works beautifully - can be trusted
-   Supports many options for personal styles
-   Perl Best Practices recommended options




                                                30
Perl::Critic

-   Static Code Analysis for Perl
-   Includes over 120 policies
-   Most based on Perl Best Practices
-   Grouped into levels and themes
-   Configurable and extensible
    for local policies and styles



                                        31
Test::*

-   Perl culture takes testing seriously
-   Excellent mature tools for testing
-   Test Anything Protocol - producers/consumers
    http://en.wikipedia.org/wiki/Test_Anything_Protocol

-   Test::* modules make it easy to write tests
-   Over 200 Test::* distributions on CPAN



                                                          32
33
Devel::Cover

-   Coverage Analysis for Perl
-   Tells you what code has been executed
-   Statement, branch, condition, subroutine, pod
-   Produces drill-down reports in HTML




                                                    34
Devel::Cover Reports
          http://pjcj.sytes.net/cover/latest/




                                                35
36
37
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS
                          D! / maintain
- Perl is hard to readE test
              B US   T /

-         Perl 6 is killing Perl 5

                                          38
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS
                          D! / maintain
- Perl is hard to readE test
              B US   T /

-         Perl 6 is killing Perl 5

                                          39
Perl 6 saved Perl 5!

-   “Perl 5 had already started dying, because
    people were starting to see it as a dead-end
    language.
-   It seemed odd at the time, but when we
    announced Perl 6, Perl 5 suddenly took on a
    new life.”
    
 —Larry Wall, 2002



                                                   40
Perl 6 saved Perl 5!

-   In 2000 perl was dying from the inside out
-   The Perl 6 RFC process “vented speen”
-   Perl 5 development has gone smoothly since
-   Much refactoring driven by Perl5-on-Parrot
-   Many new features inspired by Perl 6 work



                                                 41
Perl 5.10
- Perl 5.10 was released in December
 Five years after 5.8.0, two years after 5.8.8
- Refactored internals
 
     many fixes, more speed, less memory
- Switch statement, smart matching, named
 captures, state variables, defined-or, say, field
 hashes, pluggable regex engines, trie-based
 non-recursive pattern matching, and more...
 http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane

                                                                               42
A Culture of Testing

-   Another bonus from Perl 6:
-   Strong test suites for Perl 5 code are needed to
    ensure backwards compatibility
-   Strengthened culture of testing




                                                       43
Perl Test Suite

-2002: Perl 5.8.0 had 26,725 core tests

      +41,666 more for bundled libraries etc.


-2007: Perl 5.10.0 has 78,883 core tests

      +109,427 more for bundled libraries etc.




                                                  44
Module Test Suites

-CPAN Testers Network:
- Automated smoke testing of CPAN uploads
- Runs the test suite included in upload
- 61 different platforms
    20 different versions
-   Immediate feedback for developers



                                            45
Platform/Version analysis available for all Modules
                                  http://cpandeps.cantrell.org




                                                                 46
~90,000 Reports/Month




   Monthly - August 1999 to December 2007
                                            47
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS
                          D! / maintain
- Perl is hard to readE test
              B US   T /

-                         D!
          Perl 6 isSTE Perl 5
                    killing
              BU

                                          48
~ Myths ~

                       D!
-                  TE
             Perl is dead
             BUS
                          D! / maintain
- Perl is hard to readE test
              B US   T /

-                         D!
          Perl 6 isSTE Perl 5
                    killing
              BU

                                          49
Community Resources
“Awesome community.
Perl people tend to be laid-back and friendly.”


-perlmonks.org - Meditations and wisdom
-use.perl.org - News and blogs
-perlbuzz.com - Headlines and articles
-comp.lang.perl.* - Newsgroups
                                                  50
Any questions?

     http://perlmonks.org
    http://search.cpan.org
   http://blog.timbunce.org


                              51

Weitere ähnliche Inhalte

Mehr von Tim Bunce

Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Tim Bunce
 
PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012Tim Bunce
 
Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008Tim Bunce
 
Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Tim Bunce
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0Tim Bunce
 
DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007Tim Bunce
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Tim Bunce
 
DashProfiler 200807
DashProfiler 200807DashProfiler 200807
DashProfiler 200807Tim Bunce
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007Tim Bunce
 
DBD::Gofer 200809
DBD::Gofer 200809DBD::Gofer 200809
DBD::Gofer 200809Tim Bunce
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Tim Bunce
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Tim Bunce
 

Mehr von Tim Bunce (12)

Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011
 
PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012PL/Perl - New Features in PostgreSQL 9.0 201012
PL/Perl - New Features in PostgreSQL 9.0 201012
 
Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008Perl6 DBDI YAPC::EU 201008
Perl6 DBDI YAPC::EU 201008
 
Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)Perl 6 DBDI 201007 (OUTDATED, see 201008)
Perl 6 DBDI 201007 (OUTDATED, see 201008)
 
PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0PL/Perl - New Features in PostgreSQL 9.0
PL/Perl - New Features in PostgreSQL 9.0
 
DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007DBI Advanced Tutorial 2007
DBI Advanced Tutorial 2007
 
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
Devel::NYTProf v3 - 200908 (OUTDATED, see 201008)
 
DashProfiler 200807
DashProfiler 200807DashProfiler 200807
DashProfiler 200807
 
DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007DBI for Parrot and Perl 6 Lightning Talk 2007
DBI for Parrot and Perl 6 Lightning Talk 2007
 
DBD::Gofer 200809
DBD::Gofer 200809DBD::Gofer 200809
DBD::Gofer 200809
 
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)Devel::NYTProf 2009-07 (OUTDATED, see 201008)
Devel::NYTProf 2009-07 (OUTDATED, see 201008)
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)
 

Kürzlich hochgeladen

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Kürzlich hochgeladen (20)

New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

Perl Myths 200802 (OUTDATED, see 200909)

  • 2. Perl Baseless Myths & Startling Realities by Tim Bunce, February 2008 2
  • 3. Realities - I'm positive about Perl Not negative about other languages - Pick any language well suited to the task - Good developers are always most important, whatever language is used 3
  • 4. Who am I? - Tim Bunce - Author of the Perl DBI module - Using Perl since 1991 - Involved in the development of Perl 5 - “Pumpkin” for 5.4.x maintenance releases - http://blog.timbunce.org 4
  • 6. ~ Myths ~ - Perl is dead - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 6
  • 7. ~ Myths ~ - Perl is dead - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 7
  • 8. Perl 5 - Perl 5 isn’t the new kid on the block - Perl is 21 years old - Perl 5 is 14 years old - A mature language with a mature culture 8
  • 9. 9
  • 10. 10
  • 11. Buzz != Jobs - Perl5 hasn’t been generating buzz recently - It’s just getting on with the job - Lots of jobs - just not all in web development 11
  • 13. “web developer” Yes, Perl is growing more slowly than others but these are just “web developer” jobs 13
  • 14. “software engineer” Perl is mentioned in many more software engineer/developer jobs. 14
  • 15. “foo developer” Perl is the primary focus of more developer jobs. Want a fun new job? Become a Perl developer! 15
  • 16. Massive Module Market - Large and vibrant developer community - Over 14,000 distributions (54,000 modules) - Over 6,400 ‘authors’ (who make releases) - Thousands of new releases every month to hundreds of modules 16
  • 17. Top Modules -Many gems, including... -DBI DBD::* DBIx::Class Rose::DB::Object -Catalyst Moose DateTime -Algorithm::* Statistics::* Thread::* -XML::* HTML::* WWW::* Parse::* -Net::* Email::* POE::* Locale::* -Test::* Devel::Cover Perl::Critic perltidy 17
  • 18. - Comprehensive Perl Archive Network - 360 mirrors in 51 regions (TLDs) 18
  • 19. Developer Services - Upload a perl module distribution and you automatically get... - global distribution and archiving - namespace ownership and management - a bug tracking queue at rt.cpan.org - a forum at cpanforum.com - smoke testing on many platforms 19
  • 20. search.cpan.org - For each and every distribution: - Browse well formatted inter-linked docs - Links to forums, bug tracking, ratings, annotated documentation, dependency analysis, smoke test results, and more... - 620,000 unique visitors per month 150,000 page views per day 33,000 visits per day 20
  • 21. 21
  • 22. Dependency Analysis available for all Modules http://bbbike.radzeit.de/~slaven/cpantestersmatrix.cgi 22
  • 24. ~ Myths ~ D! - TE Perl is dead BUS - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 24
  • 25. ~ Myths ~ D! - TE Perl is dead BUS - Perl is hard to read / test / maintain - Perl 6 is killing Perl 5 25
  • 26. “How Not to Write FORTRAN in Any Language” - by Donn Seeley ACM Queue Vol. 2 No. 9 - Dec/Jan 2004-2005 - False: “There’s no obfuscated Perl contest because it’s pointless.” —Jeff Polk - True: “Whatever language you write in, your task as a programmer is to do the best you can with the tools at hand.” —Kernighan and Pike 26
  • 27. “True greatness is measured by how much freedom you give to others, not by how much you can coerce others to do what you want.” —Larry Wall 27
  • 28. Guidelines and Tools - Perl Best Practices - Perl::Tidy - Perl::Critic - Test::* - Devel::Cover 28
  • 29. 29
  • 30. Perl::Tidy - Perl code beautifier - Works beautifully - can be trusted - Supports many options for personal styles - Perl Best Practices recommended options 30
  • 31. Perl::Critic - Static Code Analysis for Perl - Includes over 120 policies - Most based on Perl Best Practices - Grouped into levels and themes - Configurable and extensible for local policies and styles 31
  • 32. Test::* - Perl culture takes testing seriously - Excellent mature tools for testing - Test Anything Protocol - producers/consumers http://en.wikipedia.org/wiki/Test_Anything_Protocol - Test::* modules make it easy to write tests - Over 200 Test::* distributions on CPAN 32
  • 33. 33
  • 34. Devel::Cover - Coverage Analysis for Perl - Tells you what code has been executed - Statement, branch, condition, subroutine, pod - Produces drill-down reports in HTML 34
  • 35. Devel::Cover Reports http://pjcj.sytes.net/cover/latest/ 35
  • 36. 36
  • 37. 37
  • 38. ~ Myths ~ D! - TE Perl is dead BUS D! / maintain - Perl is hard to readE test B US T / - Perl 6 is killing Perl 5 38
  • 39. ~ Myths ~ D! - TE Perl is dead BUS D! / maintain - Perl is hard to readE test B US T / - Perl 6 is killing Perl 5 39
  • 40. Perl 6 saved Perl 5! - “Perl 5 had already started dying, because people were starting to see it as a dead-end language. - It seemed odd at the time, but when we announced Perl 6, Perl 5 suddenly took on a new life.” —Larry Wall, 2002 40
  • 41. Perl 6 saved Perl 5! - In 2000 perl was dying from the inside out - The Perl 6 RFC process “vented speen” - Perl 5 development has gone smoothly since - Much refactoring driven by Perl5-on-Parrot - Many new features inspired by Perl 6 work 41
  • 42. Perl 5.10 - Perl 5.10 was released in December Five years after 5.8.0, two years after 5.8.8 - Refactored internals many fixes, more speed, less memory - Switch statement, smart matching, named captures, state variables, defined-or, say, field hashes, pluggable regex engines, trie-based non-recursive pattern matching, and more... http://www.slideshare.net/rjbs/perl-510-for-people-who-arent-totally-insane 42
  • 43. A Culture of Testing - Another bonus from Perl 6: - Strong test suites for Perl 5 code are needed to ensure backwards compatibility - Strengthened culture of testing 43
  • 44. Perl Test Suite -2002: Perl 5.8.0 had 26,725 core tests +41,666 more for bundled libraries etc. -2007: Perl 5.10.0 has 78,883 core tests +109,427 more for bundled libraries etc. 44
  • 45. Module Test Suites -CPAN Testers Network: - Automated smoke testing of CPAN uploads - Runs the test suite included in upload - 61 different platforms 20 different versions - Immediate feedback for developers 45
  • 46. Platform/Version analysis available for all Modules http://cpandeps.cantrell.org 46
  • 47. ~90,000 Reports/Month Monthly - August 1999 to December 2007 47
  • 48. ~ Myths ~ D! - TE Perl is dead BUS D! / maintain - Perl is hard to readE test B US T / - D! Perl 6 isSTE Perl 5 killing BU 48
  • 49. ~ Myths ~ D! - TE Perl is dead BUS D! / maintain - Perl is hard to readE test B US T / - D! Perl 6 isSTE Perl 5 killing BU 49
  • 50. Community Resources “Awesome community. Perl people tend to be laid-back and friendly.” -perlmonks.org - Meditations and wisdom -use.perl.org - News and blogs -perlbuzz.com - Headlines and articles -comp.lang.perl.* - Newsgroups 50
  • 51. Any questions? http://perlmonks.org http://search.cpan.org http://blog.timbunce.org 51