SlideShare a Scribd company logo
1 of 31
Download to read offline
Perl in The Enterprise



        Dave Cross
    dave@mag-sol.com
   Magnum Solutions Ltd
   http://mag-sol.com/
What We Will Cover
    What is Enterprise Computing?
●


    Why Perl is good in the Enterprise
●


    Why Perl is bad in the Enterprise
●


    The Perl Foundation
●


    What is coming with Perl 6
●
What is Enterprise
            Computing?
    Lets ask Google
●


    define:quot;enterprise computingquot;
●


    “A vague term used generally to refer to
●


    networks and other computing needs
    implemented throughout a large, often
    widely dispersed corporation. Microsoft
    and IBM, for example, are enterprises; a
    small business is not.”
    www.microsoft.com
●
Enterprise Computing
    Large scale hardware and software
●


    implementations
    Interfaces to other systems
●


    High availability
●


    Many developers working simultaneously
●


    Long lifespan
●


    High visibility
●
Why Perl is Good in the
           Enterprise
    Who uses it?
●


    Why do they use it?
●


    Web Application examples
●
Who Uses Perl?
    Everyone
●


    No really
●


    Well, almost everyone
●


    Even Microsoft shops
●


    Banks see it as a “competitive advantage”
●


    People regularly build and deploy
●


    applications containing 10,000s lines of
    Perl code
Why Do They Use It?
    Very High Level
●


    Dynamic Language
●


    Ready Written Modules
●


    Quality Assurance
●


    Multiple Programming Paradigms
●
Very High Level Language
    Typically one line of Perl to ten lines of C
●


    Number of bugs is proportional to lines
●


    of code
    Much code in off the shelf modules
●
Dynamic Language
    Code is data
●


    Like Python and Ruby
●


    Unlike Java, C and C#
●


    Programs that write programs
●

        Are the happiest programs of all
    –
Ready Written Modules
    Perl has a culture of sharing code
●


    Comprehensive Perl Archive Network
●


    http://search.cpan.org/
●


    Thousands of pre-built modules
●


    Standard installation and testing
●


    procedures
    Plug and Play Programming
●
Quality Assurance
    Very powerful testing framework
●


    Encourages module authors to include
●


    test suites with their code
    Lots of work in this area over the last five
●


    years
    “Perl Testing: A Developers Notebook”
●


    CPAN Testers
●

        http://testers.cpan.org/
    –
    CPAN Ratings
●

        Like Amazon ratings
    –
        http://cpanratings.perl.org/
    –
Quality Assurance
    Perl QA works on two levels
●


    Makes it easy for module authors to
●


    write test plans
        Code you bring in from CPAN is well tested
    –
    Makes it easy for your developers to
●


    write test plans
        Smoke testing
    –
        Test first development
    –
Multiple Programming
               Paradigms
    Procedural Programming
●


    Object Oriented Programming
●


    Functional Programming
●

        “Higher Order Perl”
    –
    Other, more esoteric, paradigms too
●


    Pick whatever is best for your application
●
Web Application Examples
    Everyone is talking about Ruby on Rails
●


    Example of an MVC framework
●


    Many MVC frameworks on the CPAN
●


    Or build your own from components
●
MVC Components
    Model
●

        Class::DBI (object-relational mapper)
    –
        Also Tangram, DBIx::Class, Class::Persist
    –
    View
●

        Template Toolkit
    –
        Also Mason, HTML::Template
    –
    Controller
●

        Your code goes here
    –
    Complete Frameworks
●

        Maypole
    –
        Catalyst
    –
Why Perl is Bad in the
                  Enterprise
    It’s all a matter of perception
●


    Seen as a “hackers” language
●

        Bad CGI programs
    –
        Two audiences
    –
             Enterprise vs Hackers
         ●


             Open Source vs Free Software
         ●


    TMTOWTDI
●

        There’s More Than One Way To Do It
    –
        Everyone has their own favourite
    –
        Coding standards and code reviews
    –
        “Perl Best Practices”
    –
