SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Downloaden Sie, um offline zu lesen
The problem with Perl
      A semi-informed rant
How did I get here?

• C since forever
• 15+ years of Perl
• 4 years of Java
• 9 months of Python
Fresh fish

• No one has the time
• No one has the resources
• Ultimately, no one cares
But you can just hack
          it!
• Point missed
• We are not the audience, the pimple-faced
  kids are
• And uninformed C[TI]Os
• This is really about the M word
The marketing cycle

• Create new needs
• Find new markets
• Segment
• Goto 10
The echo chamber

• No new customers
• Confirmation bias
• Monoculture
A Perl client library?

• New and exciting stuff rarely
  mentions Perl
• Guess what the early adopters are
  not going to see?
Batteries not included
Batteries not included
           Exceptions      Databases
                  Packaging
         Sets Audio
Profiling                      HTTPD
 Configuration       XML
                Images       Collections
Types       SSL            Concurrency
                      Crypto
      XML-RPC                Time
  EMail          Dates      Environment
        Bootstrapping             URLs
           HTML REPL     PSGI
That funky sh*t

• Perl is a visual language: $ @ % & 
  Python, however, is polite
• “You just need to use Moose”
• Well, not in that other language.
package MyClass;

use strict;
use warnings;
package MyClass;

use strict;
use warnings;
use Moose;
package MyClass;

use strict;
use warnings;
use Moose;

use feature qw(say);
package MyClass;

use strict;
use warnings;
use Moose;

use feature qw(say);
use v5.10;
package MyClass;

use strict;
use warnings;
use Moose;

use feature qw(say);
use v5.10;
use Modern::Perl ‘v5.10’;
package MyClass;

use strict;
use warnings;
use Moose;

use feature qw(say);
use v5.10;
use Modern::Perl ‘v5.10’;
package MyClass;

use strict;
use warnings;
use Moose;

use feature qw(say);
use v5.10;
use Modern::Perl qw(2009);
package MyClass;

use   strict;
use   warnings;
use   Moose;
use   namespace::clean -except =>
      ‘meta’;

use feature qw(say);
use v5.10;
use Modern::Perl qw(2009);
package MyClass;

use Moose;
use namespace::clean -except =>
    ‘meta’;

use Modern::Perl qw(2009);

1;
class MyClass:
    pass
public class MyClass{
}
Tools of the trade
Tools of the trade
Static analysis          Intellisense

           Refactoring
                              Build
Inspections                  systems
                  IDEs
In Perl land

• Perl Critic
• Carton
• cpanm
• cpanfile
It’s not all gloom!
I <3 Dist::Zilla
• Perl’s Maven (except better)
• Bootstrap, generate docs, run tests,
  package, manage versions, release
• Support for different types of
  projects, via templates
• Extensible through plugins
HOT DIST::ZILLA
 ACTION!!one!
(if you weren’t there, you lose)
Insults?

                  @pfig
 me@pedrofigueiredo.org

http://slideshare.net/pfig/the-problem-with-perl

Weitere ähnliche Inhalte

Was ist angesagt?

Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Tim Bunce
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with SwooleAlbert Chen
 
Nodejs Performance Debug
Nodejs Performance DebugNodejs Performance Debug
Nodejs Performance DebugRafael Gonzaga
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPMax Romanovsky
 
Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Chris Tankersley
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopChris Tankersley
 
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...NETWAYS
 
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Puppet
 
Php internal architecture
Php internal architecturePhp internal architecture
Php internal architectureElizabeth Smith
 
Essential debugging php debugging techniques, tips & tricks
Essential debugging php debugging techniques, tips & tricksEssential debugging php debugging techniques, tips & tricks
Essential debugging php debugging techniques, tips & tricksKaloyan Raev
 
The Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerThe Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerVladimir Sedach
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...Ortus Solutions, Corp
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Touroscon2007
 
Backward to DPAN
Backward to DPANBackward to DPAN
Backward to DPANbrian d foy
 
Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsSerge Smetana
 
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...Chris Fregly
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHiroshi SHIBATA
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotClouddaoswald
 

Was ist angesagt? (20)

Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011Perl Dist::Surveyor 2011
Perl Dist::Surveyor 2011
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with Swoole
 
Nodejs Performance Debug
Nodejs Performance DebugNodejs Performance Debug
Nodejs Performance Debug
 
