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
 
Pearl
PearlPearl
Pearl
 
perl lauange
perl lauangeperl lauange
perl lauange
 
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

(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCRsoniya singh
 
The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024christinemoorman
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionMintel Group
 
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts ServiceVip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Serviceankitnayak356677
 
Digital Transformation in the PLM domain - distrib.pdf
Digital Transformation in the PLM domain - distrib.pdfDigital Transformation in the PLM domain - distrib.pdf
Digital Transformation in the PLM domain - distrib.pdfJos Voskuil
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCRashishs7044
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedKaiNexus
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607dollysharma2066
 
8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCRashishs7044
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menzaictsugar
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Roomdivyansh0kumar0
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...lizamodels9
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdfKhaled Al Awadi
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creationsnakalysalcedo61
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessSeta Wicaksana
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...lizamodels9
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessAggregage
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesKeppelCorporation
 

Recently uploaded (20)

(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
(8264348440) 🔝 Call Girls In Mahipalpur 🔝 Delhi NCR
 
The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024The CMO Survey - Highlights and Insights Report - Spring 2024
The CMO Survey - Highlights and Insights Report - Spring 2024
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted Version
 
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts ServiceVip Female Escorts Noida 9711199171 Greater Noida Escorts Service
Vip Female Escorts Noida 9711199171 Greater Noida Escorts Service
 
Digital Transformation in the PLM domain - distrib.pdf
Digital Transformation in the PLM domain - distrib.pdfDigital Transformation in the PLM domain - distrib.pdf
Digital Transformation in the PLM domain - distrib.pdf
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
 
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… AbridgedLean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
Lean: From Theory to Practice — One City’s (and Library’s) Lean Story… Abridged
 
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607FULL ENJOY Call girls in Paharganj Delhi | 8377087607
FULL ENJOY Call girls in Paharganj Delhi | 8377087607
 
8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
 
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
Call Girls In Sikandarpur Gurgaon ❤️8860477959_Russian 100% Genuine Escorts I...
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
Marketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet CreationsMarketing Management Business Plan_My Sweet Creations
Marketing Management Business Plan_My Sweet Creations
 
Organizational Structure Running A Successful Business
Organizational Structure Running A Successful BusinessOrganizational Structure Running A Successful Business
Organizational Structure Running A Successful Business
 
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
Call Girls In Radisson Blu Hotel New Delhi Paschim Vihar ❤️8860477959 Escorts...
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for Success
 
Annual General Meeting Presentation Slides
Annual General Meeting Presentation SlidesAnnual General Meeting Presentation Slides
Annual General Meeting Presentation Slides
 

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?” –