The Perl Foundation
    http://foundation.perl.org/
●


    “dedicated to the advancement of the
●


    Perl programming language through
    open discussion, collaboration, design,
    and code.”
    Co-ordinates the efforts of a number of
●


    grass-roots Perl groups
        Perl Mongers
    –
        perl.org
    –
        Perl Monks
    –
        YAPC
    –
The Perl Foundation
    Holding a number of “Perl Days”
●


    Meeting large companies to discuss what
●


    they need from Perl
    Meeting in London August 2005
●


    Setting up an “Enterprise Perl Working
●


    Group”
        Recommended modules
    –
        Pre-built libraries
    –
        Certification
    –
Perl 6
    quot;Perl 5 was my rewrite of Perl. I want
●


    Perl 6 to be the community's rewrite of
    Perl and of the community.quot;
        Larry Wall
    –
Perl 6 History
        th
    18 July 2000, OSCON
●

        Perl 5 Porters meeting
    –
        Jon Orwant
    –
        Major change needed
    –
        th
    19 July 2000, OSCON
●

        Larry Wall’s “State of the Onion“
    –
        Announces development of Perl 6
    –
    It’s been a long time coming
●
Perl 6 Design
    Massive RFC Process
●


    Canvassing ideas from community
●


    361 RFCs received
●


    http://dev.perl.org/perl6/rfc/
●


    Larry (with help from others) merges
●


    RFCs with his ideas
    Much discussion on mailing lists
●


    Designs published as a series of
●


    Apocalyses and Exegeses
        http://dev.perl.org/perl6/
    –
Perl 6 Features
    Many new features
●

        explicit strong typing
    –
        proper parameter lists
    –
        active metadata on values, variables,
    –
        subroutines, and types
        declarative classes with strong encapsulation
    –
        full OO exception handling
    –
        support for the concurrent use of multiple
    –
        versions of a module
        extensive introspection facilities
    –
        LL and LR grammars (including a built-in
    –
        grammar for Perl 6 itself)
Perl 6 Features
    More new features
●

        subroutine overloading
    –
        multiple dispatch
    –
        named arguments
    –
        a built-in switch statement
    –
        hierarchical construction and destruction
    –
        distributive method dispatch
    –
        method delegation
    –
        named regexes
    –
        overlapping and exhaustive regex matches
    –
        within a string
        named captures
    –
Perl 6 Features
    Yet more new features
●

        parse-tree pruning
    –
        incremental regex matching against input
    –
        streams
        macros (that are implemented in Perl itself)
    –
        user-definable operators (from the full
    –
        Unicode set)
        chained comparisons
    –
        a universally accessible aliasing mechanism
    –
        lexical exporting (via a cleaner, declarative
    –
        syntax)
        multimorphic equality tests
    –
Perl 6 Features
    A few more new features
●

        state variables
    –
        hypothetical variables
    –
        hyperoperators (i.e. vector processing)
    –
        function currying
    –
        junctions (i.e. superpositional values,
    –
        subroutines, and types)
        coroutines
    –
Perl 6 Related Projects
    Parrot
●


    PONIE
●


    Pugs
●
Parrot
    Virtual machine used to efficiently
●


    execute bytecode for dynamic languages
    Core of the Perl 6 compiler
●


    Target platform for Perl 6
●


    Other languages will be able to target
●


    Parrot too
    Use libraries from other Parrot languages
●


    http://www.parrotcode.org/
●
PONIE
    Perl On New Internal Engine
●


    Perl 5 implemented on top of Parrot
●


    Implementing a real language in Parrot
●


    A real test that Parrot is up to the job
●


    http://www.poniecode.org/
●
Pugs
    Prototype Perl 6 compiler
●


    Written in Haskell
●


    Good way to try out Perl 6 now
●


    Limited but getting better very quickly
●


    http://pugscode.org/
