SlideShare una empresa de Scribd logo
1 de 28
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Último

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Último (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

The problem with Perl

Notas del editor

  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