Performance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHPPerformance tips for Symfony2 & PHP
Performance tips for Symfony2 & PHP
 
Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016Failing at Scale - PNWPHP 2016
Failing at Scale - PNWPHP 2016
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 Workshop
 
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...
Mass-Migration of 5000 Servers to Foreman/Katello with bootstrap.py - Evgeni ...
 
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
Can you upgrade to Puppet 4.x? (Beginner) Can you upgrade to Puppet 4.x? (Beg...
 
Php internal architecture
Php internal architecturePhp internal architecture
Php internal architecture
 
Essential debugging php debugging techniques, tips & tricks
Essential debugging php debugging techniques, tips & tricksEssential debugging php debugging techniques, tips & tricks
Essential debugging php debugging techniques, tips & tricks
 
The Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compilerThe Parenscript Common Lisp to JavaScript compiler
The Parenscript Common Lisp to JavaScript compiler
 
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
CBDW2014- Intro to CommandBox; The ColdFusion CLI, Package Manager, and REPL ...
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
Backward to DPAN
Backward to DPANBackward to DPAN
Backward to DPAN
 
Performance Optimization of Rails Applications
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails Applications
 
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
High Performance TensorFlow in Production -- Sydney ML / AI Train Workshop @ ...
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rb
 
Composer
ComposerComposer
Composer
 
Deploying Perl apps on dotCloud
Deploying Perl apps on dotCloudDeploying Perl apps on dotCloud
Deploying Perl apps on dotCloud
 

Ähnlich wie The problem with Perl

Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)Alex Balhatchet
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 
Core Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black PerlCore Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black PerlChip Salzenberg
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationAudrey Tang
 
The Return of the Dull Stack Engineer
The Return of the Dull Stack EngineerThe Return of the Dull Stack Engineer
The Return of the Dull Stack EngineerKris Buytaert
 
Enterprise python
Enterprise pythonEnterprise python
Enterprise pythonpythonchile
 
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet
 
Puppet and AWS is Easy...?
Puppet and AWS is Easy...?Puppet and AWS is Easy...?
Puppet and AWS is Easy...?Puppet
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mortapeiron
 
Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?mortardata
 
Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Ben Corlett
 
Ceph Day NYC: Ceph in the Ecosystem
Ceph Day NYC: Ceph in the EcosystemCeph Day NYC: Ceph in the Ecosystem
Ceph Day NYC: Ceph in the EcosystemCeph Community
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet CodeDavid Danzilio
 
Adventures in Asymmetric Warfare
Adventures in Asymmetric WarfareAdventures in Asymmetric Warfare
Adventures in Asymmetric WarfareWill Schroeder
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPRobert MacLean
 
DevSecOps and Drupal: Securing your applications in a modern IT landscape
DevSecOps and Drupal: Securing your applications in a modern IT landscapeDevSecOps and Drupal: Securing your applications in a modern IT landscape
DevSecOps and Drupal: Securing your applications in a modern IT landscapeWill Hall
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...Yury Bushmelev
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsUwe Korn
 

Ähnlich wie The problem with Perl (20)

Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
Introduction to Writing Readable and Maintainable Perl (YAPC::EU 2011 Version)
 
Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerModern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Core Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black PerlCore Hackers of the Caribbean: The Curse of the Black Perl
Core Hackers of the Caribbean: The Curse of the Black Perl
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 Implementation
 
The Return of the Dull Stack Engineer
The Return of the Dull Stack EngineerThe Return of the Dull Stack Engineer
The Return of the Dull Stack Engineer
 
Enterprise python
Enterprise pythonEnterprise python
Enterprise python
 
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....? Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
Puppet Camp Sydney 2015: Puppet and AWS is easy right.....?
 
Puppet and AWS is Easy...?
Puppet and AWS is Easy...?Puppet and AWS is Easy...?
Puppet and AWS is Easy...?
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Perl6 meets JVM
Perl6 meets JVMPerl6 meets JVM
Perl6 meets JVM
 
Le PERL est mort
Le PERL est mortLe PERL est mort
Le PERL est mort
 
Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?Jonathan Coveney: Why Pig?
Jonathan Coveney: Why Pig?
 
Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013Bridging the Gap - Laracon 2013
Bridging the Gap - Laracon 2013
 