●
Conclusion
    Perl is currently very suitable as an
●


    Enterprise level language
    Many large companies rely on Perl to
●


    drive their business
    Perl 6 will be even better
●
Questions
    Any questions?
●

        Except “when will Perl 6 be out?”
    –

More Related Content

What's hot

PHP Training in Coimbatore|PHP training Coimbatore|PHP certification
PHP Training in Coimbatore|PHP training Coimbatore|PHP certificationPHP Training in Coimbatore|PHP training Coimbatore|PHP certification
PHP Training in Coimbatore|PHP training Coimbatore|PHP certificationsathyancegon
 
Open_Source_for_DT
Open_Source_for_DTOpen_Source_for_DT
Open_Source_for_DTwebuploader
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSencha
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 stk_jj
 
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDBZapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDBOren Eini
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?Balajihope
 
2015 spice world_london_breakout
2015 spice world_london_breakout2015 spice world_london_breakout
2015 spice world_london_breakoutThomas Lee
 
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...PrabhatKumar591
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011Paulo Mattos
 
[C3] 升級版eClass 4.1── 更流暢實用的網上教室
[C3] 升級版eClass 4.1── 更流暢實用的網上教室[C3] 升級版eClass 4.1── 更流暢實用的網上教室
[C3] 升級版eClass 4.1── 更流暢實用的網上教室eclass_bl
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Laurent Guérin
 

What's hot (20)

PHP Training in Coimbatore|PHP training Coimbatore|PHP certification
PHP Training in Coimbatore|PHP training Coimbatore|PHP certificationPHP Training in Coimbatore|PHP training Coimbatore|PHP certification
PHP Training in Coimbatore|PHP training Coimbatore|PHP certification
 
Open_Source_for_DT
Open_Source_for_DTOpen_Source_for_DT
Open_Source_for_DT
 
guadec-2007
guadec-2007guadec-2007
guadec-2007
 
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen PaganSenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
SenchaCon 2016: Oracle Forms Modernisation - Owen Pagan
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 
Secured Development
Secured DevelopmentSecured Development
Secured Development
 
MEAN Stack
MEAN StackMEAN Stack
MEAN Stack
 
WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020 WordPress Security 101 - Meetup Nairobi March 2020
WordPress Security 101 - Meetup Nairobi March 2020
 
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDBZapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
Zapping ever faster: how Zap sped up by two orders of magnitude using RavenDB
 
What is Mean Stack Development ?
What is Mean Stack Development ?What is Mean Stack Development ?
What is Mean Stack Development ?
 
2015 spice world_london_breakout
2015 spice world_london_breakout2015 spice world_london_breakout
2015 spice world_london_breakout
 
PHP Training in Chandigarh
PHP Training in ChandigarhPHP Training in Chandigarh
PHP Training in Chandigarh
 
Documentation Future
Documentation FutureDocumentation Future
Documentation Future
 
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
Oracle Database Interview Questions -PART 1 | sql, plsql, dbms, scenario base...
 
Olympya web-tools 2011
Olympya web-tools 2011Olympya web-tools 2011
Olympya web-tools 2011
 
[C3] 升級版eClass 4.1── 更流暢實用的網上教室
[C3] 升級版eClass 4.1── 更流暢實用的網上教室[C3] 升級版eClass 4.1── 更流暢實用的網上教室
[C3] 升級版eClass 4.1── 更流暢實用的網上教室
 
RavenDB 4.0
RavenDB 4.0RavenDB 4.0
RavenDB 4.0
 
Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019Telosys project booster Paris Open Source Summit 2019
Telosys project booster Paris Open Source Summit 2019
 
Build social apps for Facebook
Build social apps for FacebookBuild social apps for Facebook
Build social apps for Facebook
 
PowerShell Runspaces
PowerShell RunspacesPowerShell Runspaces
PowerShell Runspaces
 

Similar to Perl Enterprise Computing Guide

Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909Tim Bunce
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14ActiveState
 
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
 
Webinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesWebinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesEdureka!
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)goccy
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Espen Brækken
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12ActiveState
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in PerlEdureka!
 
Software Development with Open Source
Software Development with Open SourceSoftware Development with Open Source
Software Development with Open SourceOpusVL
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascriptrajivmordani
 
Unit 1-introduction to perl
Unit 1-introduction to perlUnit 1-introduction to perl
Unit 1-introduction to perlsana mateen
 
Perl in the Real World
Perl in the Real WorldPerl in the Real World
Perl in the Real WorldOpusVL
 
phpwebdev.ppt
phpwebdev.pptphpwebdev.ppt
phpwebdev.pptrawaccess
 
Propel Your PHP Applications
Propel Your PHP ApplicationsPropel Your PHP Applications
Propel Your PHP Applicationshozn
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLBarry Jones
 

Similar to Perl Enterprise Computing Guide (20)

Perl Myths 200909
Perl Myths 200909Perl Myths 200909
Perl Myths 200909
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
 
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)
 
Webinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting LanguagesWebinar: Learn Perl - The Jewel of Scripting Languages
Webinar: Learn Perl - The Jewel of Scripting Languages
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
 
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex Ruby on Rails (RoR) as a back-end processor for Apex
Ruby on Rails (RoR) as a back-end processor for Apex
 
Php
PhpPhp
Php
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
 
Mastering Regex in Perl
Mastering Regex in PerlMastering Regex in Perl
Mastering Regex in Perl
 
Software Development with Open Source
Software Development with Open SourceSoftware Development with Open Source
Software Development with Open Source
 
Server Side Javascript
Server Side JavascriptServer Side Javascript
Server Side Javascript
 
Unit 1-introduction to perl
Unit 1-introduction to perlUnit 1-introduction to perl
Unit 1-introduction to perl
 
Perl in the Real World
Perl in the Real WorldPerl in the Real World
Perl in the Real World
 
phpwebdev.ppt
phpwebdev.pptphpwebdev.ppt
phpwebdev.ppt
 
perl lauange
perl lauangeperl lauange
perl lauange
 
Pearl
PearlPearl
Pearl
 
Propel Your PHP Applications
Propel Your PHP ApplicationsPropel Your PHP Applications
Propel Your PHP Applications
 
Swt
SwtSwt
Swt
 
Exploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQLExploring Ruby on Rails and PostgreSQL
Exploring Ruby on Rails and PostgreSQL
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 

More from Dave Cross

Measuring the Quality of Your Perl Code
Measuring the Quality of Your Perl CodeMeasuring the Quality of Your Perl Code
Measuring the Quality of Your Perl CodeDave Cross
 
Apollo 11 at 50 - A Simple Twitter Bot
Apollo 11 at 50 - A Simple Twitter BotApollo 11 at 50 - A Simple Twitter Bot
Apollo 11 at 50 - A Simple Twitter BotDave Cross
 
Monoliths, Balls of Mud and Silver Bullets
Monoliths, Balls of Mud and Silver BulletsMonoliths, Balls of Mud and Silver Bullets
Monoliths, Balls of Mud and Silver BulletsDave Cross
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional ProgrammerDave Cross
 
I'm A Republic (Honest!)
I'm A Republic (Honest!)I'm A Republic (Honest!)
I'm A Republic (Honest!)Dave Cross
 
Web Site Tune-Up - Improve Your Googlejuice
Web Site Tune-Up - Improve Your GooglejuiceWeb Site Tune-Up - Improve Your Googlejuice
Web Site Tune-Up - Improve Your GooglejuiceDave Cross
 
Modern Perl Web Development with Dancer
Modern Perl Web Development with DancerModern Perl Web Development with Dancer
Modern Perl Web Development with DancerDave Cross
 
Freeing Tower Bridge
Freeing Tower BridgeFreeing Tower Bridge
Freeing Tower BridgeDave Cross
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-UpDave Cross
 