Ceph Day NYC: Ceph in the Ecosystem
Ceph Day NYC: Ceph in the EcosystemCeph Day NYC: Ceph in the Ecosystem
Ceph Day NYC: Ceph in the Ecosystem
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code
 
Adventures in Asymmetric Warfare
Adventures in Asymmetric WarfareAdventures in Asymmetric Warfare
Adventures in Asymmetric Warfare
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
DevSecOps and Drupal: Securing your applications in a modern IT landscape
DevSecOps and Drupal: Securing your applications in a modern IT landscapeDevSecOps and Drupal: Securing your applications in a modern IT landscape
DevSecOps and Drupal: Securing your applications in a modern IT landscape
 
From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...From SaltStack to Puppet and beyond...
From SaltStack to Puppet and beyond...
 
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" EcosystemsPyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
PyData Frankfurt - (Efficient) Data Exchange with "Foreign" Ecosystems
 

Kürzlich hochgeladen

A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
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
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
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
 
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
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
[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
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
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
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
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
 
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
 

Kürzlich hochgeladen (20)

A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
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...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
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
 
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
 
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
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
[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
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
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
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
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
 
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
 

The problem with Perl

Hinweis der Redaktion

  1. \n
  2. Perl programmer all my life after university, with the occasional bout of C.\nTook a job at a Java shop 4 years ago, and as luck would have it ended up in a Python one earlier this year.\n
  3. Newcomers have watched the screencast and drank the Kool-Aid. We can show them screencasts, but at some point they&amp;#x2019;ll actually have to build and ship something.\n
  4. &amp;#x201C;Oh, the beauty is that it&amp;#x2019;s so extensible!&amp;#x201D;\nYes, *I and you* can. The newcomers can&amp;#x2019;t, and shouldn&amp;#x2019;t be expected to do so.\nThe point is there are alternatives to Perl where you don&amp;#x2019;t have to hack it.\nAnd if you take that up the chain, it&amp;#x2019;s even worse. All that matters is *shipping*.\n
  5. Perl was fabulous at segmentation, selling to a lot of different people, and regularly upselling them.\nIt has not created new needs, e.g., OO after Java, functional with Haskell, Erlang.\nWe certainly don&amp;#x2019;t seem to find new markets, and seem to be playing catch-up.\n
  6. \n
  7. When was the last time one of the cool kids launched with a Perl API? And why should they, if apparently the majority of new-ish programmers don&amp;#x2019;t use it? This is of course a self-fulfilling prophecy, and the cycle perpetuates itself.\n(Go Cardless, AWS, Rackspace, Streak, Spark Devices, OpenStack)\n
  8. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  9. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  10. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  11. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  12. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  13. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  14. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  15. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  16. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  17. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  18. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  19. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  20. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  21. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  22. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  23. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  24. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  25. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  26. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  27. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  28. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  29. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  30. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  31. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  32. Task::Kensho? WTF? What about Task::ExtendedLibrary or Task::RecommendedModules?\nRegardless, why aren&amp;#x2019;t most of these in standard library?\nMoose et al., Dist::Zilla, Try::Tiny, DBI, Config::*, DateTime, the Perl Email Project, @rjbs, @miyagawa, etc\n
  33. I quite liked the little squiggles before variable names, because I could see what it was. I&amp;#x2019;ve shot myself in the foot in languages that don&amp;#x2019;t have this feature exactly 0 times.\nMoose has become the cheap way out of arguments.\nThe thing is, the competition doesn&amp;#x2019;t need anything like it. Or at all.\n
  34. This helps you catch frequent mistakes.\n
  35. 1 line saved, woohoo!\n
  36. Much better.\n
  37. \n
  38. \n
  39. Oops. UI inconsistency.\n
  40. That makes sense.\n
  41. \n
  42. \n
  43. \n
  44. \n
  45. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  46. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  47. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  48. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  49. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  50. Detect redundant statements, find optimisations, warn about npes, suggest intelligent completion, not just keywords.\nThe &amp;#x2018;I&amp;#x2019; in IDE means &amp;#x2018;integrated&amp;#x2019;.\nMaven, Ivy, Gradle - manage dependencies, build, test, package, deploy.\n
  51. Perlysense / Rope, EPIC, Padre?\n
  52. \n
  53. Perlysense, EPIC, Padre?\n
  54. Perlysense, EPIC, Padre?\n
  55. \n