Error(s) Free Programming
Error(s) Free ProgrammingError(s) Free Programming
Error(s) Free ProgrammingDave Cross
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with PerlDave Cross
 
Improving Dev Assistant
Improving Dev AssistantImproving Dev Assistant
Improving Dev AssistantDave Cross
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven PublishingDave Cross
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven PublishingDave Cross
 
Perl in the Internet of Things
Perl in the Internet of ThingsPerl in the Internet of Things
Perl in the Internet of ThingsDave Cross
 
Return to the Kingdom of the Blind
Return to the Kingdom of the BlindReturn to the Kingdom of the Blind
Return to the Kingdom of the BlindDave Cross
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and PerlDave Cross
 
Object-Oriented Programming with Perl and Moose
Object-Oriented Programming with Perl and MooseObject-Oriented Programming with Perl and Moose
Object-Oriented Programming with Perl and MooseDave Cross
 

More from Dave Cross (20)

Measuring the Quality of Your Perl Code
Measuring the Quality of Your Perl CodeMeasuring the Quality of Your Perl Code
Measuring the Quality of Your Perl Code
 
Apollo 11 at 50 - A Simple Twitter Bot
Apollo 11 at 50 - A Simple Twitter BotApollo 11 at 50 - A Simple Twitter Bot
Apollo 11 at 50 - A Simple Twitter Bot
 
Monoliths, Balls of Mud and Silver Bullets
Monoliths, Balls of Mud and Silver BulletsMonoliths, Balls of Mud and Silver Bullets
Monoliths, Balls of Mud and Silver Bullets
 
The Professional Programmer
The Professional ProgrammerThe Professional Programmer
The Professional Programmer
 
I'm A Republic (Honest!)
I'm A Republic (Honest!)I'm A Republic (Honest!)
I'm A Republic (Honest!)
 
Web Site Tune-Up - Improve Your Googlejuice
Web Site Tune-Up - Improve Your GooglejuiceWeb Site Tune-Up - Improve Your Googlejuice
Web Site Tune-Up - Improve Your Googlejuice
 
Modern Perl Web Development with Dancer
Modern Perl Web Development with DancerModern Perl Web Development with Dancer
Modern Perl Web Development with Dancer
 
Freeing Tower Bridge
Freeing Tower BridgeFreeing Tower Bridge
Freeing Tower Bridge
 
Modern Perl Catch-Up
Modern Perl Catch-UpModern Perl Catch-Up
Modern Perl Catch-Up
 
Error(s) Free Programming
Error(s) Free ProgrammingError(s) Free Programming
Error(s) Free Programming
 
Medium Perl
Medium PerlMedium Perl
Medium Perl
 
Modern Web Development with Perl
Modern Web Development with PerlModern Web Development with Perl
Modern Web Development with Perl
 
Improving Dev Assistant
Improving Dev AssistantImproving Dev Assistant
Improving Dev Assistant
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven Publishing
 
Conference Driven Publishing
Conference Driven PublishingConference Driven Publishing
Conference Driven Publishing
 
TwittElection
TwittElectionTwittElection
TwittElection
 
Perl in the Internet of Things
Perl in the Internet of ThingsPerl in the Internet of Things
Perl in the Internet of Things
 
Return to the Kingdom of the Blind
Return to the Kingdom of the BlindReturn to the Kingdom of the Blind
Return to the Kingdom of the Blind
 
Github, Travis-CI and Perl
Github, Travis-CI and PerlGithub, Travis-CI and Perl
Github, Travis-CI and Perl
 
Object-Oriented Programming with Perl and Moose
Object-Oriented Programming with Perl and MooseObject-Oriented Programming with Perl and Moose
Object-Oriented Programming with Perl and Moose
 

Recently uploaded

0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with CultureSeta Wicaksana
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Lviv Startup Club
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...lizamodels9
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...rajveerescorts2022
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyEthan lee
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMRavindra Nath Shukla
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...Paul Menig
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityEric T. Tung
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfAdmir Softic
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 

Recently uploaded (20)

0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabiunwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
unwanted pregnancy Kit [+918133066128] Abortion Pills IN Dubai UAE Abudhabi
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
 
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
👉Chandigarh Call Girls 👉9878799926👉Just Call👉Chandigarh Call Girl In Chandiga...
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
 
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Hebbal Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...7.pdf This presentation captures many uses and the significance of the number...
7.pdf This presentation captures many uses and the significance of the number...
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdfDr. Admir Softic_ presentation_Green Club_ENG.pdf
Dr. Admir Softic_ presentation_Green Club_ENG.pdf
 
Forklift Operations: Safety through Cartoons
Forklift Operations: Safety through CartoonsForklift Operations: Safety through Cartoons
Forklift Operations: Safety through Cartoons
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 

Perl Enterprise Computing Guide

  • 1. Perl in The Enterprise Dave Cross dave@mag-sol.com Magnum Solutions Ltd http://mag-sol.com/
  • 2. What We Will Cover What is Enterprise Computing? ● Why Perl is good in the Enterprise ● Why Perl is bad in the Enterprise ● The Perl Foundation ● What is coming with Perl 6 ●
  • 3. What is Enterprise Computing? Lets ask Google ● define:quot;enterprise computingquot; ● “A vague term used generally to refer to ● networks and other computing needs implemented throughout a large, often widely dispersed corporation. Microsoft and IBM, for example, are enterprises; a small business is not.” www.microsoft.com ●
  • 4. Enterprise Computing Large scale hardware and software ● implementations Interfaces to other systems ● High availability ● Many developers working simultaneously ● Long lifespan ● High visibility ●
  • 5. Why Perl is Good in the Enterprise Who uses it? ● Why do they use it? ● Web Application examples ●
  • 6. Who Uses Perl? Everyone ● No really ● Well, almost everyone ● Even Microsoft shops ● Banks see it as a “competitive advantage” ● People regularly build and deploy ● applications containing 10,000s lines of Perl code
  • 7. Why Do They Use It? Very High Level ● Dynamic Language ● Ready Written Modules ● Quality Assurance ● Multiple Programming Paradigms ●
  • 8. Very High Level Language Typically one line of Perl to ten lines of C ● Number of bugs is proportional to lines ● of code Much code in off the shelf modules ●
  • 9. Dynamic Language Code is data ● Like Python and Ruby ● Unlike Java, C and C# ● Programs that write programs ● Are the happiest programs of all –
  • 10. Ready Written Modules Perl has a culture of sharing code ● Comprehensive Perl Archive Network ● http://search.cpan.org/ ● Thousands of pre-built modules ● Standard installation and testing ● procedures Plug and Play Programming ●
  • 11. Quality Assurance Very powerful testing framework ● Encourages module authors to include ● test suites with their code Lots of work in this area over the last five ● years “Perl Testing: A Developers Notebook” ● CPAN Testers ● http://testers.cpan.org/ – CPAN Ratings ● Like Amazon ratings – http://cpanratings.perl.org/ –
  • 12. Quality Assurance Perl QA works on two levels ● Makes it easy for module authors to ● write test plans Code you bring in from CPAN is well tested – Makes it easy for your developers to ● write test plans Smoke testing – Test first development –
  • 13. Multiple Programming Paradigms Procedural Programming ● Object Oriented Programming ● Functional Programming ● “Higher Order Perl” – Other, more esoteric, paradigms too ● Pick whatever is best for your application ●
  • 14. Web Application Examples Everyone is talking about Ruby on Rails ● Example of an MVC framework ● Many MVC frameworks on the CPAN ● Or build your own from components ●
  • 15. MVC Components Model ● Class::DBI (object-relational mapper) – Also Tangram, DBIx::Class, Class::Persist – View ● Template Toolkit – Also Mason, HTML::Template – Controller ● Your code goes here – Complete Frameworks ● Maypole – Catalyst –
  • 16. Why Perl is Bad in the Enterprise It’s all a matter of perception ● Seen as a “hackers” language ● Bad CGI programs – Two audiences – Enterprise vs Hackers ● Open Source vs Free Software ● TMTOWTDI ● There’s More Than One Way To Do It – Everyone has their own favourite – Coding standards and code reviews – “Perl Best Practices” –
  • 17. The Perl Foundation http://foundation.perl.org/ ● “dedicated to the advancement of the ● Perl programming language through open discussion, collaboration, design, and code.” Co-ordinates the efforts of a number of ● grass-roots Perl groups Perl Mongers – perl.org – Perl Monks – YAPC –
  • 18. The Perl Foundation Holding a number of “Perl Days” ● Meeting large companies to discuss what ● they need from Perl Meeting in London August 2005 ● Setting up an “Enterprise Perl Working ● Group” Recommended modules – Pre-built libraries – Certification –
  • 19. Perl 6 quot;Perl 5 was my rewrite of Perl. I want ● Perl 6 to be the community's rewrite of Perl and of the community.quot; Larry Wall –
  • 20. Perl 6 History th 18 July 2000, OSCON ● Perl 5 Porters meeting – Jon Orwant – Major change needed – th 19 July 2000, OSCON ● Larry Wall’s “State of the Onion“ – Announces development of Perl 6 – It’s been a long time coming ●
  • 21. Perl 6 Design Massive RFC Process ● Canvassing ideas from community ● 361 RFCs received ● http://dev.perl.org/perl6/rfc/ ● Larry (with help from others) merges ● RFCs with his ideas Much discussion on mailing lists ● Designs published as a series of ● Apocalyses and Exegeses http://dev.perl.org/perl6/ –
  • 22. Perl 6 Features Many new features ● explicit strong typing – proper parameter lists – active metadata on values, variables, – subroutines, and types declarative classes with strong encapsulation – full OO exception handling – support for the concurrent use of multiple – versions of a module extensive introspection facilities – LL and LR grammars (including a built-in – grammar for Perl 6 itself)
  • 23. Perl 6 Features More new features ● subroutine overloading – multiple dispatch – named arguments – a built-in switch statement – hierarchical construction and destruction – distributive method dispatch – method delegation – named regexes – overlapping and exhaustive regex matches – within a string named captures –
  • 24. Perl 6 Features Yet more new features ● parse-tree pruning – incremental regex matching against input – streams macros (that are implemented in Perl itself) – user-definable operators (from the full – Unicode set) chained comparisons – a universally accessible aliasing mechanism – lexical exporting (via a cleaner, declarative – syntax) multimorphic equality tests –
  • 25. Perl 6 Features A few more new features ● state variables – hypothetical variables – hyperoperators (i.e. vector processing) – function currying – junctions (i.e. superpositional values, – subroutines, and types) coroutines –
  • 26. Perl 6 Related Projects Parrot ● PONIE ● Pugs ●
  • 27. Parrot Virtual machine used to efficiently ● execute bytecode for dynamic languages Core of the Perl 6 compiler ● Target platform for Perl 6 ● Other languages will be able to target ● Parrot too Use libraries from other Parrot languages ● http://www.parrotcode.org/ ●
  • 28. PONIE Perl On New Internal Engine ● Perl 5 implemented on top of Parrot ● Implementing a real language in Parrot ● A real test that Parrot is up to the job ● http://www.poniecode.org/ ●
  • 29. Pugs Prototype Perl 6 compiler ● Written in Haskell ● Good way to try out Perl 6 now ● Limited but getting better very quickly ● http://pugscode.org/ ●
  • 30. Conclusion Perl is currently very suitable as an ● Enterprise level language Many large companies rely on Perl to ● drive their business Perl 6 will be even better ●
  • 31. Questions Any questions? ● Except “when will Perl 6 be out?” –